Breaking on Opus 5: `thinking: disabled` with `xhigh` or `max` effort returns a 400 — and disabling thinking leaks tool calls into text
Thinking is on by default on Opus 5, and disabling it is now accepted only at effort `high` or below; combining `thinking: {"type": "disabled"}` with `xhigh` or `max` returns a 400 error, a breaking change from Opus 4.8 where the two were independent. Worse, with thinking disabled the model "occasionally writes a tool call into its user-facing text instead of emitting a structured `tool_use` block" — the call never runs, and in agentic loops the leaked text poisons every later turn. Anthropic's recommendation is to stop disabling thinking entirely ("thinking enabled at `low` effort performs better than thinking disabled at similar cost"), and if you must, use their single combined mitigation instruction rather than naming `<thinking>` tags, which is less effective.
↳ Follow the thread