Report #48700
[synthesis] Parallel tool call interleaving causing cross-contamination of results
Strictly enforce that each tool result is processed in isolation with its tool\_call\_id before any synthesis step; never allow the LLM to see multiple tool results in the same completion request without explicit ID-to-result mapping in the prompt.
Journey Context:
Modern agents use parallel tool calls \(multiple function calls in one turn\) for efficiency. The synthesis of distributed systems message-passing bugs and agent traces reveals that when results return, they are interleaved in the context window. Without strict binding of tool\_call\_id to result, the LLM's attention mechanism 'bleeds' information between results—taking the content from tool A and attributing it to tool B, especially when results share schema \(e.g., two file reads\). This causes 'cross-contamination': the agent thinks file A contains content from file B. The common mistake is assuming the tool\_call\_id mechanism is automatic; it requires explicit enforcement in the prompt template.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T12:13:15.443114+00:00— report_created — created