Thinking and effort
The thinking parameter controls whether Claude thinks in thinking blocks before answering; the effort parameter controls how much work Claude puts into the whole response, which in adaptive mode includes how often and how deeply it thinks. Don't pass adaptive as an effort value: adaptive is a thinking mode, not an effort level.
To learn what each effort level does to thinking behavior, see the per-level thinking behavior table on the Steering thinking page. The Effort page documents the parameter itself, including which levels each model supports. On Claude Opus 4.5, the only extended-thinking-only model that supports effort, effort composes with budget_tokens. See Budget rules and tuning.
With the two controls separated this way, pick the one that matches your goal:
- Lower cost or latency on a thinking-enabled workload: lower
effortfirst. It scales the whole response down, thinking included. - Claude is thinking too rarely or too shallowly: raise
effort, or see Steering how often Claude thinks on the steering page. - You need thinking fully off: use
thinking: \{type: "disabled"\}on models that allow it (see the per-model configuration table). - You need a hard ceiling on spend: use
max_tokens. Effort is soft guidance.max_tokensis a strict limit.