Claude Seekho

Extended Thinking, Adaptive Thinking and Effort

With extended thinking, Claude reasons internally before the final answer (thinking blocks). On newer models this is adaptive: Claude decides when and how much to think. How much effort it spends is controlled by the effort parameter.

A response with thinking
  1. 1.User prompt: a hard question
  2. 2.Thinking block: internal reasoning (billed, hidden by default)
  3. 3.Tool calls?: tools if needed, thinking again in between
  4. 4.Text block: the final answer

Thinking tokens are billed like output tokens

6.1 Configuration

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=16000,
    thinking={"type": "adaptive", "display": "summarized"},   # show a summary
    output_config={"effort": "high"},                          # low | medium | high | xhigh | max
    messages=[{"role": "user", "content": "Prove the time complexity of this algorithm..."}],
)
for b in response.content:
    print(b.type)          # "thinking" then "text"

6.2 Effort levels

EffortWhen to use
lowSimple chat, classification, sub-agents, latency-sensitive work
mediumGood quality while saving cost (default for Opus 5.5 and Haiku 5.5)
highThe minimum for intelligence-sensitive work; default for most models
xhighBest for coding and agentic work (Claude Code's default)
maxWhen correctness matters more than cost

6.3 Old vs new approach

PointOld (up to Claude 3.7 / 4.x)New (4.6+ / 5.x)
Config{type: "enabled", budget_tokens: N}{type: "adaptive"}
ControlFixed thinking token budgeteffort level
Turning offRemove the thinking paramThinking is always on for Opus 5.5 / Fable; lower the effort
DisplaySummarized by defaultomitted by default; you must set summarized
Interleaved thinkingBeta headerAutomatic in adaptive (thinking between tool calls)