Tool Use

An LLM on its own can only do one thing: generate text. It can't search the web, run code, query a database, check the current time, or send a message — it can only produce words. Tools are what break that confinement, turning a model that can only talk into an agent that can act. Tool use is arguably the single most important capability that makes agents possible, and understanding how it works — and how to design tools well — is central to building effective agents.

Tool use is how agents act on the world — the capability that lets an LLM do things beyond generating text. This post covers what tools are, how tool use works (function calling), why tools are transformative for agents, and how to design good tools. It’s a foundational agent pattern: without tools, an LLM can only talk; with tools, an agent can act, gather information, and affect the world. (Related: the blog’s MCP series covers a standard protocol for tools; this post covers the pattern.)

What tools are

A tool (in the agent sense) is a capability the LLM can invoke to do something or get information — a function, API, or action available to the agent. Tools are the agent’s “hands”:

Tools are the capabilities an agent can invoke — functions, APIs, actions — that extend the LLM beyond text into acting on the world and accessing information it doesn’t have. They’re the agent’s hands, and they’re what make agents capable of real tasks (not just conversation). The mechanism by which the LLM invokes them is function calling.

How tool use works: function calling

The mechanism behind tool use is function calling (or “tool calling”) — a capability of modern LLMs to request that a tool be invoked, in a structured way. How it works:

   Function calling in the agent loop:
     LLM (reason) → requests: call tool X with args → 
     system executes tool X → returns result →
     LLM observes result → reasons again → ...
   (the LLM decides & requests; the system executes & returns)

Function calling is how tool use works mechanically: the model is told what tools exist, requests a structured tool call when it decides to use one, and the system executes the tool and returns the result as an observation. This is the concrete implementation of the act-observe steps of the agent loop — the model decides, the system acts, the result feeds back. It’s the plumbing that lets the deciding LLM actually do things.

Why tools are transformative

Tool use is arguably the capability that makes agents genuinely useful — worth making explicit why it’s so transformative:

Tools are transformative because they turn talking into doing (the core of what makes agents useful), ground the agent in real information (improving accuracy), compensate for LLM weaknesses (computation, current data, verification), and extend capability arbitrarily (agent = model + tools). Tool use is the capability that most makes agents worthwhile. Which means designing tools well matters a lot.

Designing good tools

Because tools so directly shape an agent’s capability and reliability, designing them well is important — and there are clear principles:

Tool use — invoking capabilities via function calling — is what turns an LLM that can only talk into an agent that can act and access real information, arguably the most important capability making agents useful. Design tools with clear descriptions, right granularity, robustness and safety, helpful results, and appropriate focus. Next: planning and decomposition — how agents break down complex tasks.

Key takeaways

Further reading

Sources & References

Retrieval as a grounding tool