A Claude API capability in which the model, given a set of tool definitions, emits a structured request to invoke one and resumes once the caller returns the result, letting an agent act on external systems rather than only generating text.

How it works

The caller passes named tool definitions alongside the prompt. When the model decides a tool is needed, it halts and emits a structured call naming the tool and its arguments; the caller runs the tool, returns the result, and the model resumes with that result in its context. Control passes between model and caller turn by turn rather than the model producing a final answer in one pass.

Why it matters

The structured pause is what makes each action inspectable, but it does not make any action safe. A caller that routes every emitted call straight through to execution gets none of the protection the pause affords; the inspection point is real, the validation has to be built on top. The pattern also imposes a round-trip on every action, so a task small enough to answer in one response pays a protocol tax under tool use that direct generation does not.

In practice

A task that needs current data has the model emit a call to a lookup tool; the caller runs it, returns the value, and the model continues from that value rather than guessing, so the answer rests on a real result instead of recall.

Practical considerations

Tool use exposes three configurable axes the caller can combine per request. Streaming tool use returns the structured tool-call request incrementally as the model produces it, useful for low-latency UX where the caller wants the call visible before the model finishes its turn. Parallel tool use is on by default and lets the model emit multiple tool-call requests in one response when their results can be gathered concurrently; the caller runs them in parallel and returns the bundle, which the model then synthesizes. The tool_choice parameter shifts dispatch control from the model to the caller across four modes: auto (the default) lets the model decide whether to call a tool at all; none forbids tool calls entirely; any forces the model to emit some tool call; a specific named tool forces that one. Forcing a tool when none is needed wastes the round-trip the structured pause was meant to make worth taking; a single request can be simultaneously streaming, parallel-enabled, and on any tool_choice mode, so the axes are picked independently per task.

Related standards and prior art

  • Anthropic: tool use · continuously updated the model emits a structured tool-call request and resumes once the caller returns the result
  • ReAct (arXiv 2210.03629) · 2022-10-06 · (seminal prior art) formalizes the interleaved reason-and-act loop that tool use operationalizes

Defined by Ready Solutions AI