What Is Reasoning | Armin Ronacher's Thoughts and Writings
Armin Ronacher's Thoughts and Writings
blog<br>archive<br>projects<br>travel<br>talks<br>about
What Is Reasoning
written on August 19, 2026
A few weeks ago a paper was shared that<br>showed how to extract reasoning traces from closed-weight models. Together<br>with online discussions about tricking models into leaking them, it made me<br>investigate it more out of curiosity. Twitter seems full of half-truths and<br>confusion about how this works, so perhaps this helps some to understand what is<br>happening.
Hiding Traces
Reasoning traces are usually hidden from us. We have lamented<br>this, but mostly have to<br>accept it. Open-weight models thankfully reveal them, and from their behavior<br>you can see that their traces can be long and confusing. This is probably a<br>good reason to separate them from what is normally shown to users.
At minimum, UIs need to detect them. The industry has done a good job at making<br>reasoning traces sound special and exotic, but they really are just text: the<br>model is trained to emit its thinking into a scratchpad as part of its response,<br>before its final answer.
GPT-OSS’s Harmony response format makes this easy to see:
analysis<br>I need to work this out ...<br>assistantfinal<br>The answer is ...
The markers are special tokens, but the reasoning between them uses "the same<br>text" as the final answer (just that GPT chain-of-thought text sounds really<br>funny). When the model samples the analysis channel token, a parser routes<br>the following text into a separate stream exposed through the Responses API.<br>For closed models, presumably a simple model redacts and summarizes it.
Reasoning Effort
How much budget goes to reasoning? Earlier APIs exposed reasoning token<br>budgets, making it seem like a property of the sampling process. In reality,<br>reasoning effort is baked into the system prompt. GPT-OSS puts this into the<br>system prompt:
Reasoning: low
That’s it. Training produces the resulting behavior, such as emitting the<br>token sequence that switches to the analysis channel. This also explains why<br>changing the effort invalidates the KV cache. I think closed GPT models call<br>reasoning effort "juice," since you can ask most models how much juice they<br>have.
In DwarfStar for DeepSeek with max reasoning<br>this is added to the system prompt:
Reasoning Effort: Absolute maximum with no shortcuts permitted.<br>You MUST be very thorough in your thinking and comprehensively decompose the<br>problem to resolve the root cause, rigorously stress-testing your logic against<br>all potential paths, edge cases, and adversarial scenarios.
Don’t Think
The destination of reasoning tokens is therefore a learned convention: the<br>model is trained to keep scratch work out of the final channel. Trick it into<br>thinking it is in that channel and it may leak tokens. We have even seen older<br>models, when thinking is disabled, reason into the bash tool and echo their<br>thoughts to /dev/null.
So in some sense the only "special" behavior for some models is not to think.<br>That at times is done by "mechanically" removing the model’s usual ways to think.<br>In DwarfStar, disabled thinking uses the<br>prefill , while enabled thinking uses , which are the tokens<br>that close and start thinking. GPT-OSS doesn’t prefill but lets the model<br>decide either way on its own.
But presumably, some inference APIs prefill the opening token when reasoning is<br>enabled, so the model never samples it itself and might prevent the sampling of<br>the reasoning token when disabled since it can be trivially detected. This may<br>explain why a custom think<br>tool can<br>trick models into putting some reasoning where it should not go — but only when<br>native reasoning is disabled.
This entry was tagged
ai
copy as / view markdown
© Copyright 2026 by Armin Ronacher.
Content licensed under the Creative Commons<br>Attribution-NonCommercial 4.0 International License.
Contact me via mail,<br>bluesky,<br>x, or<br>github.
You can sponsor me on github.
More info: imprint &<br>AI transparency.<br>Subscribe via atom / RSS.
Color scheme:<br>auto,<br>light,<br>dark.