Overview
Understanding Tool Usage in AG2
Agents significantly enhance their capabilities by leveraging tools, which provide access to external data, APIs, and additional functionality.
In AG2, tool usage happens in two stages:
- An agent suggests which tool to use (via its LLM).
- Another agent executes the selected tool.
Typically, you’ll create two agents. One to determine the appropriate tool and another to carry out the execution.
Example: Implementing a Date Tool
-
We define a tool, a function that will be attached to our agents. The
Annotated
parameter is included in the LLM call to ensure it understands the purpose ofdate_string
. -
The
date_agent
decides whether to use the tool based on its LLM reasoning. -
The
executor_agent
executes the tool and returns the output as its response. -
We register the tool with the agents and provide a description to help the LLM determine when to use it.
-
Since this is a two-way conversation, the
executor_agent
follows thedate_agent
. If thedate_agent
suggests using the tool, theexecutor_agent
executes it accordingly.
Alternative Registration Methods
Alternatively, you can use decorators register_for_execution
and register_for_llm
to register a tool. So, instead of using register_function
, you can register them with the function definition.