Quick Start
1
Enable with a level
Pass a graded level to the agent.
2
Switch provider, same level
The same level works on Anthropic and produces an extended-thinking budget under the hood.
3
Turn it off
off is a zero-overhead no-op.4
Change it after construction
The setter keeps a cached LLM in sync.The setter also updates an already-built LLM in place, so a change after the instance materialises still lands on the next request.The CLI
--thinking <level> flag uses this same setter path internally, so the flag takes effect even when it is applied after the LLM has been built.How It Works
Levels
Each level maps to a native parameter per provider family.Provider Coverage
Which model families the level affects.Which Level Should I Pick?
Match the level to the task.Three Ways to Set It
The same level is available in Python, YAML, and the CLI.--thinking <level> is applied to the agent after construction. It reaches the request pipeline even when the LLM instance has already been materialised — no rebuild required.Session Persistence
The effort you were running is persisted on the session and restored on resume — you do not need to pass--thinking again.
A per-invocation
--thinking <level> on resume overrides the persisted value.Backward Compatibility
thinking_budget remains a supported alias that folds into reasoning_effort.
agent.thinking_budget reads back the last integer budget that was set (or None); the graded string level always lives on agent.reasoning_effort. Assigning a graded string (agent.thinking_budget = "high") still routes through the effort setter, but agent.thinking_budget continues to report None in that case — read agent.reasoning_effort for the current level.
Best Practices
Match effort to task complexity
Match effort to task complexity
Start at
medium and raise to high for planning, analysis, or long code.Use off on non-reasoning models
Use off on non-reasoning models
reasoning_effort="off" is a no-op with no runtime cost.Change effort mid-session
Change effort mid-session
Assign
agent.reasoning_effort at any time; the setter updates a cached LLM in place.Prefer the graded level over the legacy int
Prefer the graded level over the legacy int
Use a level (not a raw token budget) so the value stays provider-portable.
Related
Thinking Budgets
Legacy alias and token-budget helper
Reflection
Self-review loops for higher-quality outputs

