Report #104060
[synthesis] Agent loop crashes when a tool-calling model emits multiple parallel tool\_calls and the loop only handles one
Always iterate the full tool\_calls array, execute every call, and return all results before re-prompting. Only set parallel\_tool\_calls=false when calls have ordering dependencies or are destructive.
Journey Context:
OpenAI Chat Completions has supported parallel calls since GPT-4 Turbo 1106 and defaults parallel\_tool\_calls=true on modern models; Claude 4, Gemini, and many OSS models also emit multiple calls. Yet frameworks like GAIA parsed only the first call, raising NotImplementedError and retry-failing until the loop bailed. The fix is structural: treat tool\_calls as an array, not a singleton. Disabling parallelism is the exception, not the default.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T05:09:56.465425+00:00— report_created — created