An effort setting tells a model how many tokens to spend on a response. Lower levels cut reasoning, tool calls, and explanation, which saves money and time at some cost in capability. Start from your provider's default, run your own evaluation at each level, and move down only where quality holds.
What the documentation says
The Claude effort parameter affects all tokens in the response: text, tool calls and their arguments, and thinking when it is active. The docs describe five levels, low, medium, high, xhigh, and max. They say effort is a behavioral signal rather than a strict token budget, so a low setting still thinks on hard problems, just less.
Defaults differ by model. In the pages I fetched, most models default to high and two newer ones default to medium. Setting the default explicitly behaves the same as omitting it. Check your model's page, because these defaults move between releases.
What lower effort does to tool use
The docs say lower levels tend to combine operations into fewer tool calls, skip preamble, and use terse confirmations. Higher levels make more tool calls and write longer explanations. For an agent, that is a direct cost lever, because every tool round trip adds input and output tokens.
Matching level to task
The documentation suggests low for simple, high volume, or latency sensitive work and names subagents as a typical use. It suggests medium for balanced agentic tasks, and higher levels for complex reasoning and long running coding work. It also warns that at the top level, max, extra spend can bring small gains and sometimes overthinking, per its guidance for one model.
A reasonable routing table for your own system:
- Classification, extraction, routing: low.
- Standard chat and drafting: medium.
- Debugging, planning, multi step analysis: high.
- Reserve the top levels for tasks where an evaluation shows a measurable gain.
Test, then ship
The docs repeatedly say to run a fresh sweep on your own evaluations rather than carrying a setting over from an earlier model, because levels are recalibrated between models. Run each level across a representative sample, record quality, tokens, and latency, and pick the cheapest level that meets your bar.
Mind the cache
Changing top level effort between requests invalidates prompt caching, according to the docs. Hold it constant inside a conversation that relies on cache hits, and vary it across workloads instead. Some newer models support a per message change that keeps the cache, in beta at the time of writing.
Set max_tokens with room
Thinking counts toward max_tokens. If you lower effort to save money but also set a tiny max_tokens, you can truncate answers. Leave room for reasoning and the reply.
Quick check
Does low effort guarantee a lower bill?
Not by itself. It usually reduces tokens, but you should measure on your own traffic, since retries from worse answers can erase the saving.
Can I change effort inside one conversation?
Yes, but a top level change invalidates cached prefixes. Some models offer a beta per message change that preserves the cache.
Sources
Last reviewed: 19 October 2026.