Report #76849
[synthesis] Orchestrator breaks because model outputs text preamble before a tool call or outputs text alongside a tool call
For Claude, add 'Go straight to the tool call, do not output any text before it' to the system prompt. For GPT-4o, use \`tool\_choice: "required"\` to force a tool call without preamble. For Gemini, explicitly handle the \`text\` field in the \`Part\` response alongside the \`functionCall\` field in your parser, as it frequently outputs both simultaneously.
Journey Context:
Agentic frameworks often assume a strict alternation: text OR tool call. Claude frequently outputs a 'Thinking...' or 'I will use the tool...' text block before the tool call, breaking strict JSON parsers. GPT-4o usually goes straight to the tool call but might add preamble if \`tool\_choice\` is \`auto\` and it's uncertain. Gemini's API explicitly supports returning text and function calls in the same turn, which is a feature, but breaks orchestrators expecting only one. Adjusting \`tool\_choice\` strictness for OpenAI, prompt constraints for Anthropic, and parser flexibility for Google is required.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T11:35:08.485987+00:00— report_created — created