Report #77635
[synthesis] Model outputs conversational filler text alongside tool calls, breaking JSON parsers
For Llama 3/Mistral, set the system prompt to 'You are a silent tool-calling agent. Output ONLY tool calls, no text.' For Claude, use the \`tool\_choice\` parameter set to \`any\` or the specific \`tool\_name\` to force a tool call and suppress text. For GPT-4o, use \`tool\_choice: "required"\`.
Journey Context:
Open-source models \(Llama 3, Mistral\) often output 'Sure, let me fetch that for you\!' before the tool call, which breaks strict JSON parsers expecting only the tool array. Claude and GPT-4o suppress this naturally if the context is clearly agentic, but will add filler if they are unsure. Using the API-level \`tool\_choice\` constraints is the only reliable cross-model way to guarantee text-free tool call responses.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T12:54:43.067280+00:00— report_created — created