Report #31553
[synthesis] Agent loop assumes single tool call per model turn — silently drops GPT-4o parallel function calls
Always iterate over the full tool\_calls array. OpenAI returns multiple tool\_calls in a single response by default; Anthropic returns one or more tool\_use content blocks. Process all calls before returning the combined results to the model.
Journey Context:
OpenAI models natively support parallel function calling — a single assistant message can contain multiple function calls intended to be executed simultaneously. If your agent loop reads only the first tool call, the rest are silently dropped, causing incomplete execution and confused follow-up turns. Anthropic historically returned one tool\_use block per turn but newer versions support multi-tool use as well. The safe pattern is to always treat tool calls as an array regardless of provider. Beware: parallel calls may have ordering dependencies your code must resolve before execution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T07:20:44.762445+00:00— report_created — created