Deep Dive · Jiedu

The Claude Code Team on Two Knobs: One for What It Can Do, One for How Hard It Tries

A long post from @ClaudeDevs breaks down two knobs that both seem to "make answers better": changing the model means swapping frozen weight sets, while adjusting effort changes its willingness to read more files, run more tests, and perform more validation before submitting its work.
TL;DR
  • On July 8, 2026, Anthropic's developer account @ClaudeDevs published a long post by Claude Code team member Lydia Hallie (@lydiahallie).
  • `effort` controls how much total work Claude does for a given task: how much it thinks, how many files it reads, how many tests it runs, how much it validates, and how far it pushes in a multi-step process before asking for more information. The API typically offers five levels: low / medium / high / xhigh / max. For most tasks, the model's default setting is sufficient.
  • The model setting determines which set of pre-trained, frozen weights to use, i.e., "what it knows." `effort` determines "how thoroughly it works." If it gives a wrong answer, first check the context, then ask: was it because it "didn't know" or "didn't try hard enough"?
  • An analogy: Fable is like a specialist, Opus is like an expert, and Sonnet is like a reliable general practitioner. `effort` is how much time they're willing to spend on your case.
  • For simple tasks, larger models are more expensive. For complex, multi-step tasks, larger models can sometimes have a lower total cost and can complete work that smaller models cannot. In tests, the default `effort` for Opus 4.8 used a similar number of tokens as the default for 4.7, but achieved better results.
The original text is an explanation of product mechanics written by a member of Anthropic's Claude Code team, not a third-party review. The "approx. 7x tokens" and "cost curve" diagrams are illustrative and the article explicitly states they are not real benchmark data. The role analogies for Fable / Opus / Sonnet are also the author's own words. The five `effort` level names and their positioning come from the official Effort API documentation; the "login 500 error" examples for each level are instructional scenarios to aid understanding, not recordings of actual tests by the manufacturer.
1The Source

Two Knobs That Seem to "Improve the Answer"

On July 8, 2026, Anthropic's developer account, @ClaudeDevs, published a long-form article on Claude Code, written by team member Lydia Hallie.

When using Claude Code, both the model choice and the `effort` level can make the results seem better. One controls "what it knows," and the other controls "whether it's willing to do enough."
Many people assume that choosing a larger model (like Fable) is simply smarter than Sonnet, and that increasing `effort` just means "thinking longer." The first statement is generally true, but the second is incomplete. It's crucial to understand `effort` itself before the choice between "changing the model or adjusting `effort`" becomes meaningful.
2First, Understand `effort`

What is `effort`: How Thoroughly the Same Model Works on a Task

In Claude Code, `effort` is a setting alongside model selection. It doesn't change "what the model knows," but rather tells the same model how much work it should put in before delivering the result. A common misconception is to see `effort` as just "thinking longer"; in reality, it governs the thoroughness of the entire job.

The original article is blunt: `effort` controls how much total work Claude does for a given request. This includes not just how long it thinks, but also:

Reading Files

Whether to open multiple source code, config, or log files, or just look at the snippets you've pasted in the chat.

Validation

Whether to run tests after a change, double-check its conclusions, or take another look at edge cases on its own.

How Far to Push

How far it proceeds in a multi-step task before stopping to ask you for more context.

Thinking and Planning

Whether to write a plan first, how detailed that plan is, and whether to perform an extra validation step after finding a solution.

`effort` is like a gas pedal, not a new engine Same car (same model), press the gas harder to go further and check more thoroughly on this trip Low `effort` Finish faster · Use fewer tokens Read files Run tests Autonomous progress Prefers to ask you first High `effort` More work · Higher confidence in result Read files Run tests Autonomous progress Figures it out first, then asks
Illustration: Increasing `effort` doesn't mean a more powerful model; it means the same model is willing to read, validate, and push further for this task. Bar lengths are for illustrative purposes only, not official metrics.

In the API documentation, `effort` is a behavioral signal, not a hard token limit. At a low setting, it might still think when faced with a real challenge, but it will "think less and do less" on the same problem compared to a high setting. The official documentation lists roughly five levels from frugal to intensive. (In the Claude Code UI, you might also see entries like 'ultracode' tied to multi-agent permissions; this is a product-side combination, not an extra API level name).