Skip to main content

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_tokens upfront. Opus 4.7 / 4.8 and Sonnet 5 no longer support the manual budget_tokens mode; 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

Dimensiontype: "enabled"type: "adaptive"
Intensity controlClient-specified budget_tokens upper limitModel-automatic + output_config.effort adjustment
Thinking outputReturns thinking content block by defaultDefault omitted (signature only); requires display: "summarized" to show content
Compatible with temperature / top_k❌ Rejected when thinking is enabled❌ Also rejected
Default stateOff by defaultSonnet 5: on by default; Opus 4.7/4.8: off by default, must be explicitly enabled
Supported modelsClaude 4.5 / 4.6Sonnet 5 / Opus 4.8 / Opus 4.7 / Opus 4.6 / Sonnet 4.6

Model Support Matrix

Modeltype: "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 — passing enabled returns a 400 ("thinking.type.enabled" is not supported for this model).
  • Reasoning intensity is controlled via output_config.effort; budget_tokens is no longer used.
  • Opus 4.8's output_config.effort only accepts low / medium / high; passing max / xhigh may return an upstream 500.
  • thinking.display defaults to omitted (signature only, no full content). Pass summarized explicitly when you need to display the thinking content.
  • Default behavior differs: Sonnet 5 has adaptive on by default and can be disabled with disabled; Opus 4.7/4.8 is off by default and requires explicitly passing thinking.type: "adaptive".
  • These models reject non-default sampling parameters. Do not include temperature / top_p / top_k in 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.