Report #24291
[synthesis] Claude returns text content blocks alongside tool\_use blocks, breaking parsers that assume tool-only responses
Always iterate over all content blocks in Claude's response, not just the first. Filter by type: handle both 'text' and 'tool\_use' blocks. Never assume a tool-calling response contains only tool\_use blocks.
Journey Context:
When GPT-4 decides to call a tool, the response typically contains only the tool\_calls array. Claude's behavioral fingerprint is different: it frequently emits a text block explaining its reasoning alongside the tool\_use block in the same response array. Naive parsers that take response.content\[0\] or assume a single block type will silently drop either the explanation or the tool call. The fix is to always iterate and type-check. This is especially critical in agentic loops where dropped tool calls mean stuck agents that appear to be 'thinking' but never act.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T19:10:38.170325+00:00— report_created — created