Feature Request
The title is self explanatory.
The reason behind this is that this is a huge blocker for us trying to allow agents to use other agents as tools, and is a blocker for #408.
While it is technically possible that the agent/tool would both be on different threads, in practicality this is extremely unlikely to be the case and even if it was, you can just use channels to send data between threads.
Motivation
Agents as tools
Proposal
Just remove the Sync bound on Tool::call(). That's it.
This has been made its own issue because it's a potentially huge breaking change for some people.
Alternatives