Choosing model and effort level in Claude Code
An official Anthropic explainer that separates two controls users of Claude Code routinely conflate: which model runs the request, and how much effort it spends on it. The piece’s thesis is that these are orthogonal — model sets the capability ceiling, effort sets how much work the agent does inside that ceiling — and that most people should treat effort as a standing preference, not a per-task dial.
Model = which frozen weights
Picking a model chooses “which set of frozen weights” answer the request. The weights — the billions of parameters fixed at training time — are read-only during inference: your prompt and context steer the model’s predictions but never rewrite them. A library that didn’t exist at training time isn’t “in” the weights; pasting its docs into context is steering, not learning. Hallucinations are framed the same way — the weights emitting a token sequence that “looks plausible from training patterns” when the real answer isn’t encoded. Switching models changes the capability range, not how many tokens get generated.
The article’s tiering (a product-specific snapshot — see synthesis):
- Fable — specialist for complex, multi-step work; highest cost per token.
- Opus — expert with deep experience; suited to ambitious tasks.
- Sonnet — reliable generalist for routine work.
Use a smaller model for routine work — precise edits, mechanical changes, questions about familiar code. Use a larger model for genuinely hard problems — subtle bugs, unfamiliar domains, ambiguous architecture calls.
Effort = how much work overall
The key correction: effort is not just thinking time. It governs “how much work Claude does on your request overall including the number of files read, tools used, and how many steps” it takes — how much exploration and verification it does before calling a task done. Effort is sent as an input alongside the prompt; the model “was trained to understand how to behave at each effort level and that learned behavior is baked into the frozen weights.” So effort does move token generation (unlike model choice), by changing how thorough the agent is.
Guidance:
- Keep the default for most work — it scales usage “according to what most people would want to spend on a task,” and is better thought of as “a general preference than a task-by-task decision.”
- Raise effort when Claude skipped files, didn’t run tests, or abandoned a task mid-way — symptoms of doing too little work, not of insufficient capability.
- Upgrade the model instead (don’t just raise effort) when Claude has clear context but is confidently wrong — that’s a capability limit, and more effort won’t fix it.
Why it matters here
This is the first source in the spoke to name effort level as a first-class control of an agentic coding harness, distinct from model selection — see effort-level. It sharpens the practitioner advice already logged in claude-code-best-practices (“Opus for complex work, Sonnet for iteration”), which only covered the model axis.