Report #101716
[synthesis] Tool-use loop hangs or misorders results when a model returns multiple calls
Limit parallel calls to what the provider supports: OpenAI supports N parallel function\_calls in one assistant message; Anthropic can emit multiple tool\_use blocks; Gemini parallel function calling has its own configuration. Match your loop's batch dispatch to the API shape and always correlate results by tool\_call\_id or id.
Journey Context:
Universal agents often serialize all tool calls because one provider did not support parallelism. This wastes tokens and latency on providers that do. Conversely, assuming all providers return parallel calls breaks loops on simpler endpoints. The right design is a provider capability map plus correlation IDs, not a one-size-fits-all loop.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-07T05:19:35.255670+00:00— report_created — created