Skip to main content

Reasoning models

A is designed to generate an internal scratchpad of intermediate thoughts before returning a final answer. If you ask it to solve a complex accounting problem, rather than immediately predicting the final total, the model spends hundreds or thousands of tokens working through calculations, verifying intermediate values, catching its own mistakes, and only then producing the visible response.

The core concept behind this approach is known as a . Early prompting strategies showed that instructing standard models to "think step by step" noticeably improved arithmetic and logical consistency. Modern reasoning models take this further: they are explicitly trained with reinforcement learning on verifiable domains—such as mathematics, logic puzzles, and software engineering—to develop systematic problem-solving habits rather than relying purely on prompt phrasing.

The primary advantage lies in self-correction. When an unspecialized model is prompted to think step by step, it produces sequential text, but it rarely notices when step four contradicts step two. A dedicated reasoning model actively backtracks when it detects an inconsistency, writes out corrections to its scratchpad, and pivots to an alternative approach before delivering an answer.

Thinking tokens consume context and budget

Internal reasoning steps are not a hidden computational trick—they are real tokens generated sequentially by the model. These are classified as output tokens and billed at the higher output rate. They also consume room within the model's context window. Because token decoding runs sequentially, a model that generates 4,000 thinking tokens before responding introduces several seconds of latency before delivering its first visible word.

As a result, a single interaction with a reasoning model can cost significantly more than the same query sent to a standard model, even when the final visible response is identical in length. Teams that budget infrastructure costs solely on expected user-facing reply lengths will quickly face unexpectedly high cloud bills.

Controlling reasoning effort

Most providers that offer reasoning models provide configuration knobs to dial this behavior up or down. This control typically appears as a parameter (with settings like low, medium, or high) or as an explicit thinking token budget.

An effort parameter sets a qualitative guideline, allowing the model to adapt its internal thought length based on question difficulty within that tier. A token budget provides a numerical target the model tries not to exceed. In both cases, these settings are targets rather than rigid execution caps: the model may finish simple queries far below the allocated budget.

Dialing down reasoning effort is often the most effective way to address slow response times or runaway costs—often yielding better results than dropping down to an entirely smaller model family. The relationship between reasoning depth and accuracy follows diminishing returns: on many practical workflows, a medium effort setting captures the majority of accuracy improvements, while the maximum setting burns significant tokens for marginal accuracy gains.

This paradigm is widely described as : investing additional computational power during inference rather than pouring all resources into initial model training. Test-time compute acts as an effective counterweight to model parameter size. On well-defined analytical tasks, a compact model allowed to deliberate thoroughly can frequently outperform a much larger model answering immediately, while costing less to host.

Visibility into internal thoughts

How providers handle internal reasoning logs varies considerably across vendors, which directly impacts debugging and observability.

Some APIs expose the complete raw thought transcript directly in the response payload. Others summarize the scratchpad using a separate smaller model, returning a sanitized paraphrase. In some environments, reasoning logs are hidden entirely, exposing only the billed token count. Certain providers encrypt internal reasoning blocks, requiring the client harness to round-trip the opaque payload on subsequent conversational turns to preserve internal state.

These differences complicate debugging. When an API only provides a synthesized summary of internal thoughts, a flawed answer may be accompanied by a plausible-sounding summary that does not accurately reflect how the model erred.

Furthermore, research indicates that generated reasoning text is not always an exact record of internal network activations. Models can stumble onto correct solutions despite flawed scratchpad explanations, or rationalize answers reached via alternative internal heuristics. Treat reasoning transcripts as helpful diagnostic hints rather than definitive audit trails.

When reasoning models are worth the cost

Reasoning models shine on tasks where logic can be verified against objective ground truth:

  • Multi-step mathematics and quantitative analysis: Financial reconciliations, compound interest projections, and coordinate transformations where each step depends on prior outputs.
  • Complex dependency planning: Ordering multi-stage database migrations, organizing infrastructure rollout phases, or analyzing task prerequisites.
  • Constrained code generation: Tasks requiring strict adherence to multiple constraints, such as refactoring an internal module without modifying public signatures or introducing external libraries.
  • Verifiable logic problems: Puzzles, formal specifications, and algorithm implementations covered by automated test suites.

Conversely, enabling heavy reasoning is counterproductive in several common scenarios:

  • Direct retrieval queries: When the necessary information is already present in the prompt, extensive deliberation does not uncover new facts. Extracting a purchase order date from an invoice is a straightforward lookup.
  • Prose editing and restructuring: Formatting tables, summarizing bullet points, or adjusting email tone requires stylistic alignment rather than logical proofs.
  • High-throughput classification: Simple sentiment tagging or routing calls where low latency and cost efficiency outweigh fractional accuracy gains.
  • Interactive, latency-sensitive surfaces: Inline code completion or search-as-you-type interfaces where delays of several seconds ruin the user experience.
Choosing a reasoning setting

Start at the lowest setting that solves the task. Increase it only against evidence.

  1. Run the task at the lowest effort setting the model offers.
  2. Measure accuracy on your own examples. Do not rely on a published benchmark.
  3. Raise the effort one step. Measure again.
  4. Stop at the step where accuracy stops improving.
  5. Record the thinking token count per call and the time to first token at that setting.
  6. Turn reasoning off for extraction, formatting and classification tasks.
  7. Turn reasoning off on any path where a person is waiting for the response.

Reasoning inside agentic tool loops

Pairing reasoning models with tool calls introduces subtle considerations for both cost and workflow stability.

From a cost standpoint, an autonomous agent completing a twenty-step workflow may deliberate before every single tool invocation. Twenty iterations generating 3,000 thinking tokens each adds 60,000 billable output tokens to the run—often dwarfing the cost of the actual user interactions and tool responses.

For workflow integrity, many provider APIs mandate that thinking blocks from preceding turns be returned unmodified alongside incoming tool execution results. This context allows the model to resume its problem-solving trajectory smoothly. If a client strips, modifies, or reorders these internal blocks when formatting message histories, the API may reject the payload or the model may lose conversational continuity. When an agent succeeds on its initial tool call but becomes erratic on subsequent turns, verify how your harness handles historical reasoning blocks.

In well-designed agent architectures, reasoning and tool execution interleave naturally: the model plans its approach, executes an action, evaluates the tool result against its expectations, adjusts its plan, and proceeds. While this interleaved feedback loop offers remarkable autonomous problem-solving capabilities, it represents one of the most token-intensive ways to run a model. The mechanics of orchestrating these cycles are covered in the agentic loop.

Terms introduced

  • Reasoning model: a model trained to produce a long private working before its answer, and to check and correct itself while doing so.
  • Thinking tokens: the tokens of that working, billed at the output rate and counted against the context window whether or not you see them.
  • Test-time compute: spending more computation when answering rather than when training, as a way of buying accuracy.
  • Reasoning effort: the dial that sets how much working a model does, as a coarse level or as a token budget.
  • Chain of thought: written-out intermediate steps between a question and an answer, useful for accuracy but not a faithful record of how the answer was reached.

How providers do it

Every vendor here has converged on a named effort level instead of a token budget, and none of them will show you the actual working.

QuestionAnthropicOpenAIGoogle
What the dial is calledoutput_config.effortreasoning.effortthinking_level
Levelslow, medium, high, xhigh, maxnone, minimal, low, medium, high, xhigh, max, varying per modelminimal, low, medium, high
Older token budgetbudget_tokens, minimum 1,024, now rejected on 4.7 and laterNot offeredthinkingBudget, still accepted, -1 for dynamic
Can it be switched off?Not on the newest modelsnone on GPT-5.6, rejected on GPT-6 Astra0 budget on some models; 2.5 Pro cannot
Raw reasoning returned?NeverNeverNever
What you can getA summary from a different model, or nothingA summary, auto/concise/detailedA summary plus an encrypted signature
BillingOutput tokens, full working not the summaryOutput tokensOutput tokens plus thought tokens
Usage fieldoutput_tokens_details.thinking_tokensoutput_tokens_details.reasoning_tokenstotal_thought_tokens
Must blocks be replayed with tool results?Yes, unmodified, or 400Yes, or use previous_response_idYes in stateless mode

Every row is confirmed except Google's default thinking level, where two vendor pages disagree, and the error each raises when a block is dropped.

The last row is the one that breaks agents. A harness that rebuilds the message history from its own record, rather than replaying what the API returned, will fail on the second tool call of a reasoning run.

What this maps to: the thinking field on the Messages API, with the depth dial now living in output_config.effort rather than in a token budget.

QuestionAnswerStatus
Does a reasoning mode exist?Yes, called extended thinking. Current form: thinking: {"type": "adaptive", "display": "summarized"}confirmed
Is it on by default?On Opus 5, Sonnet 5, Fable 5.1, Mythos 5.1, Fable 5, Mythos 5 and Mythos Preview, "thinking is already on and needs no configuration"confirmed
How is the budget expressed?As an effort level: output_config: {effort: "low" | "medium" | "high" | "xhigh" | "max"}. Default is highconfirmed
The older token budgetthinking: {"type": "enabled", "budget_tokens": N}, minimum 1,024 tokens, and less than max_tokens. "The budget is a target rather than a strict cap"confirmed
Is the token budget still accepted?Deprecated on the 4.6 models. Claude 4.7 and later return a 400 telling you to use adaptive and output_config.effortconfirmed
Can thinking be turned off?thinking: {"type": "disabled"} returns a 400 on Fable 5.1, Mythos 5.1, Fable 5, Mythos 5 and Mythos Previewconfirmed
Is the reasoning text returned?Never raw. "No display setting returns the raw chain of thought." display: "summarized" returns a summary; display: "omitted" returns thinking blocks with an empty thinking field and is the default on Opus 5, Sonnet 5 and the Fable and Mythos modelsconfirmed
Who writes the summary?A different model. "Summarization is processed by a different model from the one you target in your requests. The thinking model does not see the summarized output"confirmed
Redactionredacted_thinking blocks are returned "when portions of Claude's reasoning are safety-redacted", carrying an encrypted data field and no readable textconfirmed
How are thinking tokens billed?As output tokens, "even when the thinking text isn't returned to you", and they count toward max_tokens. "You're charged for the full thinking tokens generated by the original request, not the summary tokens"confirmed
Billed again on later turns?On models that keep prior-turn thinking, the kept blocks are billed as input tokens on the next requestconfirmed
Where is the count reported?usage.output_tokens_details.thinking_tokens, on the final message_delta when streamingconfirmed
Interaction with tool callsThinking blocks "must be passed back to the API, complete and unmodified", including redacted ones and ones with an empty thinking field. Modifying them returns a 400confirmed
Forced tool useAllowed with adaptive thinking except on Fable 5.1 and Mythos 5.1, which return a 400 on tool_choice any or tool. Manual mode allows only auto and noneconfirmed
Interleaved thinkingAutomatic on adaptive models with no beta header. Claude 4.5 and earlier Claude 4 need interleaved-thinking-2025-05-14. Haiku 4.5 does not support itconfirmed
Effect on prompt cachingAny thinking-config or effort change invalidates cache breakpointsconfirmed

Their vocabulary

Standard termTheir term
Reasoning modelExtended thinking, as a mode rather than a separate model line
Reasoning effortoutput_config.effort, levels low through max
Thinking tokensThinking tokens, billed as output tokens
Chain of thoughtThinking blocks, returned summarized or omitted, never raw

Where to look

usage.output_tokens_details.thinking_tokens is the figure to chart. It is the part of the bill nobody sees in the reply text.

Last verified: 2026-09-09 against the Anthropic platform docs: thinking, extended thinking, errors, and context windows (platform.claude.com/docs/en/build-with-claude/thinking, /build-with-claude/extended-thinking, /api/errors, /build-with-claude/context-windows).


Check your understanding

0 of 4 answered

  1. A reasoning model returns a 300-token answer to a 900-token prompt, having thought for 4,200 tokens first. What is billed?
  2. How does a reasoning model differ from prompting an ordinary model with "think step by step"?
  3. A reasoning agent handles its first tool call correctly, then loses the thread on the second. The harness rebuilds the message list from its own store before each request. What is the likely fault?
  4. A document extraction pipeline pulls three fields from an invoice, one call per document, at high volume. Reasoning effort is set to high. What is the sensible change?