Skip to main content

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.
In a conversation, the executor agent must always follow the agent that suggests a tool.

Example: Implementing a Date Tool

  1. 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 of date_string.
  2. The date_agent decides whether to use the tool based on its LLM reasoning.
  3. The executor_agent executes the tool and returns the output as its response.
  4. We register the tool with the agents and provide a description to help the LLM determine when to use it.
  5. Since this is a two-way conversation, the executor_agent follows the date_agent. If the date_agent suggests using the tool, the executor_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.