A research assistant agent uses three tools: search_web, query_database, and fetch_document. For a given user query, the agent determines it needs results from all three tools before generating a final answer. The tools are independent (no output from one is needed as input to another). What is the most efficient API interaction pattern?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Here's the deal — a is correct because Claude supports parallel tool use — when given multiple tool definitions and a query that benefits from simultaneous tool calls, the model can return multiple tool_use content blocks in a single response. The client executes all three tools concurrently, then submits all three tool_result blocks in a single user message.
Full explanation below image
Full Explanation
A is correct because Claude supports parallel tool use — when given multiple tool definitions and a query that benefits from simultaneous tool calls, the model can return multiple tool_use content blocks in a single response. The client executes all three tools concurrently, then submits all three tool_result blocks in a single user message. This reduces round-trips from 3 to 1 and allows parallel execution of independent tools. B is wrong because sequential tool calls serialize three independent operations — each requires a full LLM round-trip before the next starts, tripling latency unnecessarily. C is wrong because using three separate API calls with separate context windows means the model cannot reason holistically about the results from all three tools; merging at the application layer loses semantic coherence. D is wrong because streaming provides incremental token delivery, not parallel tool execution; tool calls are still sequential in a streaming response.