Adaptive vs always-on thinking: the difference
Two separate questions hiding behind one word
"Thinking" is not one uniform behaviour across the lineup, and the confusion usually comes from collapsing two different questions into one. First: when you send nothing about thinking, does the model think? Second: can you turn it off? The current models answer those two questions in four different combinations, and budgeting or debugging against the wrong one produces surprised bills and truncated responses alike.
The four behaviours in the current lineup
Off unless asked. Opus 4.8, 4.7 and 4.6, and Sonnet 4.6, run without thinking when the field is
omitted; send adaptive thinking to turn it on. On by default, can be switched off. Opus 5 and
Sonnet 5 think when the field is omitted, and accept thinking: disabled — on Opus 5 only at effort
high or below. On, and cannot be switched off. Fable 5, Fable 5.1 and Opus 5.5 reject every
thinking configuration other than adaptive; the only control is effort. On, with a lowest setting
instead of an off switch. Sonnet 5.5 rejects disabled but accepts between_tools, which does no
extended thinking and is valid only at effort high or below.
"Always on" does not mean "always thinking hard"
The name misleads. On the models where thinking cannot be disabled, thinking is still adaptive: the model decides how much to think, and effort sets how much it is willing to. At a low effort level the documentation describes these models keeping their thinking short, with how often they skip it altogether depending on the prompt. So the lever for cost and latency on these models is not a thinking switch you no longer have — it is the effort level. (Opus 5.5, which lost its off switch, also defaults to a lower effort level than Opus 5 did — see its reference page before comparing the two.)
What adaptive thinking is actually deciding
A model with adaptive thinking evaluates the request and decides whether extended reasoning is worth it for that task — a simple request may get little or none, a hard one substantially more. That is efficient in aggregate, but it means thinking spend isn't a fixed quantity per request. Cost forecasting for these models is a distribution informed by your task mix, not a constant.
Reading and steering thinking you can't turn off
Two consequences follow for code. A response from these models can begin with one or more thinking
blocks, and under the default display setting their text is empty — so read the content by block
type, never by position. And instructions that tell the model not to think should go: it can't
comply, and on Opus 5.5 such rules make it more likely to leak internal tags into the visible answer.
If you need less thinking, lower effort first. On Opus 5.5, a system-prompt line such as "Answer
directly without deliberating." can trim it further, at some risk to accuracy that you should
measure. On Sonnet 5.5, from medium upward the model thinks briefly before almost every reply, and a
request to think less has almost no effect — low is the lever that works.
What this means for max_tokens
Thinking draws from the same output budget as the visible answer, whether or not its text comes
back to you. Any route that moves from an off-by-default model to one where thinking is on — or can
no longer be turned off — needs max_tokens re-sized for thinking plus the reply, or the answer
truncates after the reasoning.
Testing which behaviour your workload actually has
Don't infer a model's behaviour from its position in the lineup: confirm it against the model's own
reference page before building projections. A router or fallback chain that spans behaviours needs
to branch explicitly — a between_tools setting sent to any model but Sonnet 5.5 is a 400, and a
disabled setting sent to Opus 5.5 is too.
Related
See the effort & thinking cost estimator for the cost side, and each model's page under model reference for its exact thinking row.
Verified 2026-09-30 against ClaudeHow facts module (src/data/facts/) — see /about/#accuracy.