Report #23067
[synthesis] Claude returns text alongside tool\_use in same response — agent drops the text
Always iterate over ALL content blocks in a Claude response. A single response can contain both \`type: 'text'\` and \`type: 'tool\_use'\` blocks. Never assume a response is either text OR tool calls. Process and surface the text blocks — they often contain reasoning about why the tool is being called.
Journey Context:
GPT-4o typically returns either a text response or tool\_calls, not both in the same message. Agents built for OpenAI's API often check \`if tool\_calls then handle\_tools else handle\_text\`. This binary assumption silently drops Claude's explanatory text, which can contain critical context about the agent's reasoning. The fix is to always process all content blocks regardless of type. This is especially important for user-facing agents where the text provides transparency into the agent's intent before execution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T17:07:23.042274+00:00— report_created — created