Adaptive thinking and extended thinking in Claude
How Claude's reasoning modes work in 2026: adaptive thinking with the effort parameter on Opus 5 and Sonnet 5, versus extended thinking on Haiku 4.5.
Claude has two reasoning modes. Adaptive thinking - the current one - lets Claude decide whether and how deeply to reason before answering, with depth steered by an effort parameter that runs low, medium, high (the default), xhigh, max. Extended thinking is the older manual mode where you set a fixed budget_tokens. As of August 2026 only Haiku 4.5 still uses it.
Both modes cost the same way: thinking tokens are billed as output tokens. That is the fact that decides whether reasoning depth is a bargain or a waste on your workload.
#Thinking modes at a glance, August 2026
- Adaptive thinking
thinking: {"type": "adaptive"}- Claude chooses the depth- Extended thinking
thinking: {"type": "enabled", "budget_tokens": N}- you choose it- On by default
- Opus 5, Sonnet 5, Fable 5
- Extended thinking only
- Haiku 4.5
- Effort ladder
low→medium→high(default) →xhigh→max- Billing
- Thinking tokens bill at output rates and count toward
max_tokens - Cannot be turned off
- Fable 5 - adaptive thinking is always on
- Introduced
- Hybrid reasoning arrived with Claude 3.7 Sonnet, February 2025
#Adaptive thinking versus extended thinking
Extended thinking gave you one dial: a token budget for reasoning. You guessed how much a request needed and paid for that much whether it was warranted or not. Adaptive thinking moves that judgement to the model, with your effort setting as a guide rather than a hard allocation.
| Adaptive thinking | Extended thinking | |
|---|---|---|
| Wire value | thinking: {"type": "adaptive"} | thinking: {"type": "enabled", "budget_tokens": N} |
| Who decides depth | Claude, guided by effort | You, via a fixed budget |
| Status | Current recommended mode | Legacy |
| Supported on | Fable 5 (always on), Opus 5, Sonnet 5, Opus 4.8, Opus 4.7, Opus 4.6, Sonnet 4.6 | Haiku 4.5 only among current models; deprecated on Opus 4.6 and Sonnet 4.6 |
| Removed on | - | Sonnet 5, Opus 4.7, Opus 4.8 - a budget_tokens request returns 400 |
| Interleaved thinking | Automatic | Not supported on Haiku 4.5 |
Two parameters are worth separating in your head. Anthropic's documentation puts it plainly: thinking controls whether Claude reasons in thinking blocks before answering; effort controls how much work Claude puts into the whole response, answer included.
You can also control what comes back. thinking.display is either "summarized", a readable summary of the reasoning, or "omitted", an empty field carrying an encrypted signature. On Fable 5, Opus 4.8 and Opus 4.7 the default is "omitted", and Fable 5 never returns its raw chain of thought. Hiding it does not make it free - you are still billed for the tokens.
#The effort ladder
Five rungs: low, medium, high, xhigh, max. The default is high on Opus 4.8 across all surfaces, and on Opus 5 and Sonnet 5 on the Claude API and in Claude Code. On Opus 5 the wire shape is an output_config object:
from anthropic import Anthropic
client = Anthropic()
msg = client.messages.create(
model="claude-opus-5",
max_tokens=8192,
output_config={"effort": "max"},
messages=[{"role": "user", "content": "Find the race condition in this scheduler."}],
)
print(msg.usage.input_tokens, msg.usage.output_tokens)
Note what is not in that request: no temperature, top_p or top_k. Those return a 400 on Opus 4.7 and later and on Sonnet 5. Effort is the depth control now; shaping behaviour is a prompting problem - see prompt engineering.
Practical guidance on the rungs, given the cost structure below:
low- classification, extraction, routing, formatting, short factual lookups. Anything where the answer is short and the path to it is obvious.medium- summarisation, ordinary code generation, drafting. The rung most interactive products should sit on.high- the default. Multi-step analysis, debugging, agentic tool loops.xhighandmax- hard problems where a wrong answer is expensive and you can absorb the latency and the output bill. Verify the gain on your own evaluation set first.
#What thinking actually costs
Thinking tokens are billed as output tokens, count toward your max_tokens limit, and count toward your output-tokens-per-minute rate limit - even when display is "omitted". On the current models that is $10 per million on Sonnet 5, $25 on Opus 5 and $50 on Fable 5.
The arithmetic is stark for short-answer workloads, as the table below shows: on a request returning a 400-token answer, a few thousand tokens of reasoning can make the visible answer a tenth of what you paid for.
| Per request on Opus 5 | No thinking | +2,000 thinking tokens | +8,000 thinking tokens |
|---|---|---|---|
| Input (2,000 tokens) | $0.010 | $0.010 | $0.010 |
| Output (400-token answer) | $0.010 | $0.010 | $0.010 |
| Thinking, billed as output | $0.000 | $0.050 | $0.200 |
| Total | $0.020 | $0.070 | $0.220 |
Those thinking-token counts are illustrations, not published averages - Anthropic does not publish typical reasoning lengths, and adaptive thinking varies them per request. Measure yours from the usage block on real traffic.
On Opus 4.5 and later, Sonnet 4.6 and later, and Fable 5, thinking blocks from previous turns are kept in the conversation by default and billed as input on every subsequent turn. On earlier Opus and Sonnet models, and on all Haiku models, they are stripped automatically. In a long agentic conversation this compounds quietly. Context editing offers thinking-block clearing if you need to reclaim it.
Two levers help. Prompt caching does nothing for thinking tokens - those are output - but it strips most of the input cost from the surrounding conversation, and the Batch API's flat 50% discount applies to thinking tokens like any other output. Both are worked through on the Claude API page, and cost per task across the four models is on the model comparison.
#The Opus 5 error you will hit
On Opus 5, thinking: {"type": "disabled"} is accepted only when effort is high or below. Combine it with xhigh or max and the API returns a 400. This is a deliberate breaking change from Opus 4.8, where the combination was allowed.
The logic is coherent once you see it: at the top two rungs the model's approach depends on reasoning in thinking blocks, so maximum effort with no thinking is a contradiction rather than a configuration. Pick one - drop to high, or leave thinking on.
| Model | Can you disable thinking? |
|---|---|
| Fable 5 | No. Adaptive thinking is always on; use effort to control depth. |
| Opus 5 | Yes at effort high or below. At xhigh or max, HTTP 400. |
| Sonnet 5 | Yes. thinking: {"type": "disabled"} turns it off. |
| Haiku 4.5 | Yes - extended thinking is off unless you explicitly enable it with a budget. |
#When deeper thinking helps, and when it burns money
Reasoning depth is not a quality slider. It is a trade of output tokens and latency for accuracy on a specific class of problem, and outside that class you are paying for nothing.
#Worth paying for
Multi-step maths and logic. Debugging where the cause is several inferences from the symptom. Long agentic tool loops. Planning under constraints. Anything where a first-pass answer is plausibly wrong in a way you cannot cheaply check.
#Usually wasted
Classification, extraction, translation, reformatting, tone edits, template filling, straightforward retrieval-augmented answers. The answer is a lookup or a transformation; deliberation adds tokens and latency, not accuracy.
#Actively harmful
Interactive chat where response time is the product. A user watching a cursor blink for twenty seconds is a worse experience than a slightly weaker answer arriving in two. Drop to low or turn thinking off for the front-line tier.
One migration trap: instructions written for older models often tell Claude to double-check itself - "include a final verification step", "use a subagent to verify". Anthropic advises removing those when moving to Opus 5, because they cause over-verification on a model that already reasons by default. You pay twice for the same caution. The same applies to prompts carried from Sonnet 4.6 to Sonnet 5.
The honest test is empirical. Run your evaluation set at low and at high, record accuracy, output tokens and p95 latency for both, and see whether the accuracy delta justifies the token delta. On most production workloads it does not. Patterns for varying effort per request type are covered under automation and Claude for developers.
#How Claude got here
Hybrid reasoning arrived with Claude 3.7 Sonnet in February 2025 - the first Claude model that could either answer immediately or think first, in one model rather than two. It shipped alongside the original Claude Code research preview, and its most-watched demonstration was a long-horizon run at playing Pokémon, which we cover in the Pokémon analysis. That model retired on 19 February 2026.
What followed was the control moving from the user to the model. Claude 4 and Sonnet 4.5 kept the manual budget; Opus 4.5 introduced effort in public beta in November 2025; Opus 4.6 and Sonnet 4.6 supported both modes and deprecated the older one; by Opus 4.7 and Sonnet 5 extended thinking was removed outright; Fable 5 made thinking mandatory. The full sequence is on the model index.
In the apps, extended thinking is available on every plan including the free tier. What you cannot do there is set an effort value directly - that remains an API and Claude Code control.
#Frequently asked questions
What is adaptive thinking in Claude?
A reasoning mode where Claude judges each request's complexity and decides whether and how deeply to reason before answering, rather than following a fixed token budget you set. It is on by default on Opus 5, Sonnet 5 and Fable 5, with depth guided by the effort parameter.
What is the difference between extended thinking and adaptive thinking?
Extended thinking is manual: you set a fixed budget_tokens value and pay for that much reasoning. Adaptive thinking lets the model choose the depth, guided by an effort setting. Extended thinking is legacy and, among current models, only Haiku 4.5 still supports it.
Do I pay for Claude's thinking tokens?
Yes. Thinking tokens are billed at output rates, count toward max_tokens, and count toward output rate limits - even when the display setting hides them from the response. On models that retain thinking blocks across turns, they are also billed as input on every subsequent turn.
Why does Opus 5 return a 400 when I disable thinking?
Because thinking cannot be disabled while effort is set to xhigh or max. At those two rungs the model's approach depends on reasoning in thinking blocks. Either lower effort to high or below, or leave thinking enabled. This is a breaking change from Opus 4.8.
Does more thinking always give better answers?
No. Deeper reasoning helps on multi-step logic, debugging and long agentic loops. On classification, extraction, translation and reformatting it adds tokens and latency without improving accuracy. Test both settings on your own evaluation set before accepting the default of high.
Thinking modes, the effort ladder, per-model support and billing behaviour checked against platform.claude.com/docs on 21 August 2026, with rates from claude.com/pricing. Cost figures above are arithmetic from those rates. Anthropic changes parameter behaviour between model versions - re-read the thinking documentation before every migration.