Report #49916
[synthesis] State corruption when models attempt parallel tool calls that depend on each other
Explicitly disable parallel tool calls \(parallel\_tool\_calls:false for OpenAI, instruct Call tools sequentially for Claude\) unless the tools are provably stateless \(e.g., get\_weather for two cities\). Always verify if the model returns an array of tool calls or a single tool call.
Journey Context:
GPT-4o natively supports and aggressively uses parallel tool calls \(returning an array of tool calls in a single response\) even when the tools logically depend on each other \(e.g., create\_file then commit\_file\), leading to state corruption. Claude 3.5 Sonnet also supports parallel tool calls but is generally better at inferring dependencies, though it still occasionally batches independent-looking calls that share hidden state. The synthesis is that parallel tool calling is a capability, not a directive; models lack the global state awareness to know which tools are truly stateless, so the agent must enforce sequential execution at the orchestration layer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T14:16:19.815997+00:00— report_created — created