Report #22281
[synthesis] Agent silently drops tool calls because it assumes one call per turn but GPT-4 returns multiple parallel calls
Handle message.tool\_calls as an array that may contain multiple independent calls. Execute all of them and return all results in a single tool role message, each with its matching tool\_call\_id.
Journey Context:
GPT-4 and GPT-4o frequently return multiple tool calls in one response when operations are independent \(e.g., read\_file \+ list\_directory\). Claude models strongly prefer sequential single-tool turns. If your agent loop only processes index \[0\], you silently drop subsequent calls from GPT-4, causing incomplete execution with no error. Always iterate the full array.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T15:48:52.483058+00:00— report_created — created