How language models use tools and take actions.

A model on its own can only write words. Give it tools, and it can look something up, do exact math, or move a step forward. Here is the field that makes that happen, in plain language.

Tool use is how a language model reaches outside itself: instead of answering from memory, it writes a structured request, something runs that request, and the model reads the result and continues. We walk it the way the field is built: what a tool call is, why deciding to call one is hard, how a model is taught to do it, what it unlocks, and where it is heading. The papers behind each idea are linked, so you can read the source yourself.

Look up the result, then answer
“Has order A-4471 shipped?”
Model requests a toolget_order_status

order_id: “A-4471”

Tool returnsShipped · expected Friday
Answer using the returned informationYour order has shipped. Delivery is expected Friday.
The model requests a tool; the surrounding system executes it and returns the result. The model can then answer using information it could not obtain from its text alone.

A tool is anything outside the model the model can ask to run.

A search, a calculator, a unit converter, a database query, an API that reads or writes a record. The everyday name for the mechanism is function calling.

A language model, working from memory alone, can only write words. Ask it for today's exchange rate, the status of an order, or to add a note to a record, and it will either guess or politely decline. Its knowledge stopped at training time, and writing text is the only move it has.

Tool use changes what the model can do. Instead of answering everything from memory, it is given a small menu of tools it is allowed to call. When a question needs one, the model stops writing prose and writes a structured request instead: the tool's name plus the inputs to pass it. A runtime outside the model executes that request and hands the result back, and the model reads it and keeps going. It is the difference between a person who can only talk and a person who can also pick up the phone, open a spreadsheet, or file a form.

Two distinctions run through the rest of this page. First, deciding when a tool is needed, which tool, and what to put in it is a learned skill, not a given. Second, a lookup is not an action: a lookup can be retried freely, while an action changes the world and has to be done with care. Picture one running question that needs a fact looked up, a number computed, and a record updated, none of which memory can supply. That is the task tools are for.

The model requests; the runtime executes
{
  "tool": "convert_currency",
  "amount": 4200,
  "from": "EUR",
  "to": "USD"
}
Runtime result

4,557 USD at an illustrative rate of 1.085 USD/EUR.

The tool result comes from executed code or an external service. The model’s request alone is not a completed conversion.

Reaching for the right tool, with the right inputs, at the right moment.

A model that can call tools faces choices a pure question-answering model never has to make, and several ways to get each one wrong.

Frozen knowledge

Memory is stale and approximate.

Facts stop at training time, and a model asked to compute can produce fluent but wrong arithmetic. Tools exist to cover exactly these gaps, but only if the model reaches for one.

When to call

Most of the time, just answer.

The skill is recognizing the minority of moments that genuinely need a tool, and not calling one when none is needed. Over-reaching is its own failure, not only under-reaching.

Getting the inputs right

The arguments can be invented.

Even when the right tool is chosen, models can pass malformed or made-up arguments. Gorilla (Patil et al., 2023) names this directly: hallucinated or wrong API usage is a core failure mode.

Many tools

A handful fits. Thousands do not.

A few tools fit in the prompt. A large catalog does not. The model has to find the right one from a big set, which turns into a retrieval problem of its own.

Reason and act in step

One action is rarely enough.

The model has to plan, act, read what came back, and adjust, without losing the thread or repeating itself. Reasoning and acting have to stay in step across several turns.

Actions are not free

Some moves change the world.

A lookup can be retried. Booking, sending, or writing changes state. That raises permission, confirmation, and recovery questions a pure question-answering system never faces.

From a structured request to a loop that can act.

Write the call as structure. Learn when to make it. Interleave thinking and acting. Route across modules. Narrow a large tool set. Close the loop on anything that changes state.

1The tool call as a structured request

Name the tool, type the inputs.

Rather than free text, the model emits a named call with typed inputs. The runtime validates that call against the tool's schema, runs it, and returns a result the model treats as new context. This is the mechanism behind what is commonly called function calling.

The structure is what makes it dependable. A schema says which tool exists, which inputs it expects, and what shape the answer takes, so the runtime can reject a malformed call before anything runs. The model's job is to fill that shape correctly, then read back what the tool returns.

Check the request before running the tool
  1. Structured request

    get_order_status with order_id A-4471.

  2. Validation and authorization

    Check argument types and access to this order.

  3. Execution

    Call the order service.

  4. Result

    Return the actual status for the model to use.

A tool schema checks shape. The runtime remains responsible for permissions, execution, and errors.

2Teaching the model when to call

A model can teach itself.

Toolformer (Schick et al., 2023) shows a model can learn this from a handful of examples, with no hand-labeled data. It proposes where a tool call would help, tries the call, and keeps only the calls that actually improved its next prediction.

The result is a model that decides which API to call, when, and with what arguments, trained on its own filtered attempts. The signal is simple and honest: did calling the tool make the model's continuation better. If not, the example is dropped.

Retain training calls that help prediction
  1. Propose a tool call

    Insert a candidate call into training text.

  2. Run it

    Obtain the external result.

  3. Measure usefulness

    Check whether the result improves prediction of the continuation.

  4. Keep useful examples

    Use retained calls for further training.

The Toolformer-style procedure uses a prediction objective to select useful tool-use examples.

3Interleaving thought and action

Think, act, observe, think again.

ReAct (Yao et al., 2022) alternates short reasoning steps with actions. The reasoning helps the model plan the next move and recover from a bad step. The actions keep it grounded in real results instead of its own assumptions.

This is the loop tool-using agents commonly run. A single action is rarely enough for a real task, so the model reasons about what it has, takes one step, reads what came back, and decides the next step from there.

Plan an action, observe its result, continue
  1. Choose the next step

    The task needs the order’s return status.

  2. Act

    Call get_order_status(A-4471).

  3. Observe

    Two of three items have been returned.

  4. Continue

    Use that result to determine the next permitted step.

An action-observation loop grounds subsequent work in tool results. Failed or surprising results should change the next step.

4Routing across modules

Send each input to the part that should handle it.

MRKL (Karpas et al., 2022) frames the broader pattern. A router sits in front of expert modules, some neural and some symbolic, a calculator, a database, an API, and sends each input to the module that should handle it.

It is the conceptual ancestor of tool routing. The lesson it carries forward: a language model does not have to do every job itself. It can recognize the kind of job in front of it and hand that job to the part built for it.

Route work to a suitable capability
RequestHandler
42 × 19Calculator
Current order statusOrder API
Summarize this paragraphLanguage model
A router selects a capability based on the task. Each capability still has its own input requirements and failure modes.

5Finding the right tool among many

Narrow the menu before choosing.

Gorilla (Patil et al., 2023) pairs the model with a document retriever, so it can pick the correct API from a large, changing set and adapt when the documentation changes. ToolLLM (Qin et al., 2023) scales this to thousands of real APIs, with a retriever that shortens the menu before the model chooses.

The pattern is the same at both sizes. Retrieve a short list of plausible tools first, then let the model choose from a handful it can actually hold in context. That also keeps the system honest when the underlying APIs are versioned and shifting.

Retrieve a small relevant tool set
Task

A customer wants to return two items.

Full catalog
Orders, billing, email, calendar, contacts, and more.
Retrieved candidates
get_order · get_return_policy · create_return
Select from the relevant candidates

Check the chosen tool’s contract before constructing its arguments.

Retrieval shortens the tool menu. Missing the right tool in the candidate set can prevent a correct plan.

6Closing the loop on actions

A lookup can be retried. An action cannot.

For steps that change state, the field leans on a few practices: validating the arguments, asking for explicit confirmation, scoping permissions to what the task needs, and keeping a record of what was done so it can be checked or undone. This is general practice across the field, not any one product's design.

The reason is the distinction from the top of the page. A lookup is safe to repeat. Booking, sending, or writing happens once and stays happened, so an action runs behind a checkpoint that a lookup does not need.

An action needs a safe retry policy

Lookup

get_order_status

Often safe to repeat without changing state.

State-changing action

refund_order

Use authorization, validation, and an idempotency key or outcome check.

Actions can be retried safely when the tool contract supports it. A blind retry may repeat an effect.

Tools move a model from "here is what I would say" to "here is what I did."

At the field level: current answers instead of stale ones, exact operations instead of approximations, write actions that complete a task, and one request that spans several tools in sequence.

The four gains below are field-level capabilities a tool-using model has that a model working from memory alone does not. For a sales co-pilot, the bridge is at the outcome level: a model that can look something up, do exact math, and take a careful action is what turns a conversation into a finished task.

Current answers, not stale ones.

A model that can search or query answers from live data, instead of frozen memory. The closely related pattern of grounding answers in retrieved sources is covered in Retrieval-augmented generation.

Exact operations, not approximations.

Arithmetic, conversions, and structured lookups become reliable because a tool does them, not the model's best guess at the answer.

Doing, not only describing.

With write actions, a model can update a record, draft and file a note, or move a step forward, turning a conversation into a completed task. See Live deal assist.

One request, several tools.

A reason-and-act loop lets a single ask trigger a lookup, a calculation, and an update in sequence, fused into one outcome.

This explainer covers published research. To see how AI REV Voice helps with sales conversations, explore Prism.

The direction the field is heading.

We describe the direction, not a roadmap of our own.

Multi-step reliability

From single calls to whole tasks.

The frontier is sequences of actions that hold up across a whole task, not one clean call in isolation. An agent that takes the right first step but loses the thread is not yet dependable.

Measuring reliability

Consistency, not just accuracy.

τ-bench (Yao et al., 2024) checks the end state of a task and adds a repeated-trial metric. As an attributed field result, it reports that even strong function-calling agents succeed on under half of realistic tasks and behave inconsistently across repeated trials. Expect evaluation to weigh consistency as heavily as one-shot success.

Larger, changing tool sets

Thousands of versioned APIs.

ToolLLM (Qin et al., 2023) points at thousands of real, versioned APIs, where retrieval and graceful handling of change matter as much as the call itself.

Acting with care

Permission and recovery as baseline.

As models take more real actions, permission boundaries, confirmation, and recoverability move from nice-to-have to baseline. We frame this as a field-wide direction.

Measure reliability across repeated trials
TaskTrial 1Trial 2Trial 3
APassPassPass
BPassFailPass
CFailPassFail
Different measures

At least one success is different from success on every trial.

This illustrative evaluation distinguishes occasional capability from consistent task completion.τ-bench

The papers behind this page.

Keep reading.

Sibling explainers in the Research section.

Talk. Done.

A model that can look something up, do the math, and move a step forward is what turns a conversation into a finished task. See it on a real call.

No app required. Just your phone number.