The 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<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<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<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