A "reasoning" model doesn't have a second brain. It just writes a hidden scratchpad before its answer — bracketed by two special tokens — spending extra compute to think out loud where you can't see it. Under the hood it's the same next-token loop.
Reasoning is switched on by two ordinary tokens. <think> opens a scratchpad region; </think> closes it. Everything between them is the model's private working — generated first, then hidden from you.
<think> and </think> are special tokens — single entries in the vocabulary, each with its own id, exactly like a word-piece. They just delimit a region.</think>, then writes the reply the user actually reads.</think> and drops the rest — so the reasoning is there, but off-screen.Every token the model generates is one forward pass — one full sweep through the network. A blurted answer gets one sweep to decide. Letting it write a scratchpad first buys many more sweeps before it commits.
Illustrative: real accuracy rises with more thinking, then plateaus.
Nothing new happens mechanically. <think> is generated the same way as any word: predict the next token, append it, feed the whole context back in — the loop from the autoregressive lesson. The tags are just tokens the model learned to emit.
<think>, </think> and the end token <eos> are vocabulary entries with ids, sitting between ordinary tokens.<think> token because training taught it to; the only extra machinery is the parser that hides the region.The scratchpad lets a model think — but it still can't do anything outside its own text. Next, tool calling: how the same token stream can emit a structured request the runtime executes — a search, a calculation, an API call — and feed the result back into the loop.