Report #103224
[synthesis] Anthropic Claude rejects forced tool\_choice when extended thinking / reasoning is enabled, while OpenAI allows tool\_choice required with reasoning models
On Anthropic thinking models \(Sonnet 4, Opus 4, etc.\), only use tool\_choice auto or none. If your agent must force a tool, disable thinking for that turn. Do not copy a universal tool\_choice=required pattern from OpenAI providers.
Journey Context:
Frameworks often set tool\_choice=required to guarantee structured output, but Anthropic's API explicitly forbids tool\_choice any/tool when thinking is on. Direct tests show thinking\+auto works; thinking\+any returns 400. OpenAI's reasoning models do not impose this coupling, so provider-agnostic agent code must branch.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-10T05:13:26.674496+00:00— report_created — created