{"slug": "what-is-reasoning", "title": "What Is Reasoning", "summary": "A new paper and online discussions have revealed methods to extract hidden reasoning traces from closed-weight AI models, prompting an investigation into how these traces work. Reasoning traces are simply text emitted into a scratchpad before the final answer, controlled by system prompts and special tokens, as demonstrated by GPT-OSS's Harmony response format and DeepSeek's DwarfStar implementation. The findings clarify that reasoning effort is not a sampling property but a learned convention, and that models can be tricked into leaking reasoning when native reasoning is disabled.", "body_md": "A few weeks ago [a paper was shared](https://arxiv.org/html/2608.09867v1) that\nshowed how to extract reasoning traces from closed-weight models. Together\nwith online discussions about tricking models into leaking them, it made me\ninvestigate it more out of curiosity. Twitter seems full of half-truths and\nconfusion about how this works, so perhaps this helps some to understand what is\nhappening.\n\nReasoning traces are usually hidden from us. [We have lamented\nthis](https://earendil.com/posts/session-portability/), but mostly have to\naccept it. Open-weight models thankfully reveal them, and from their behavior\nyou can see that their traces can be long and confusing. This is probably a\ngood reason to separate them from what is normally shown to users.\n\nAt minimum, UIs need to detect them. The industry has done a good job at making reasoning traces sound special and exotic, but they really are just text: the model is trained to emit its thinking into a scratchpad as part of its response, before its final answer.\n\nGPT-OSS’s Harmony response format makes this easy to see:\n\n```\n<|channel|>analysis<|message|>\nI need to work this out ...\n<|end|><|start|>assistant<|channel|>final<|message|>\nThe answer is ...\n<|return|>\n```\n\nThe markers are special tokens, but the reasoning between them uses “the same\ntext” as the final answer (just that GPT chain-of-thought text sounds really\nfunny). When the model samples the `analysis`\n\nchannel token, a parser routes\nthe following text into a separate stream exposed through the Responses API.\nFor closed models, presumably a simple model redacts and summarizes it.\n\nHow much budget goes to reasoning? Earlier APIs exposed reasoning token budgets, making it seem like a property of the sampling process. In reality, reasoning effort is baked into the system prompt. GPT-OSS puts this into the system prompt:\n\n```\nReasoning: low\n```\n\nThat’s it. Training produces the resulting behavior, such as emitting the\ntoken sequence that switches to the `analysis`\n\nchannel. This also explains why\nchanging the effort invalidates the KV cache. I think closed GPT models call\nreasoning effort “juice,” since you can ask most models how much juice they\nhave.\n\nIn [DwarfStar](https://github.com/antirez/ds4) for DeepSeek with max reasoning\nthis is added to the system prompt:\n\n```\nReasoning Effort: Absolute maximum with no shortcuts permitted.\nYou MUST be very thorough in your thinking and comprehensively decompose the\nproblem to resolve the root cause, rigorously stress-testing your logic against\nall potential paths, edge cases, and adversarial scenarios.\n```\n\nThe destination of reasoning tokens is therefore a learned convention: the\nmodel is trained to keep scratch work out of the `final`\n\nchannel. Trick it into\nthinking it is in that channel and it may leak tokens. We have even seen older\nmodels, when thinking is disabled, reason into the bash tool and echo their\nthoughts to `/dev/null`\n\n.\n\nSo in some sense the only “special” behavior for some models is not to think.\nThat at times is done by “mechanically” removing the model’s usual ways to think.\nIn [DwarfStar](https://github.com/antirez/ds4), disabled thinking uses the\nprefill `</think>`\n\n, while enabled thinking uses `<think>`\n\n, which are the tokens\nthat close and start thinking. GPT-OSS doesn’t prefill but lets the model\ndecide either way on its own.\n\nBut presumably, some inference APIs prefill the opening token when reasoning is\nenabled, so the model never samples it itself and might prevent the sampling of\nthe reasoning token when disabled since it can be trivially detected. This may\nexplain why a [custom think\ntool](https://gist.github.com/mitsuhiko/0904a3d89741e8e3bcca1ca93ea076de) can\ntrick models into putting some reasoning where it should not go — but only when\nnative reasoning is disabled.\n\nHilariously enough I was unable to use GPT 5.6 terra for spell and grammar checking on this blog post because of safety filters. Had to switch to Kimi.", "url": "https://wpnews.pro/news/what-is-reasoning", "canonical_source": "https://lucumr.pocoo.org/2026/8/19/what-is-reasoning/", "published_at": "2026-08-19 00:00:00+00:00", "updated_at": "2026-08-19 17:57:40.432148+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-research", "ai-tools"], "entities": ["GPT-OSS", "Harmony", "DwarfStar", "DeepSeek", "GPT 5.6 terra", "Kimi", "Responses API"], "alternates": {"html": "https://wpnews.pro/news/what-is-reasoning", "markdown": "https://wpnews.pro/news/what-is-reasoning.md", "text": "https://wpnews.pro/news/what-is-reasoning.txt", "jsonld": "https://wpnews.pro/news/what-is-reasoning.jsonld"}}