The agents will scan their environment, try to avoid collisions, pick out a target and calculate the best trajectory to hit it with a certain projectile speed. If the target cannot be reached with a given speed limit then the trajectory will miss the object. You can see that behavior when the blue cube goes too high.

It is all implemented in sops (except for the initial target object animation) so it could be farmed out on a random frames. The trajectory is calculated using a few VEX lines and the rest is standard Houdini stuff.