AI DevelopmentFramework12 min readPublished August 15, 2026

Eight vendors · 3–7 rungs per ladder · seven surfaces with no documented off switch

Reasoning Effort Ladders: A Cross-Vendor Field Guide

Every vendor now ships a reasoning-effort control, and no two ladders line up. Rung counts run from three to seven, the parameter name changes at every API boundary, defaults sit anywhere from medium to the very top, and a growing set of models refuses to turn thinking off at all. This is the operational reference: rungs, defaults, parameter names, no-disable traps, and what effort actually does to your bill.

DA
Digital Applied Team
Senior strategists · Published Aug 15, 2026
PublishedAugust 15, 2026
Read time12 min
Sources8 vendor doc sets
Rung counts, vendor to vendor
3–7
across eight vendors surveyed
Labs on low / high / max
3
DeepSeek · Z.ai · Moonshot
no medium rung
No documented off switch
7
7 of 11 surfaces · Anthropic partial
Muse Code named values
7
default xhigh · two caveated

Reasoning effort levels are now a first-class API control at every major LLM vendor — and every vendor built a different ladder. As of mid-August 2026, the surfaces we surveyed expose anywhere from three to seven named rungs, under at least four different parameter names, with defaults that range from the middle of the ladder to its very top — and no shared standard behind any of it.

That divergence is not cosmetic. A config value that means “cheap and fast” on one API can be an invalid value on the next — GLM-5.3 rejects requests that try to disable thinking outright, while Grok silently downgrades an unsupported rung instead of erroring. Port an effort setting across a model swap without checking, and quality, latency, and cost all move at once — sometimes silently, sometimes as a hard failure.

This guide is the operational reference: the current rung set, parameter name, default, and disable behavior for OpenAI, Anthropic, Google, xAI, Z.ai, DeepSeek, Moonshot, and Meta’s Muse Code, plus the migration traps between them and the mechanics of how effort moves your bill. For the consumer-facing side — the ChatGPT effort slider and its cousins — see our explainer on consumer thinking dials; this post stays at the API and CLI layer.

Key takeaways
  1. 01
    No two ladders line up.Rung counts run from three (Gemini 3.7 Flash, GLM-5.3, DeepSeek V4, Kimi K3, Grok 4.5) to seven named values (Muse Code). Even vendors with the same count use different names and defaults.
  2. 02
    The parameter name changes at every boundary.OpenAI uses reasoning.effort, Anthropic output_config.effort, Google thinking_level, and xAI, Z.ai, and Moonshot each a top-level reasoning_effort. DeepSeek’s changelog describes the levels in prose without publishing the field name.
  3. 03
    Three Chinese labs converged on low / high / max.DeepSeek, Z.ai, and Moonshot independently landed on an identical three-rung scheme with no medium — while every US vendor we surveyed keeps a medium rung as a core tier or default.
  4. 04
    Thinking increasingly cannot be turned off.GLM-5.3 fails requests that set thinking to disabled, Grok 4.6 and Kimi K3 document reasoning as always-on, and Claude Opus 5 returns a 400 error if you disable thinking at xhigh or max effort.
  5. 05
    Effort moves spend through tokens and turns.Thinking tokens bill as output tokens, and vendors document that higher effort tends to make more tool calls — more turns, more tokens. GPT-5.6 additionally carries prior-turn reasoning into each new request by default.

01The MapEight vendors, eight different ladders.

The table below is the whole post in one view: every surface’s documented rung set, exact parameter name, default, and whether thinking can be turned off — taken from each vendor’s own API or product documentation, checked August 14, 2026. Everything after this section unpacks the rows that carry traps.

Reasoning-effort ladders across eight vendors: for each API or CLI surface, the parameter name, the documented rung set from lowest to highest, the default value, and whether thinking can be disabled.
SurfaceParameterRungs (low → high)DefaultThinking off?
US vendors — medium-inclusive ladders
OpenAI GPT-5.6 (Sol / Terra / Luna)reasoning.effortnone · low · medium · high · xhigh · maxmediumYes — via none
OpenAI cross-model guidereasoning.effortup to 7 values incl. minimal — model-dependentvaries (GPT-5.5: medium)Yes — where none is supported
Anthropic Claude APIoutput_config.effortlow · medium · high · xhigh · maxhighNot on Opus 5 at xhigh / max — 400 error
Google Gemini 3.7 Flashthinking_levellow · medium · highdynamic — starts at mediumNo disabled state documented
Google Gemini 3.6 Flashthinking_levelminimal · low · medium · highdynamic — starts at mediumNo disabled state documented
xAI Grok 4.6reasoning_effortlow · medium · high · xhighhighNo — cannot be disabled
xAI Grok 4.5reasoning_effortlow · medium · highhighNo — cannot be disabled
Chinese labs — the low / high / max bloc
Z.ai GLM-5.3reasoning_effort + thinking.typelow · high · maxmaxNo — disabled fails outright
DeepSeek V4-Pro / V4-Flashfield name not published in the changelog entry we checkedlow · high · maxnot statedNot stated in the entry
Moonshot Kimi K3reasoning_effortlow · high · maxmaxNo — thinking always on
CLI surface — the widest ladder
Meta Muse Code (wraps Muse Spark 1.2)--reasoning-effortnone* · minimal · low · medium · high · xhigh · ultra**xhighnone listed but unsupported*

* Muse Code's docs list none in the flag's value set but separately state the CLI doesn’t support it. ** ultra is client-side multi-agent delegation, clamped to xhigh at the model-call level — see section 07. Source: vendor API and product documentation, checked August 14, 2026.

Documented rung counts per surface

Source: vendor API documentation, checked August 14, 2026
Muse Code7 listed values — none unsupported, ultra client-side
7
OpenAI GPT-5.6none · low · medium · high · xhigh · max
6
Anthropic Claude APIlow · medium · high · xhigh · max
5
Gemini 3.6 Flashminimal · low · medium · high
4
Grok 4.6low · medium · high · xhigh
4
Gemini 3.7 Flashlow · medium · high — minimal pruned
3
GLM-5.3low · high · max
3
DeepSeek V4-Pro / V4-Flashlow · high · max
3
Kimi K3low · high · max
3

02OpenAISix rungs on 5.6 — and a pruned bottom step.

OpenAI’s control is reasoning.effort, and its cross-model reasoning guide lists up to seven values — none, minimal, low, medium, high, xhigh, and max — with the explicit caveat that supported values are model-dependent. That seven-value list is the guide’s superset, not any one model’s ladder.

On the current GPT-5.6 family, the ladder is narrower. All three durable tiers — Sol, Terra, and Luna — document the identical six-rung set: none, low, medium (the default), high, xhigh, and max, with no minimal rung. GPT-5.5, by contrast, defaults to medium and still lists minimal among its available values. In other words, OpenAI pruned the bottom step of the ladder in its most recent generation — a pattern we will meet again at Google.

Two operational details matter beyond the rung names. First, GPT-5.6’s reasoning tokens are billed as output tokens; they are invisible in the response but still occupy context-window space, and the exact count is reported in usage.output_tokens_details.reasoning_tokens. Second, GPT-5.6 flips a long-standing default: the family defaults to carrying reasoning from earlier turns into the next request (reasoning.context set to all_turns), where every prior generation defaulted to current_turn.

Migration trap · OpenAI
Teams upgrading to GPT-5.6 will see reasoning tokens re-billed on every turn unless they explicitly set reasoning.context to current_turn. The rung names look familiar coming from GPT-5.5 — the default context behavior underneath them is not. Per OpenAI’s reasoning guide, checked August 14, 2026.

03AnthropicFive rungs, a high default, and a tier-gated off switch.

Anthropic exposes exactly five documented effort levels — low, medium, high, xhigh, and max — and the parameter is not a bare effort field: the request shape is output_config.effort, distinct from the deprecated thinking budget-tokens mechanism used on pre-4.6/4.7 models. The default is high, one rung above OpenAI’s medium — worth knowing before you compare “default vs default” across the two APIs. Claude Sonnet 5 likewise defaults to high on both the Claude API and Claude Code.

Even within Anthropic’s own line, the ladder is not uniform: the docs note that xhigh is a newer level and that some models supporting max do not support xhigh. Per the same page, xhigh is available on six models (Fable 5, Mythos 5, Opus 5, Opus 4.8, Opus 4.7, and Sonnet 5) while max spans a broader nine-model list. A config that assumes xhigh exists everywhere will not survive contact with the older members of the family.

The sharper trap is the off switch. On Claude Opus 5, thinking cannot be disabled at the xhigh or max effort levels — a request that sets thinking to disabled at those levels returns a 400 error. That is a partial, tier-gated version of the blanket no-disable rules we will see at GLM, Grok, and Kimi: the pattern of top effort tiers forcing thinking on did not start in China; it already exists at Anthropic.

One more Anthropic-documented behavior earns its own section later: effort changes tool-calling behavior, not just verbosity. Lower effort levels tend to combine operations into fewer tool calls and proceed directly to action; higher levels may make more tool calls and explain the plan before acting. That is a billing mechanism, and section 09 prices it out.

04GoogleA per-model ladder — and a regression against its own prior generation.

Google’s parameter is thinking_level, set inside the generation config, and it explicitly varies by model rather than following one company-wide ladder — the thinking docs list the level set per model across eleven entries. Gemini models also engage in dynamic thinking by default, automatically adjusting reasoning effort to the request’s complexity; thinking_level is the override for that dynamic behavior, and the documented “On (medium)” default describes the dynamic starting point, not a fixed per-request budget.

The row worth staring at is the newest one. Gemini 3.7 Flash’s documented level set is exactly low, medium, and high — three rungs. Gemini 3.6 Flash, its immediate predecessor, still supports four: minimal, low, medium, and high. The newest Flash pruned the minimal rung its own prior generation still has — a regression in configurability against 3.6 Flash, and the second instance of the pattern OpenAI set when GPT-5.6 dropped minimal from GPT-5.5’s ladder. Two unrelated vendors trimmed the cheap bottom rung in their most recent releases.

Migration trap · Google
A pipeline pinned to thinking_level minimal on Gemini 3.6 Flash has no equivalent rung to move to on 3.7 Flash — the floor of the new ladder is low. Budget for the floor rising, not just the names changing, when you bump the model ID. Per Google’s thinking docs, last updated August 13, 2026.

05xAIFour rungs, no max, and a silent downgrade.

Grok 4.6’s reasoning_effort ladder has four rungs — low, medium, high, and xhigh — defaulting to high, with no max tier documented anywhere on xAI’s reasoning page. Reasoning cannot be disabled on either Grok 4.6 or Grok 4.5. How xAI positioned that high default against rival ceilings in its launch benchmarks is a story of its own — we covered it in our read of the Grok 4.6 effort-tier comparison table — so here we stay with the operational surface.

The failure mode xAI chose for unsupported rungs is the quiet one. Grok 4.5 supports only three rungs — low, medium, and high — and per the docs, xhigh is available on grok-4.6 and later; on models that do not support it, such as grok-4.5, requests with xhigh are treated as high. No error, no warning: the request runs one rung below what you asked for. That is the opposite failure mode from GLM-5.3, which hard-fails invalid values — and the silent version is arguably more dangerous, because nothing tells you your “maximum effort” eval ran at high.

Current
Grok 4.6
low · medium · high · xhigh

Four rungs, defaults to high, reasoning cannot be disabled. No max tier exists on this ladder — xhigh is the ceiling.

Default: high
Prior
Grok 4.5
low · medium · high

Three rungs, same high default, same no-disable rule. Requests that specify xhigh are silently treated as high rather than rejected.

xhigh → high, silently
Docs-only
grok-4.20-multi-agent
same values, different meaning

Per the same docs page, this model's effort parameter controls how many agents collaborate on a request — four or 16 — rather than reasoning depth. At the time of writing it appears only in xAI's API docs; this research pass found no separate announcement.

Effort = agent count

06The ConvergenceThree Chinese labs, one identical ladder.

Cross-reference the vendor docs and a pattern emerges that no single vendor states: DeepSeek, Z.ai, and Moonshot — three separate Chinese frontier labs — have independently converged on an identical three-rung scheme: low, high, max, with no medium rung. Every US vendor we surveyed (OpenAI, Anthropic, Google, xAI, and Meta’s Muse Code) keeps medium as a core tier or default. If your routing layer assumes medium exists everywhere, it does not survive the Pacific crossing.

DeepSeek
V4-Pro and V4-Flash
3rungs

The August 13 changelog entry states both models' thinking modes now support three effort levels: low, high, max. The default rung is not stated in the entry, and the entry describes the levels in prose without publishing the JSON field name.

Default: unstated
Z.ai
GLM-5.3
3rungs

reasoning_effort accepts low, high, and max, defaulting to max — which the launch post recommends for coding tasks. Disabling thinking is no longer supported: thinking.type accepts only enabled.

Default: max
Moonshot
Kimi K3
3rungs

A top-level reasoning_effort field supports low, high, and max, defaulting to max, with thinking always on. At launch only max shipped, with the lower rungs promised; the platform docs now document all three.

Default: max

The bloc shares more than names. GLM-5.3 and Kimi K3 both default to max — the top of the ladder — where every US vendor defaults to a middle or upper-middle rung. And two of the three ship blanket no-disable rules: Kimi K3’s thinking is always on, and GLM-5.3’s own migration note is unambiguous — disabling thinking is no longer supported, and a request that sends thinking type disabled fails outright. Z.ai's prescribed migration path is to switch the value to enabled and set reasoning_effort to low before updating the model ID to glm-5.3; otherwise the request errors. We covered the model itself in our GLM-5.3 launch analysis.

One aggregator-layer caution for the DeepSeek row: listings on OpenRouter surface an “xhigh” label for these models, but that is OpenRouter’s own effort-naming layer, not a DeepSeek term — DeepSeek’s documentation describes low, high, and max only, for both V4-Pro and V4-Flash. When a middleman renames the rungs, the vendor's docs are the ladder; the aggregator's labels are a translation.

07Overloaded NamesWhen “effort” is not depth at all.

Meta’s Muse Code CLI documents the widest ladder of any surface we checked: --reasoning-effort accepts seven named values — none, minimal, low, medium, high, xhigh, and ultra — changeable mid-session, with the default at xhigh, not high. But two of those seven values do not do what the ladder metaphor implies.

The docs state it plainly: Muse Code doesn’t support none in practice, and ultra is a client-side setting. Set ultra and Muse Code clamps the actual model request to xhigh — ultra doesn’t add deeper per-call model reasoning. What it changes is how aggressively the CLI delegates to multi-agent workflows on the client, which can raise token usage. So the top rung of the widest ladder in the survey is not a reasoning depth at all; it is a parallelism dial wearing an effort costume.

That makes at least two primary-sourced cases of vendors overloading effort-adjacent naming to mean “more parallel agents” rather than “deeper single-model reasoning” — Muse Code’s ultra and the grok-4.20-multi-agent docs entry from section 05, where the same parameter name selects an agent count. The operational lesson: an effort value is not portable even within a single vendor's model line until you have read what that value does on that model.

The parameter name survives the migration; its meaning does not.— Digital Applied, editorial synthesis of the vendor docs

08Migration TrapsThe four ways an effort config breaks in transit.

Model migrations used to be about prompts and tool schemas. The effort layer now adds four distinct failure classes — and they fail differently, from silent quality drift to hard 4xx errors. Any team routing requests across models and effort tiers should be able to name all four.

Trap 1
The rung does not exist on the target

medium exists nowhere in the DeepSeek, GLM, or Kimi ladders; minimal is gone from GPT-5.6 and Gemini 3.7 Flash; max does not exist on Grok. Map rungs by intent (floor, default, ceiling), never by name.

Audit the target's rung set first
Trap 2
Disable assumptions hard-fail

Configs that set thinking to disabled fail outright on GLM-5.3, cannot apply on Grok or Kimi K3, and return a 400 on Claude Opus 5 at xhigh or max. Z.ai's own migration note: switch to enabled and set effort to low before changing the model ID.

Treat no-thinking as non-portable
Trap 3
Unsupported values degrade silently

Grok 4.5 treats xhigh as high with no error — the opposite failure mode from GLM's hard rejection. Silent downgrades corrupt evals and cost models without tripping an alert. Log the effort the vendor actually honored, not the one you sent.

Verify effort in responses, not requests
Trap 4
Same name, different meaning

Muse Code's ultra reroutes to client-side multi-agent delegation clamped to xhigh; xAI documents a model where the effort parameter sets agent count. Aggregators add their own labels on top — OpenRouter's xhigh for DeepSeek is not a DeepSeek term.

Read the per-model definition, every time

09BillingWhat effort actually does to the bill.

Effort moves spend through two documented mechanisms — and knowing them matters more than any multiplier, because both scale with your workload, not with a fixed ratio.

Mechanism one: thinking tokens. On GPT-5.6, reasoning tokens are billed as output tokens — the most expensive token class — and occupy context-window space even though they are invisible in the response; the count is reported in usage.output_tokens_details.reasoning_tokens. Raise the effort rung and you raise how much of that class the model produces per request. GPT-5.6’s all_turns default compounds this: prior-turn reasoning is carried into each new request unless you opt out, so the same thinking can occupy billable context repeatedly across a conversation.

Mechanism two: tool-call turns. Anthropic documents that effort changes agent behavior, not just verbosity: lower effort levels tend to combine multiple operations into fewer tool calls and proceed directly to action, while higher levels may make more tool calls and explain the plan before acting. In an agentic loop, every additional tool call is a full extra round-trip of input and output tokens. Effort therefore multiplies with loop length — the rung you pick sets how many turns the loop runs, and each turn re-sends context.

A third, CLI-specific channel: Muse Code’s ultra can raise token usage precisely because it delegates to multi-agent workflows on the client. And on subscription surfaces, when you run can matter alongside how hard: Z.ai’s GLM Coding Plan meters usage in points and charges half the standard point cost outside peak hours, with peak defined narrowly as Monday to Friday, 14:00–18:00 UTC+8 — every other hour, weekends included, gets the off-peak rate. Time-based pricing is spreading across vendors this month; our off-peak pricing breakdown covers the schedules in detail.

What this post deliberately does not give you is a table of “low costs X% of high” figures — spend per rung depends on task shape, loop length, and context size, and any fixed multiplier would be an invention. For measured cost-versus-quality curves across effort tiers, see our reasoning-effort benchmark study — the performance-numbers companion to this reference.

The operator’s rule
Measure effort in thinking tokens and turn counts, not in rung names. Two vendors’ “high” can produce very different token profiles on the same task — the rung is an input, the usage field is the truth. If you are building this discipline into a production stack, our AI transformation engagements start exactly here: per-rung usage baselines on your own workloads before any routing decision.

10ConclusionTreat effort as a per-model contract, not a shared standard.

The state of the ladders, August 2026

There is no standard rung — only eight vendor contracts that happen to share some words.

The survey’s shape is clear: eight vendors, rung counts from three to seven, four parameter names, defaults from medium to max, and seven of the eleven surfaces mapped above with no documented way to turn thinking off. The words overlap just enough to feel interchangeable — low, high — and differ exactly where it costs money: the defaults, the floors, the off switches, and what the top rung secretly does.

The direction of travel is visible in the deltas. Two US vendors pruned their cheapest rung in their newest releases; three Chinese labs standardized on a max-forward three-rung scheme; and the no-disable rule spread from one tier-gated case at Anthropic to blanket policies at three other vendors. If those trends hold, expect ladders to keep getting shorter at the bottom and more mandatory at the top — plan for a future where “no thinking” is not an option you can buy.

The operational takeaway fits on an index card: before any model swap, read the target’s rung set, default, and disable behavior in the vendor’s own docs; map rungs by intent rather than by name; log the effort actually honored; and watch thinking tokens and turn counts, not labels. The ladder metaphor suggests a shared standard. There isn’t one — there are eight contracts.

Run effort as an engineering discipline

Effort tuning is now a cross-vendor engineering problem.

Our team builds multi-vendor AI stacks with per-rung cost baselines, effort-aware routing, and migration checklists that catch no-disable traps before production does.

Free consultationExpert guidanceTailored solutions
What we work on

Effort-aware AI operations

  • Cross-vendor effort mapping for model migrations
  • Per-rung token and turn-count baselines on your workloads
  • Routing policies that pair task class with rung
  • No-disable and silent-downgrade migration audits
  • Cost programs spanning thinking tokens and tool loops
FAQ · Effort ladders

The questions we get every week.

A reasoning-effort ladder is the set of named levels a vendor exposes for controlling how much deliberate thinking a model does before answering — trading latency and token spend for depth. Each vendor defines its own: OpenAI's reasoning.effort, Anthropic's output_config.effort, Google's thinking_level, and the reasoning_effort field used by xAI, Z.ai, and Moonshot. As of mid-August 2026, documented rung counts range from three (Gemini 3.7 Flash, GLM-5.3, DeepSeek V4, Kimi K3) to seven named values (Meta's Muse Code CLI). The names, defaults, and behaviors are vendor contracts, not a shared standard — the same word can sit at a different height on two ladders, or mean something other than reasoning depth entirely.
Related dispatches

Continue exploring effort and cost engineering.