Controlling Reasoning Effort in LLMs
TL;DR Highlight
Training with effort labels in the system prompt lets you control reasoning length and accuracy
Who Should Read
An LLM API developer who wants to understand how reasoning effort settings in models like GPT-5.6 and gpt-oss affect cost and performance
Core Mechanics
- Reasoning models output intermediate steps
- It doesn't mean they reason like humans; they write a step-by-step reasoning trace.
- DeepSeek-R1 trained this with RLVR (reinforcement learning with 0/1 rewards on verifiable math and code problems).
- The <think> tags are cosmetic
- They mark where reasoning starts and ends so a UI can separate or hide it.
- They do not give the model any reasoning ability.
- Qwen3 has a reasoning on/off switch
- enable_thinking=False is a hard switch that prefills an empty <think></think> in the response.
- /think and /no_think are soft switches learned through SFT (supervised fine-tuning on example answers).
- gpt-oss picks effort via the system prompt
- The system message contains "Reasoning effort: low/medium/high".
- The model card figure shows higher effort raises both response length and accuracy.
- GPT-5.6's top settings show diminishing returns
Community Reactions
- A trick to extend reasoning by hijacking the token stream
- One commenter says you can find the token marking the end of reasoning and replace it with "wait, but" tokens to force the model to keep going.
- Opinion that llama.cpp already offers a token reasoning budget
- A commenter says it works with a custom message.
- They also say the ideal is to start with a small budget and expand by complexity.
- Opinion that reasoning formalizes the "think step by step" prompt
- A commenter notes that prompt trick was found two years after GPT-3 was released.
How to Apply
- Run the same prompts at each effort level and compare tokens and accuracy
- Take 10 representative prompts, call them at low/medium/high, and record output tokens and correctness in a table.
- Set the default at the point where accuracy gains flatten.
- Route effort by task difficulty
- Use low for simple classification or summaries and high for code edits or multi-step reasoning.
- Allow the top setting only when needed since its returns diminish.
- Cap reasoning with a budget on local models
- If you use llama.cpp, set a token reasoning budget and start small.
- Define a complexity criterion and raise the budget step by step.
Try It
# Paste into Claude or ChatGPT (simplified version of the article's method: mimic effort via system prompt)
Reasoning effort: {{low, medium, or high}}
Answer the question below. For low, give only a short conclusion without reasoning; for medium, show key steps only; for high, solve step by step and verify.
Question: {{question}}
Next step: run the same question at all three effort levels and compare answer length and accuracy.Terminology
Related Papers
Mercury 3: Diffusion at scale
Scaling diffusion LLM 40x gives Mercury 3: 4–8x faster than speed-tier models, similar quality
Timestral: Mistral's time-series foundation models
A 209M time-series model ranks first on three benchmarks and runs on CPU.
DeepSeek V4.1 Flash 1017 (Max)
DeepSeek V4.1 Flash 1017 Max scores 45 on the Intelligence Index at 211 tok/s and $0.30 input.
If you don't run your own LLM proxy, how do you know whats going on?
Running your own LLM proxy shows which keys, models, and cache misses drive your usage.
DeepSeek: DeepSeek v4.1 Flash 1017
DeepSeek V4.1 Flash 1017: $0.05/M input, 1M context, built for agents
DeepSeek-v4.1-Flash-1017
DeepSeek V4.1 Flash minor update lifts coding and agent benchmarks while cutting run time and output length
Show HN: Llmspeed – feel how fast a local LLM runs before you buy the hardware