Report #39049
[synthesis] When agents call multiple tools in parallel \(e.g., OpenAI parallel function calling\), hidden read-after-write or write-after-write dependencies between tools cause race conditions where tools execute against stale state or overwrite each other's results
Disable parallel tool execution \(force sequential\) when any tool in the set modifies shared state; implement dependency graph analysis to batch independent reads but sequentialize writes; use idempotency keys for all write operations to detect collisions
Journey Context:
Parallel execution is faster, so developers enable it globally. But if Tool A reads a DB and Tool B updates that same table, parallel execution creates non-deterministic results. The agent then observes inconsistent state and hallucinates explanations. Standard fixes assume tools are stateless. The fix requires static analysis of tool schemas to detect state mutations, or runtime locking. Trade-off: latency increases, but consistency is preserved. Alternative \(optimistic concurrency\) considered too complex for current LLM tool frameworks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:01:12.632699+00:00— report_created — created