Anthropic Adaptive Thinking
A new thinking mode introduced in Anthropic 4.6+ — the model automatically determines reasoning depth, so clients no longer need to specify
budget_tokensupfront. Opus 4.7 / 4.8 and Sonnet 5 no longer support the manualbudget_tokensmode; use adaptive instead.
Trigger Parameters
thinking.type "adaptive" (required for Opus 4.7/4.8 and Sonnet 5 / optional for 4.6)
thinking.display "summarized" | "omitted" (adaptive mode only)
Default omitted: returns only the signature, not the full content
summarized: returns a summarized version of the thinking
output_config.effort "low" | "medium" | "high" | "max" | "xhigh"
Controls reasoning intensity in adaptive mode
Available values depend on the specific model
Differences from Enabled Mode
| Dimension | type: "enabled" | type: "adaptive" |
|---|---|---|
| Intensity control | Client-specified budget_tokens upper limit | Model-automatic + output_config.effort adjustment |
| Thinking output | Returns thinking content block by default | Default omitted (signature only); requires display: "summarized" to show content |
Compatible with temperature / top_k | ❌ Rejected when thinking is enabled | ❌ Also rejected |
| Default state | Off by default | Sonnet 5: on by default; Opus 4.7/4.8: off by default, must be explicitly enabled |
| Supported models | Claude 4.5 / 4.6 | Sonnet 5 / Opus 4.8 / Opus 4.7 / Opus 4.6 / Sonnet 4.6 |
Model Support Matrix
| Model | type: "enabled" | type: "adaptive" |
|---|---|---|
turing/claude-sonnet-5 | ❌ Returns 400 if passed | ✅ On by default (can be disabled with disabled) |
turing/claude-opus-4.8 | ❌ Returns 400 if passed | ✅ Only supported mode (off by default, must be explicitly enabled) |
turing/claude-opus-4.7 | ❌ Returns 400 if passed | ✅ Only supported mode (off by default, must be explicitly enabled) |
turing/claude-opus-4.6 | ✅ | ✅ |
turing/claude-sonnet-4.6 | ✅ | ✅ |
turing/claude-opus-4.5 / claude-4.5-sonnet and earlier | ✅ Only supported mode | ❌ |
Breaking Changes in Newer Models
turing/claude-opus-4.7 / turing/claude-opus-4.8 / turing/claude-sonnet-5 introduce breaking changes compared to 4.6:
thinking.type: "enabled"is not supported — passingenabledreturns a 400 ("thinking.type.enabled" is not supported for this model).- Reasoning intensity is controlled via
output_config.effort;budget_tokensis no longer used. - Opus 4.8's
output_config.effortonly acceptslow/medium/high; passingmax/xhighmay return an upstream 500. thinking.displaydefaults toomitted(signature only, no full content). Passsummarizedexplicitly when you need to display the thinking content.- Default behavior differs:
Sonnet 5has adaptive on by default and can be disabled withdisabled;Opus 4.7/4.8is off by default and requires explicitly passingthinking.type: "adaptive". - These models reject non-default sampling parameters. Do not include
temperature/top_p/top_kin requests, as doing so may return a 400.
Example
{
"model": "turing/claude-opus-4.8",
"max_tokens": 16000,
"thinking": {
"type": "adaptive",
"display": "summarized"
},
"output_config": {
"effort": "high"
},
"messages": [
{ "role": "user", "content": "Explain why the sum of two even numbers is always even." }
]
}
Under the v1/messages protocol, the response includes a thinking content block (when display: "summarized" is set); under the v1/chat/completions protocol, reasoning content is populated in delta.reasoning_content.
Related Documentation
- Thinking & Reasoning → Anthropic Claude — Overview of all three modes:
enabled/adaptive/disabled - Anthropic Official: Adaptive Thinking
- Anthropic Official: Extended Thinking