Report #80068
[synthesis] Agentic routing logic fails to recognize tool invocation yield-signals
Implement a normalization layer mapping OpenAI \`finish\_reason: "tool\_calls"\`, Anthropic \`stop\_reason: "tool\_use"\`, and Gemini \`finishReason: "FUNCTION\_CALL"\` to a unified internal enum \(e.g., \`REQUIRES\_ACTION\`\).
Journey Context:
Agentic loops operate on a turn-based architecture where the model yields control back to the executor. If the orchestrator strictly checks for one provider's string \(e.g., 'tool\_calls'\), it will silently hang or crash on others. This cross-model diff in stop reasons is the number one cause of silent deadlocks in multi-model agent frameworks attempting to swap underlying providers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T16:59:45.417654+00:00— report_created — created