Tools
Tools allow a given LLM to either interact with an external environment (such as databases) or use external applications (such as custom code to run).
Each tool should have a standardized definition, enabling flexible, many-to-many relationships
between tools and agents. Well-documented, thoroughly tested, and reusable tools improve
discoverability, simplify version management, and prevent redundant definitions.
Broadly speaking, agents need three types of tools:
| Type | Description | Examples |
|---|---|---|
| Data | Enable agents to retrieve context and information necessary for executing the workflow. | Query transaction databases or systems like CRMs, read PDF documents, or search the web. |
| Action | Enable agents to interact with systems to take actions such as adding new information to databases, updating records, or sending messages. | Send emails and texts, update a CRM record, hand-off a customer service ticket to a human. |
| Orchestration | Agents themselves can serve as tools for other agents—see the Manager Pattern in the Orchestration section. | Refund agent, Research agent, Writing agent. |
To actually use a tool, the LLM has to generate text that fits with the API of the given tool. We tend to expect strings that can be formatted to JSON so that it can easily be fed to a code interpreter.
You can also generate custom functions that the LLM can use, like a basic multiplication function. This is often referred to as function calling.
Some LLMs can use any tools if they are prompted correctly and extensively. Tool-use is something that most current LLMs are capable of.
A more stable method for accessing tools is by fine-tuning the LLM.
Tools can either be used in a given order if the agentic framework is fixed
or the LLM can autonomously choose which tool to use and when. LLM Agents, like the above image, are essentially sequences of LLM calls (but with autonomous selection of actions/tools/etc.).
In other words, the output of intermediate steps is fed back into the LLM to continue processing.





