How to Choose and Adjust LLM Reasoning Effort: A Practical Guide to Five Levels
Reasoning effort controls how much internal thinking an AI model applies before producing an answer. This guide explains the difference between reasoning effort and switching models, compares the low, medium, high, xhigh, and max levels, and provides practical guidance for balancing speed, cost, and output quality.
A Complete Guide to LLM Reasoning Effort
What Is Reasoning Effort?
Before producing a final answer, a large language model often performs an internal, draft-like reasoning process commonly known as thinking. One detail that is easy to overlook is that this internal reasoning also consumes tokens. It uses part of the same budget as the final response and may therefore affect both cost and latency.
Reasoning effort is the setting that controls how deeply the model works through this internal draft:
- Lower effort: The model gives straightforward answers with minimal internal reasoning, making it faster and more economical.
- Higher effort: The model reasons through more steps, considers more edge cases, and performs additional self-checks before reaching a conclusion.
A workplace analogy makes this easy to understand. If you ask a colleague which package contains a particular annotation, they can answer immediately. If you ask them to investigate an intermittent production bug, they may inspect logs, compare the code against their assumptions, and eliminate possible causes one by one. Reasoning effort tells the model which working mode to use for the task at hand.
Reasoning Effort vs. Switching to a Different Model
This is one of the most commonly misunderstood distinctions:
| Operation | What changes | Analogy |
|---|---|---|
| Switch to a more capable model | The model’s capability ceiling | Asking a smarter person to do the work |
| Increase reasoning effort | How much reasoning compute the same model applies | Asking the same person to work more carefully |
In other words, switching models addresses a capability problem, while changing effort addresses a depth-of-reasoning problem. If the model lacks the necessary knowledge or capabilities, increasing effort will not solve the issue. If the answer is incorrect because the reasoning was not sufficiently thorough, increasing effort may be more cost-effective than switching models.
Default Strategy: Do Not Adjust It Most of the Time
For many current AI coding tools, the default setting for mid- and high-end models is typically medium. Official documentation generally positions this level as suitable for well-scoped, everyday development work, such as implementing a new feature.
It is also worth noting that vendors commonly report that newer-generation models at the medium setting can match the coding performance of previous-generation models at higher settings. As models improve, the cost-effectiveness of the default level continues to increase. Automatically choosing a higher setting may simply mean paying for unnecessary reasoning.
The first practical principle is therefore:
Start with the default setting and judge it by the results. Do not assume that a higher setting is always better.
When Should You Adjust Reasoning Effort?
There are only two main reasons to change the setting:
- The model is too slow or consumes too many tokens → Lower the effort.
- The model repeatedly misses important details in complex tasks → Increase the effort.
A Quick Reference for the Five Levels
The “Best suited for” descriptions below reflect the general positioning in official documentation. The examples focus on backend development tasks.
| Level | Best suited for | Typical examples | Trade-offs |
|---|---|---|---|
| low | Fast back-and-forth work where you review every result | Renaming a variable or asking how to use an API | Fastest and most economical, but more likely to miss details in complex tasks |
| medium | Well-scoped everyday development; usually the default | Adding a pagination endpoint or writing a set of unit tests | The best balance between speed and quality |
| high | Tasks requiring verification and involving many edge cases | Fixing a bug in poorly documented legacy code | Slower, with noticeably higher token usage |
| xhigh | Planning-oriented tasks that require deeper reasoning | Producing a plan before a cross-module refactor | Significantly slower and more expensive |
| max | Difficult problems where you want the model to work with minimal intervention | Security reviews or diagnosing highly unusual issues | Slowest and most expensive; it may overthink the problem, so test it on a small task first |
Additional Guidance for Each Level
- The value of low lies in interaction density. If your workflow is “give an instruction, review the result, and immediately correct it,” the cumulative effect of response latency may matter more than a small loss in per-response quality. In that situation, low is often the most rational choice.
- Medium covers most everyday work. When requirements are clear and the context is not especially long, medium usually provides sufficient reasoning depth. Additional thinking may only slow down feedback.
- High is appropriate when errors are costly. For legacy code changes or tasks involving transaction boundaries and concurrency logic, additional self-verification can reduce outputs that appear correct but overlook important edge cases.
- xhigh is better for producing a plan than for writing routine code. Refactoring plans and architecture decisions can deliver long-term value from a single careful analysis, making the additional reasoning budget worthwhile.
- Max requires caution because of overthinking. With the reasoning budget fully increased, the model may get stuck in unnecessary self-questioning or drift away from the original problem. Official guidance also recommends validating the effect on small tasks before using the highest setting more broadly.
Practical Recommendations and Common Misconceptions
A Recommended Adjustment Strategy
The basic recommendation is simple:
Use the default medium setting in normal work. Increase the effort only for the specific task that needs it instead of running an entire session at xhigh.
In practice:
- Adjust effort at the task level, not the session level. A single development session may include questions, small edits, and large design tasks. Using a high setting globally is one of the biggest sources of wasted reasoning.
- Use token consumption as feedback. If thinking tokens account for an increasingly large share of usage without a corresponding improvement in output quality, the setting is probably too high.
- Increase effort one level at a time. If medium is insufficient, try high. If high still does not work, consider xhigh or max. Gradual escalation helps identify the point where the additional cost stops producing meaningful benefits.
Common Misconceptions
- Misconception 1: A higher setting always produces better code. Reasoning effort changes the depth of reasoning, not the model’s knowledge boundary. If the model does not know how to use a particular library, switching to max will not make it know the answer.
- Misconception 2: Reasoning effort can replace a clear prompt. When the task description is ambiguous, deeper reasoning may simply lead the model further in the wrong direction. Clarify the requirements before increasing the effort.
- Misconception 3: Low effort is guaranteed to be inaccurate. For mechanical tasks with clear instructions, the accuracy of a low-effort response may be nearly identical to that of a high-effort response. The tokens and time saved are then pure efficiency gains.
Conclusion
Reasoning effort is an attention-budget control. It does not change the model’s underlying capabilities; it changes how much reasoning compute the model applies to the current task.
To balance speed, cost, and quality, understand the purpose of each of the five levels and adjust the setting dynamically at the task level. Keep three principles in mind:
Use medium by default, increase effort only when needed, and move up one level at a time.
