What you will be able to do
- Distinguish extended thinking (manual budget_tokens) from adaptive thinking and know which models accept each
- Explain how thinking tokens are billed and counted, including when display is omitted
- Set the effort parameter and choose a level for a workload
- Explain what fast mode changes and what it does not
1.Extended thinking and adaptive thinking
A model that answers in one pass has to get everything right the first time, with no scratch work. Thinking lifts that limit. With thinking active, Claude works through the problem in its own words before it answers: it restates the question, tries approaches, checks intermediate results and drops paths that fail. This reasoning arrives in thinking content blocks before the text. It is why thinking helps on math, coding, analysis and long agentic tasks. The text you can see in a thinking block is a summary of the reasoning, never the raw chain of thought.
There are two ways to configure it. Extended thinking is the older, manual form: you send type: "enabled" with a fixed budget_tokens. It is deprecated on Opus 4.6 and Sonnet 4.6, and on Claude 4.7 and later models budget_tokens returns a 400 error. Adaptive thinking (type: "adaptive") lets Claude decide when to think and how much, based on the effort setting and how complex the query is. Easy queries get a direct answer. On Claude Opus 5.5, Fable 5.1 and the Fable and Mythos 5 models, adaptive thinking is always on and cannot be disabled.
| Model | No thinking field | "adaptive" | "enabled" with budget_tokens |
|---|---|---|---|
| Claude Opus 5.5 | Adaptive thinking | Adaptive thinking | 400 error |
| Claude Opus 4.8 | Thinking off | Adaptive thinking | 400 error |
| Claude Sonnet 4.6 | Thinking off | Adaptive thinking | Extended thinking (deprecated) |
| Claude Haiku 4.5 | Thinking off | 400 error | Extended thinking |
Thinking is never free. Reasoning tokens are billed as output tokens and count toward max_tokens, so leave room for both the thinking and the reply. The display field only controls whether you see the summary. "omitted", the default on the Claude 5 models and Opus 4.7 and 4.8, returns an empty thinking field and speeds up the first text token when streaming, but you still pay for the full thinking. You can also steer when adaptive thinking triggers. If a large system prompt makes Claude reason through trivial questions, add an instruction telling it to answer directly when thinking would not meaningfully improve the answer.
Checkpoint 1 of 5· Check yourself
A FAQ bot on Claude Opus 4.8 uses adaptive thinking, but it reasons at length over trivial questions and users notice the latency. The team wants thinking kept available for hard questions. What is the best fix?
Adaptive thinking's triggering can be steered with a prompt. budget_tokens returns a 400 error on Opus 4.7 and later. "omitted" hides thinking but still generates it and charges for it. A non-default temperature is rejected on this model.
“The triggering behavior for adaptive thinking is promptable.”Source: platform.claude.com
Checkpoint 2 of 5· Exam question
A team using Claude Sonnet 5 wants to guarantee the lowest possible latency on simple lookup queries by turning reasoning off completely for those requests. Simply omitting the thinking configuration does not achieve this. What should they do instead?
Correct answer: C — Set thinking type to disabled explicitly in the request
- A. On Claude Sonnet 5, adaptive thinking is on by default, so omitting the thinking parameter still leaves thinking active rather than turning it off.
- B. Manual thinking with type enabled and budget_tokens is rejected with a 400 error on Claude Sonnet 5, since it only supports adaptive thinking.
- C. Claude Sonnet 5 requires passing thinking type disabled explicitly to turn off adaptive thinking, since it is on by default otherwise.
- D. Lowering effort only reduces how much Claude thinks; it does not disable thinking outright, since thinking remains active by default on this model.
2.Effort levels: how many tokens Claude spends
The effort parameter sets how many tokens Claude spends on a response, so one model can trade thoroughness against token efficiency. You set it with output_config.effort. It affects every output token: the response text, tool calls and their arguments, and thinking when thinking is active. That is why effort works whether or not thinking is on, and why lower effort also means fewer, terser tool calls. On a model where adaptive thinking cannot be turned off, such as Opus 5.5, effort becomes the main control over how much the model reasons and what a request costs.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Analyze the trade-offs between microservices and monolithic architectures",
}
],
output_config={"effort": "medium"},
)Most models default to high. Claude Opus 5.5 defaults to medium, so a request that leaves effort out runs one level lower than it did on Opus 5. Not every model has every level. max and xhigh exist only on newer models, and not every model with max also has xhigh. At the higher levels, set a large max_tokens, because it is a hard limit on total output, thinking plus response text.
| Level | Description | Typical use case |
|---|---|---|
| max | Absolute maximum capability with no constraints on token spending | Tasks requiring the deepest possible reasoning |
| xhigh | Extended capability for long-horizon work | Long-running agentic and coding tasks (over 30 minutes) |
| high | Spends as many tokens as the task needs; default on most models | Complex reasoning, difficult coding problems, agentic tasks |
| medium | Balanced approach with moderate token savings; default on Claude Opus 5.5 | Agentic tasks balancing speed, cost, and performance |
| low | Most efficient, with some capability reduction | Simpler tasks needing the best speed and lowest costs, such as subagents |
Checkpoint 3 of 5· Fill the gap
Which request field completes this sample so it runs at medium effort?
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5-5",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Analyze the trade-offs between microservices and monolithic architectures",
}
],
? ={"effort": "medium"},
)Effort is set as output_config.effort on the request. The thinking field selects the thinking mode, and speed selects fast mode.
Source: platform.claude.comSources3
3.Fast mode: the same model, faster output
Fast mode is a research preview that gives up to 2.5x more output tokens per second on Claude Opus 5.5, Opus 5 and Opus 4.8, at premium pricing. It is not a different model. It runs the same weights with the same behaviour on a faster inference configuration, so you keep Opus-level capability without moving to a smaller model. You opt in by setting speed: "fast" and sending the fast-mode-2026-02-01 beta header.
response = client.beta.messages.create(
model="claude-opus-5-5",
max_tokens=4096,
speed="fast",
betas=["fast-mode-2026-02-01"],
messages=[
{"role": "user", "content": "Refactor this module to use dependency injection"}
],
)Where the speed shows up is important. Fast mode raises output tokens per second, not time to first token, so it pays off on long generations and is easiest to see when streaming. If your problem is the wait before the first token, fast mode is the wrong tool. Effort and fast mode also act on different things. Effort changes how many tokens Claude produces. Fast mode changes how quickly each one arrives.
Checkpoint 4 of 5· Check yourself
A streaming code assistant on Claude Opus 5 needs long refactors to finish faster, and the team will pay a premium but will not change models. Which change fits?
Fast mode keeps the same Opus model and raises output tokens per second at premium pricing. Its gain is most visible in streaming, long generations.
“Speed benefits are focused on output tokens per second (OTPS), not time to first token (TTFT)”Source: platform.claude.com
Checkpoint 5 of 5· Exam question
A prompt engineer is building an extraction task that must follow a specific output format consistently, including on tricky edge cases. They want the most reliable way to steer Claude's format and structure using a small number of well-crafted demonstrations. What should they do?
Correct answer: A — Provide three to five diverse examples that mirror the real use case and cover edge cases, wrapped in example tags
- A. Multishot prompting with three to five relevant, diverse examples wrapped in example tags is the recommended approach for steering format, tone, and structure reliably.
- B. A single untagged example gives Claude less structure to distinguish instructions from demonstrations and does not cover the diversity edge cases require.
- C. Examples are one of the most reliable levers for output format; replacing them with prose instructions alone forgoes that benefit for a format-sensitive task.
- D. A large set of near-duplicate examples risks Claude picking up unintended narrow patterns instead of generalizing to the diverse cases the task actually requires.
Sources4
Exam traps
Each one states something that sounds right. Open it to see what is actually true.
1.Fast mode swaps in a smaller, faster model, so you trade some intelligence for speed.Why is that wrong?
Fast mode uses the same model weights and behaviour on a faster inference configuration. Only output speed and price change.
Covered in Fast mode: the same model, faster output
2.Setting thinking display to "omitted" cuts thinking costs, because the thinking text is not returned.Why is that wrong?
Omitted display skips streaming the thinking text, which lowers latency, but every thinking token is still generated and billed.
Covered in Extended thinking and adaptive thinking
3.Effort only matters when thinking is enabled, because it is a thinking budget.Why is that wrong?
Effort applies to every output token, including response text and tool calls, so it works with or without thinking.
Covered in Effort levels: how many tokens Claude spends
Sources
Every claim above is drawn from one of these pages, quoted as it was written on the date shown.
- 1.
“When thinking is active, Claude works through the problem in its own words before answering”
↩︎ Extended thinking and adaptive thinking“what you see is never the raw chain of thought: the text in a thinking block is a summary of Claude's reasoning.”
↩︎ Extended thinking and adaptive thinking“If your model supports only extended thinking (see the per-model configuration table), configure it with type: "enabled" and a budget_tokens value instead.”
↩︎ Extended thinking and adaptive thinking“the tokens Claude spends reasoning are billed as output tokens, even when the thinking text isn't returned to you”
↩︎ Extended thinking and adaptive thinking“You're still charged for the full thinking tokens. Omitting reduces latency, not cost.”
↩︎ Exam trap 2 - 2.https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practicesOfficial docs
“On Claude 4.7 and later models, setting budget_tokens returns a 400 error.”
↩︎ Extended thinking and adaptive thinking“Claude calibrates its thinking based on two factors: the effort parameter and query complexity.”
↩︎ Extended thinking and adaptive thinking“The triggering behavior for adaptive thinking is promptable.”
↩︎ Checkpoint - 3.
“The effort parameter lets you control how many tokens Claude spends when responding to requests.”
↩︎ Effort levels: how many tokens Claude spends“Lower effort also means fewer and terser tool calls.”
↩︎ Effort levels: how many tokens Claude spends“Most Claude models default to high effort, spending as many tokens as needed for excellent results; Claude Opus 5.5 defaults to medium.”
↩︎ Effort levels: how many tokens Claude spends“so effort is the primary control for how much the model reasons and what a request costs.”
↩︎ Effort levels: how many tokens Claude spends“It's a hard limit on total output (thinking plus response text).”
↩︎ Effort levels: how many tokens Claude spends“Because effort applies to every output token, it works whether or not thinking is enabled.”
↩︎ Exam trap 3 - 4.
“Set speed: "fast" with the fast-mode-2026-02-01 beta header on your request to opt in.”
↩︎ Fast mode: the same model, faster output“Speed benefits are focused on output tokens per second (OTPS), not time to first token (TTFT)”
↩︎ Fast mode: the same model, faster output“Fast mode runs the same model with a faster inference configuration. There is no change to intelligence or capabilities.”
↩︎ Exam trap 1“Fast mode runs the same model with a faster inference configuration. There is no change to intelligence or capabilities.”
↩︎ Prediction