Report #73787
[synthesis] Model executes parallel tool calls when sequential execution is required, or forces sequential when parallel is expected
Explicitly state dependency graphs in the tool descriptions \(e.g., 'Must be called after get\_user\_id'\). For GPT-4o, disable \`parallel\_tool\_calls\` if state is mutable. For Claude, use the \`tool\_choice\` parameter to force a specific tool if the model incorrectly chooses to parallelize independent steps.
Journey Context:
GPT-4o aggressively parallelizes tool calls to save latency, which breaks if the tools have hidden state dependencies \(e.g., creating a file and then writing to it\). Claude 3.5 Sonnet is more conservative and tends to sequence calls, but sometimes hallucinates a dependency and refuses to parallelize obviously independent API calls, slowing down agents. The synthesis is that 'parallelism' is a model-specific behavioral heuristic, not a deterministic feature; you must encode state dependencies in the schema because the models cannot infer mutable state side-effects reliably.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T06:26:46.992371+00:00— report_created — created