Qwen 3.8 overthinks on the default reasoning setting

AI CodingDeveloper ToolsSelf-HostingOpen SourceTrend Commentary

August 21, 2026

Two robots at a cream desk, one twisting a giant XHIGH dial while the other slaps it toward LOW, with a note card lettered overthinks on the default

Qwen 3.8 overthinks on the reasoning setting it ships with. The default is xhigh, and that is a terrible everyday knob for a laptop model.

Simon Willison ran the 27B in LM Studio on 16 August 2026. The first pelican SVG ate 22,276 reasoning tokens and 21 minutes to spit 3,223 tokens of drawing. Same prompt with reasoning off came back in 137 seconds.

Start on low or off. Raise it when the job is actually hard. Leave the shipped default for the overnight agent pass, not for "draw a circle."

  • xhigh, the shipped default, for thorough analysis
  • medium for a speed and accuracy mix
  • low for speed and cost

The shipped default is extra high#

A slate HUD dial locked on XHIGH with a climbing 22276 token strip and a dim LOW chip
The shipped knob is extra high, and low sits unused.

Qwen's Hugging Face model card does not hide this. Thinking is on by default. reasoning_effort has three names, low, medium, and xhigh, and xhigh is the default.

preserve_thinking is on too, so yesterday's lecture stays in the context window.

That is a stove with the knob welded to high. You can cook. You will also cremate the grilled cheese.

Qwen 3.8 27B is the dense local drop from that release. Apache 2, dense 27B, vision, 262k native context.

Simon called the LM Studio Q4 a 17GB file on disk. The listing for that GGUF is 16.10 GB. He ran it on a 128GB M5 Max MacBook Pro and a DGX Spark, which is a self-hosted machine, not a thin laptop.

It will drive a coding agent. Simon pointed Pi, the coding agent, at the Spark and got a real Datasette auth writeup, then a session-file-to-markdown converter out of the transcript. Horsepower is not the complaint.

The complaint is the first request. HF discussion 113 is titled like a bug report, "This model cannot stop thinking," and the reply is the template. Out of the box you are getting maximum reasoning on every request, including "rename this variable."

Simon's gist on that pelican lists reasoning_tokens 22276. He also blew LM Studio's default 8,192 context because the model used the whole window thinking about mundane prompts.

He loaded 262,144 and the window stopped being the bottleneck. Wall clock stayed the bottleneck.

This is the same shape as 750 tokens a second. A vendor default that looks like capability. The scarce resource is still your time.

A circle prompt became a study#

A dim ASKED circle on the left and a lit GOT geometric study of rings on the right
Asked for a circle, got a study.

The pelican is a known homework assignment. Models have been drawing that bird for two years. A circle is not.

Simon asked for draw an svg of a circle at the default. The trace did not start with <circle cx="50" cy="50" r="40" />. It started by talking itself out of the assignment.

The trace called a circle a simple request, then talked itself into a geometric circle study and a Bauhaus compass-drawing vibe. Several minutes later it produced an animated geometric study, beautiful and entirely not a circle.

A circle.

You'll hit this the first time you ask it to rename a function and it opens a design review. The model is not broken. The knob is.

xhigh is the model's actual advantage#

A dark hub with an OFF path missing a box in coral and an XHIGH path hitting the box in teal
Off misses the box, and xhigh lands it.

The honest pushback is not "thinking is fake." The honest pushback is that this 27B got good because it will sit there and grind.

The same card says the quiet part. In multi-turn agentic tasks, lower efforteffortA per-subagent setting that controls how much a model deliberates before acting, trading thoroughness for speed, fewer tool calls, and lower spend. Left unset, it silently inherits the session's higher default.See also execution subagent, model tier, prompt caching does not always cut total time.

Faster turns, more misses, more retries. You can spend the tokens either in one long think or in three short failures.

Simon built a bbox overlay tool with thinking left on. Massively over-engineered. It one-shot a working page, then invented a pelican demo scene because the sample JSON said "pelicans."

With reasoning off, the UI still appeared. The boxes landed in the wrong place.

On the r/LocalLLaMA thread around Simon's post, KingCpzombie put it bluntly. The overthinking is the best part. 3.6 used to miss things unless you asked twice, and 3.8 takes longer and is usually good first try.

615wonky starts xhigh jobs on a Strix Halo before bed and hopes they finish by morning. createthiscom compared the complaint to yelling at a star programmer for being autistic about the details.

Believe them. Keep xhigh for the vague, multi-file, overnight job. Do not keep it as the thing that boots when you type hello.

A default is a claim about the common case. Rename-this-variable is the common case. Twenty-one minutes of pelican philosophy is not a flex on a 16 GB GGUF. It is a knob nobody turned.

Start on low, raise it for the hard pass#

Three glass chips in a row labelled LOW, MEDIUM, and XHIGH, with LOW lit as the start
Boot on low, then raise it for the hard pass.

Simon's line is the right boot policy. Ignore the default. Run on low or no reasoning at first.

It is a great model. The shipped setting is a bad place to start.

Danmoreng's same-machine pelican on an RTX 5080 laptop, IQ3_XXS, three seeds, is the clean comparison. The r/LocalLLaMA table is one prompt and three knobs.

View data table
CategoryDanmoreng pelican (reasoning tokens)
Low4418
Medium5918
X-High39398
Default xhigh burned nearly 9x the reasoning tokens of low on the same pelican prompt.
Low4,418 reasoning tokens
Medium5,918 reasoning tokens
X-High39,398 reasoning tokens
Source — Danmoreng r/LocalLLaMA · 2026-08

Low used 4,418 thinking tokens and 111.6 seconds. Medium used 5,918 and 127.4 seconds. X-high used 39,398 and 717.8 seconds.

Visual scores crawled from 21.8 to 24.0. You paid nearly 9x the thinking tokens for a nicer bird.

Medium sits next to low. X-high is the other species. Boot medium if you want a little insurance.

Boot low if you want the model to shut up and draw the circle. Save xhigh for the pass you would have waited overnight for anyway.

The change is a template flag, not a new download. llama.cpp and the vLLM recipe both take chat_template_kwargs.

  • llama.cpp flag --chat-template-kwargs with reasoning_effort set to medium or low
  • enable_thinking false when the prompt is a drawing or a rename
  • vLLM --reasoning-parser qwen3 so <think> does not eat the completion budget
  • Skip Ollama for this dial, it throws the template away
terminal
llama-server \
  --chat-template-kwargs '{"reasoning_effort":"medium"}'

Kill thinking with enable_thinking false. vLLM's recipe also wants --reasoning-parser qwen3, because the template opens every turn with <think> and a 2048-token budgettoken budgetA fixed cap on how many tokens a prompt may use, the objective a compression algorithm optimizes toward without regard for which tokens an action actually depends on.See also caveman prompting will vanish before the answer starts.

Ollama will nod and throw the dial in the bin. A discussion on the 27B Hugging Face repo is explicit.

Ollama replaces the model's template, and the effort setting lives in the template it throws away. If the knob does nothing, that is why.

Holding this costs the demo. The sitting feels slower than the people who left xhigh on and went to bed. Some PRs that look finished at low still bounce, and the fix is one raised pass, not a new model.

Change the bet if a coding-agent loop you actually run fails more on low than the wait is worth. Until that shows up on your machine, the default is a stove fire.

Qwen 3.8 reasoning questions people asked

What is the easy change from the default?

Pass reasoning_effort as medium or low in chat_template_kwargs, or set enable_thinking to false. It is a template flag, not a new GGUF. llama.cpp takes --chat-template-kwargs '{"reasoning_effort":"medium"}'.

asked on old.reddit.com
Why does this model never stop thinking?

The chat template has three levels, low, medium, and xhigh, and the default is xhigh. Out of the box every request, including rename this variable, gets maximum reasoning. Turn it down. Do not wait for a patch that has not shipped.

asked on old.reddit.com
Does Ollama respect reasoning_effort?

No. Ollama replaces the model's own template, and the effort setting lives in the template it throws away. Serve with llama-server if you want the dial to actually move.

asked on old.reddit.com
What happens if thinking is turned off?

Answers come back in seconds instead of minutes. Simon's pelican with reasoning off took 137 seconds and 3,715 tokens. The bbox overlay he asked for then put boxes in the wrong place. Off is the daily start, not the agent setting.

asked on old.reddit.com
Is medium enough for an everyday local agent?

Medium is the everyday boot. Same-machine pelican numbers put medium next to low (5,918 vs 4,418 thinking tokens) and xhigh off by itself at 39,398. Keep xhigh for the vague, multi-file, or overnight job. Do not leave it on for chat.

asked on old.reddit.com
Share

Newsletter

New posts land in your inbox when they publish. No spam, unsubscribe anytime.

Prefer RSS