Effort Levels and Thinking Display Options Reference
A quick-reference table for every effort level and thinking display mode, and how to combine them in a single request.
How to Use This Reference
- Look up the effort level that matches your workload's speed and cost needs first.
- Then decide separately whether the reasoning trace should be shown, summarized, or hidden.
- Treat effort and display as two independent axes, not one combined setting.
- Revisit these choices per endpoint as usage patterns and cost targets change.
Effort Levels
| Level | Relative speed | Relative cost | Reasoning depth | Typical fit |
|---|---|---|---|---|
low | Fastest | Lowest | Minimal | Classification, extraction, short lookups |
medium | Balanced | Moderate | Standard | General assistant replies, summarization |
high | Slower | Higher | Deep | Code review, multi-step planning |
max | Slowest | Highest | Maximum | Safety-critical analysis, complex debugging |
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
output_config={"effort": "high"},
messages=[{"role": "user", "content": "..."}],
)Thinking Display Options
| Display mode | What it returns | When to use |
|---|---|---|
| Summarized | A condensed version of the thinking block content | Debugging, optional user-facing rationale, audit logs |
| Omitted | No thinking block content returned, even if reasoning happened internally | Production UI paths where raw reasoning should never reach the client |
Display mode is a presentation setting on top of whatever reasoning already happened, it does not change the effort level or the reasoning depth itself.
Combining Effort and Display
| Effort | Display | Result |
|---|---|---|
low | Omitted | Fastest, cheapest, no reasoning trace returned, best default for high-volume simple tasks |
medium | Summarized | Balanced cost with a condensed rationale available for debugging |
high | Summarized | Deep reasoning with a readable trace, good for code review tooling |
max | Omitted | Maximum internal reasoning depth, but the client only sees the final answer, useful when reasoning is sensitive or verbose but the answer quality still matters |
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=2048,
thinking={"type": "adaptive"},
output_config={"effort": "max"},
messages=[{"role": "user", "content": "..."}],
)Model Defaults
| Model | Adaptive thinking default | Notes |
|---|---|---|
| Claude Fable 5 | Always on | Top-tier model, 1M context, 128K max output |
| Claude Opus 4.8 | Configurable | Flagship reasoning model, 1M context |
| Claude Sonnet 5 | Configurable | Default general-purpose model |
| Claude Haiku 4.5 | Configurable | Fastest and cheapest, 200K context, pairs well with low effort |
Choosing a Starting Point
- High-volume simple tasks:
loweffort, omitted display. - General assistant replies:
mediumeffort, summarized display for internal logging only. - Code review and planning tools:
higheffort, summarized display shown to developers. - Safety-critical or compliance-sensitive analysis:
maxeffort, summarized display retained in an audit log even if omitted from the end-user response.
FAQs
Are effort level and thinking display the same setting?
No. Effort (output_config.effort) controls reasoning depth and cost. Thinking display controls whether that reasoning is returned summarized or omitted. They are independent and can be combined.
What are the four effort levels in order?
low, medium, high, max, from fastest and cheapest to most thorough and expensive.
Does omitted display mean no reasoning happened?
No. Reasoning can still happen internally at whatever effort level you set, omitted display just means that reasoning trace is not returned in the response.
What does summarized display actually contain?
A condensed version of the model's reasoning, shorter than the full internal trace but still useful for debugging or optional disclosure.
Which effort level should a high-volume classification endpoint use?
low effort, typically paired with omitted display, since classification tasks rarely benefit from deep visible reasoning and volume makes cost the primary concern.
Is max effort always paired with summarized display?
No, they are independent. You can run max effort with omitted display when you want maximum reasoning depth internally but do not want to expose or store the raw trace.
Does Claude Fable 5 need effort configured differently than other models?
Claude Fable 5 runs with always-on adaptive thinking by default, but the effort parameter still applies the same way as with other models to cap reasoning depth and cost.
Should I always use summarized display for debugging?
It is a reasonable default during development. For production, weigh the extra response size and any sensitivity of the reasoning content before deciding to keep summarized display on.
Can I change effort level per request without changing the thinking config?
Yes. output_config.effort and thinking are set independently on each messages.create call, so you can vary one without touching the other.
What happens if I don't set an effort level at all?
The request uses the model's default reasoning behavior. For explicit, predictable cost and latency control, set output_config.effort deliberately rather than relying on defaults.
Is there a level between high and max for finer control?
No, the four levels covered here (low, medium, high, max) are the standard set. Fine-grained control beyond these four is achieved by routing different request types to different levels, not a fifth level.
Related
- Extended Thinking and the Effort Parameter Explained - the conceptual background for these two settings.
- Tuning the effort Parameter for Cost and Speed - a full walkthrough of choosing effort per workload.
- Enabling Adaptive Thinking with thinking: {type: 'adaptive'} - how adaptive thinking interacts with these settings.
- Extended Thinking, Effort & Multimodal Basics - minimal runnable examples using these settings together.
- Extended Thinking, Effort & Multimodal Best Practices - numbered practices for choosing levels and display modes in production.
Stack versions: Written against the Claude model lineup current as of ~June 2026 - Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5 (the default), and Claude Haiku 4.5 - and the official
anthropicPython SDK (latest 0.x release). Model names, SDK versions, and pricing move quickly - verify current specifics at platform.claude.com/docs before relying on them.