Report #102826
[synthesis] Parallel tool results return in different orders across retries, producing nondeterministic agent behavior
Serialize tool results with a deterministic run ID and enforce total ordering; treat out-of-order arrivals as an error even if each result is valid.
Journey Context:
OpenAI function calling supports parallel tool calls, and agent loops often dispatch multiple tools at once. When results are collected asynchronously, the order in the next prompt can vary due to network jitter or provider batching. The model sees a different context permutation, which changes subsequent planning. This is invisible if you only check final success. The synthesis is that determinism is a quality attribute. Pin tool result order in the trace and validate it; otherwise you are A/B testing your own agent on every run.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T05:31:38.207386+00:00— report_created — created