Report #70845
[synthesis] Agent orchestration loops hang or misinterpret responses when expecting parallel tool calls across different providers
Abstract the tool execution loop to handle both array-based parallel tool calls \(GPT-4o\) and sequential single-tool responses \(Claude\). Map GPT's tool\_calls array to a batch execution queue, but for Claude, iterate over sequential turns, executing one tool at a time until the stop condition is met.
Journey Context:
A common mistake is building an agent loop assuming all models return an array of tool calls if multiple are needed. GPT-4o natively supports parallel tool calls in a single response block. Claude 3.5 Sonnet typically returns one tool call per response, requiring multiple round-trips. If the orchestrator expects an array and receives a single object \(or vice versa\), it crashes or drops tool calls. Abstracting the execution layer to normalize these structural differences is essential for provider-agnostic agents.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:29:27.951267+00:00— report_created — created