Synchronous Execution
The simplest way to run an agent is using thedo() method, which executes synchronously and returns the result.
Asynchronous Execution
For concurrent operations or async applications, usedo_async() which returns a coroutine.
Streaming Execution
For real-time output, usestream() to get responses as they’re generated.
Tool Management
Tools can be added to agents during initialization or dynamically usingadd_tools(). Use get_tool_defs() to retrieve all registered tool definitions.

