
Stop Your Claude Agent From Calling Three Tools at Once: Two Settings for Predictable Execution
Chris Harper
2 min read
Aug 30, 2026 · 04:05 UTC
Two tool_choice settings make Claude agents more predictable: disable_parallel_tool_use for sequential one-at-a-time calls, and {"type": "required"} to force retrieval on the first turn instead of answering from training data.
By default, Claude may call several independent tools in a single turn. For agents where you need to inspect each result — or where each tool call hits a rate-limited or side-effectful API — two settings give you explicit control.
Force the first turn to call a tool — not answer from memory:
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
tools=tools,
tool_choice={"type": "required"}, # must call a tool this turn
messages=messages,
)
Use this when your agent should always retrieve before it answers — preventing it from skipping the search step and responding from training data. "required" forces at least one tool call; Claude chooses which one. Use {"type": "tool", "name": "search"} to require a specific tool.
Sequence calls one at a time:
tool_choice={"type": "auto", "disable_parallel_tool_use": True}
With disable_parallel_tool_use: True, Claude returns at most one tool_use block per turn. You run it, inspect the result, decide whether to continue, then send it back. Useful when each call hits an external API you want to audit or rate-limit.
The latency cost: you add one full API round trip per tool call. A task that would have run three parallel calls in one turn now takes three sequential turns — three times the latency plus three times the per-request overhead. Use parallel calls when tools are independent and intermediate results don't need inspection.
Skip the handling loop with Tool Runner: The Anthropic SDK includes Tool Runner, which executes the tool-call loop automatically — register your callables by name and run the loop without explicit tool_result handling. See Tool Runner docs for the exact SDK API. The trade-off: less visibility into intermediate calls for debugging.
Sources: Define tools — platform.claude.com · Parallel tool use — platform.claude.com · Claude API Function Calling: Complete Guide — DEV Community