With robotframework, you don't write tests in another programming language, your tests are in the robot language. You don't use junit or jasmine with robot. So, that seems to violate requirement (2) in your question. However, you can write keywords in java or python, and have your tests execute those keywords.
I don't fully understand what you're trying to do, but there's a good chance you can do it with robotframework. For example, you can probably write a keyword like "tell agent to push data to the server", you can write another keyword like "Verify server has value", and you can write a third keyword like "Verify value appears in the UI". You can write those in java or python, or combine existing keywords (eg: maybe "Verify value appears in the UI" is build by combining several existing selenium keywords).
You can then write a test case that calls each of those keywords in succession.
Your test case might look something like:
| Example test case
| | Tell agent to push | Hello, world
| | Verify server has the value | Hello, world
| | Verify the UI shows the value | Hello, world
Depending on how your agents and UI works, those keywords might exec some command line tool, or they could access a RESTful web api, or they might use selenium to validate the UI. Robot keywords are very flexible, and can do anything that you can do in your chosen language.