I don't see anything different in the above 2 solutions apart from the fact that one is passing the Router and the other using the Singleton Class instance. Now as it looks like you have Singleton router and so its object passing is not at all needed ( Unless you have some interface and the Router will not be available directly to the Agent class in future ).

I would vote for proposal A