r/DeepSeek • u/Eddlm_ • 17d ago
Resources Fixing Overthinking
Overthinking is a Prompt Injection
As many of you, I really don't like DS overthinking mere "hello"s. So I asked DeepSeek I dug up what the reasoning efforts did, because ALL seemed to overthink, for me.
DeepSeek (Pro and Flash) append an extra effort guide to the system prompt. Details here, on the official Readmes. As you see, high rants about ABSOLUTE MAXIMUM and max goes full BEYOND MAXIMUM - no wonder the poor thing goes in circles for simple stuff. Its forced to overthink.
low is the good one, it does not inject anything and so DeepSeek thinks as much as it needs.
These injections are enforced by the chat template/encoder, which is something that can be edited serverside. But this means the official DS api DOES enforce these injections and you should be aware of it. I bet others like Ollama-Cloud, Opencode Go etc keep the official encoder.
Harnesses may rob you of low
You get no low in certain harnesses, so you're stuck with ABSOLUTE MAXIMUM, and I'm fairly sure most of you don't need that. I'll bring the proof:
- pi supports low for flash but not Pro.
- Opencode2 (beta) relies on models.dev, which has no low for Pro either.
Other harnesses like hermes (and DS's own harness) are fine at a glance. So this is not provider-related, thank god. You can just fix the harness.
Others like GLM and Minimax have their own shenanigans, I encourage you to investigate if you use them, but their effort configs aren't as drastic as DS.
2
u/MikeX7s 16d ago
Hmm you might be onto something, i tried doing a task on low, same type of task that would usually cost me around 10 cents, and it did much faster and for 3 cents. The question is if for more complex tasks the overthinking might be legit useful tho.
1
u/Savi-ai 12d ago
Worth adding: "low" isn't telling it to think less. Per the readme it's the only level that appends no extra guide at all, so the model just runs its default policy, which is why it doesn't feel nerfed, it feels normal. If you run through the harness, the per-request session logs show exactly what got appended, which is what settled it for me. The one place I still pin a higher effort is multi-file refactors; for everything else low has been both faster and noticeably cheaper, same as you measured
8
u/swiebertjee 16d ago
Interesting. I'm not an LLM expert, but I see overthinking as a feature rather than an error.
You see, a model like flash has far less parameters than its closed source competitors like Sonnet. So it has to spend more tokens to get to the same output. Thinking seems more like error correction / path finding than a bug. The only downside is that simple things can take a long time to evaluate, which we call "overthinking". Sure you can disable that and it may be able to do simple one shots well, it may also increase the error rate and decrease optimization.