Claude: Maximize Parallel Tool Calls

A system-prompt block telling Claude to run independent tool calls in parallel and sequence dependent ones, without guessing parameters.

  • 🤖 Claude
  • 🗂️ Agents

Prompt by Anthropic — Claude prompting best practices · Original source (opens in a new tab)

Claude: Maximize Parallel Tool Calls — illustration

The prompt

prompt
<use_parallel_tool_calls>
If you intend to call multiple tools and there are no dependencies between the tool
calls, make all of the independent tool calls in parallel. Prioritize calling tools
simultaneously whenever the actions can be done in parallel rather than sequentially.
For example, when reading 3 files, run 3 tool calls in parallel to read all 3 files into
context at the same time. Maximize use of parallel tool calls where possible to increase
speed and efficiency. However, if some tool calls depend on previous calls to inform
dependent values like the parameters, do NOT call these tools in parallel and instead
call them sequentially. Never use placeholders or guess missing parameters in tool
calls.
</use_parallel_tool_calls>

What it is

This is a short prompt block wrapped in <use_parallel_tool_calls> tags. It tells Claude that when it plans several tool calls with no dependencies between them, it should make all of them in parallel instead of one after another. It also says that calls whose parameters depend on earlier results must run sequentially, and that placeholders or guessed parameters must never be used.

Who it's for

  • Developers building agents that call tools and want faster task completion
  • Prompt engineers tuning Claude's tool-use behavior in system prompts
  • Teams whose agents read multiple files or gather several independent pieces of information into context

Requirements

Requirements

  • An agent or application where Claude has access to tools (tool calls)
  • A place to add text to the prompt, such as a system prompt
  • Tool calls that are at least sometimes independent of one another

Examples

Reading several files at once

Prompt
prompt
<use_parallel_tool_calls>
If you intend to call multiple tools and there are no dependencies between the tool calls, make all of the independent tool calls in parallel. Prioritize calling tools simultaneously whenever the actions can be done in parallel rather than sequentially. For example, when reading 3 files, run 3 tool calls in parallel to read all 3 files into context at the same time. Maximize use of parallel tool calls where possible to increase speed and efficiency. However, if some tool calls depend on previous calls to inform dependent values like the parameters, do NOT call these tools in parallel and instead call them sequentially. Never use placeholders or guess missing parameters in tool calls.
</use_parallel_tool_calls>

Task: Read src/app.py, src/config.py and src/utils.py and summarize what each file does.

Expected output: Claude issues three read-file tool calls simultaneously, then summarizes each file once all are in context.

Independent lookups in a research agent

Prompt
prompt
<use_parallel_tool_calls>
If you intend to call multiple tools and there are no dependencies between the tool calls, make all of the independent tool calls in parallel. Prioritize calling tools simultaneously whenever the actions can be done in parallel rather than sequentially. For example, when reading 3 files, run 3 tool calls in parallel to read all 3 files into context at the same time. Maximize use of parallel tool calls where possible to increase speed and efficiency. However, if some tool calls depend on previous calls to inform dependent values like the parameters, do NOT call these tools in parallel and instead call them sequentially. Never use placeholders or guess missing parameters in tool calls.
</use_parallel_tool_calls>

Task: Using your search and fetch tools, compare the pricing pages of three vendors: Acme Cloud, Borealis Hosting and Cirrus Compute.

Expected output: Claude runs the independent lookups for the three vendors in parallel and then writes the comparison.

Dependent calls kept sequential

Prompt
prompt
<use_parallel_tool_calls>
If you intend to call multiple tools and there are no dependencies between the tool calls, make all of the independent tool calls in parallel. Prioritize calling tools simultaneously whenever the actions can be done in parallel rather than sequentially. For example, when reading 3 files, run 3 tool calls in parallel to read all 3 files into context at the same time. Maximize use of parallel tool calls where possible to increase speed and efficiency. However, if some tool calls depend on previous calls to inform dependent values like the parameters, do NOT call these tools in parallel and instead call them sequentially. Never use placeholders or guess missing parameters in tool calls.
</use_parallel_tool_calls>

Task: Find the customer record for jane.doe@example.com, then fetch that customer's most recent order using the customer ID from the record.

Expected output: Claude first calls the customer lookup, waits for the real customer ID, then calls the order fetch with it instead of guessing the ID.

Pros & cons

Pros

  • Pro:Independent tool calls run at the same time, which increases speed and efficiency
  • Pro:Explicitly tells Claude to call dependent tools sequentially, protecting correctness
  • Pro:Forbids placeholders and guessed parameters in tool calls
  • Pro:Short, self-contained block that is easy to drop into a prompt

Cons

  • Con:Only guides behavior; the source does not say how much speedup to expect
  • Con:Depends on Claude correctly judging which calls are independent
  • Con:Only useful when the agent has tools and multiple calls to make

Tips

  • Keep the XML-style <use_parallel_tool_calls> tags so the instruction is clearly delimited
  • Keep both halves of the instruction: parallelize independent calls and sequence dependent ones
  • Test with a case such as reading 3 files to confirm parallel behavior

Variations

  • Replace the 3-files example with one drawn from your own tools, such as parallel searches or API lookups
  • Add domain-specific examples of which calls in your agent are dependent and which are independent