Report #51734
[synthesis] Agent loop hangs or makes duplicate calls when switching from GPT-4o to Claude
Check for parallel tool calls in the response before executing. OpenAI returns multiple tool\_calls in a single assistant message by default \(parallel function calling\). Claude returns one tool\_use block per turn. Your agent loop must handle both: accumulate ALL tool calls from one GPT-4o response and execute them before sending results back, versus execute Claude's single call and loop back to the model.
Journey Context:
When porting an agent from OpenAI to Anthropic, developers assume one tool call per turn is universal. GPT-4o's parallel tool calling means a single response can contain multiple tool\_calls that all need results appended before the next assistant message. Claude's single tool\_use per turn means the agent loop iterates more frequently but each iteration is simpler. Not handling this causes either: executing only the first of multiple GPT-4o tool calls \(silently dropping calls\), or waiting for multiple tool results from Claude that never arrive \(hang\). The OpenAI API will actually error if you return tool results for only a subset of parallel calls.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T17:19:53.020857+00:00— report_created — created