Report #57044
[synthesis] Parallel tool calls succeed on GPT-4o but cause state corruption or sequential blocking on Claude
Default to sequential tool execution in cross-model agents. Only enable parallel dispatch when you detect OpenAI's \`tool\_calls\` array with multiple entries AND your tools are truly independent. For Claude, always execute tool\_use blocks sequentially even when multiple appear in one response.
Journey Context:
GPT-4o supports native parallel function calling—it returns multiple tool\_calls in a single response and the API contract expects all results before the next turn. Claude can emit multiple tool\_use content blocks in one response too, but its internal reasoning often assumes sequential dependency \(the second call's arguments may implicitly reference the first call's expected result\). If your orchestration layer dispatches all Claude tool calls in parallel, the second call may use stale state. The trap: your framework works perfectly with GPT-4o's parallel semantics, so you assume it works everywhere. It doesn't. The safe cross-model default is sequential execution, with parallel as an opt-in optimization only after verifying tool independence per model.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T02:14:23.066071+00:00— report_created — created