# Reasoning (/academy/reasoning)



Some questions have one obvious next file. Some questions have a trap.

A normal model commits on the first pass: next [token](/academy/token), then the next, until it has a paragraph. That is fine for "rename the button" and rough for "why does Better Auth work locally and fail on the preview [deploy](/academy/deploy)?" The first path looks fluent. The first path is often the wrong fork.

**Reasoning** is paying for a private (or visible) work-up before the line you asked for. The model spends extra [inference](/academy/inference) arguing with itself — plan, check, discard a bad branch — then it answers. You may only see a "thinking" pause. You are still buying those tokens.

This is a product setting, not a personality upgrade. Hosts expose "effort" or a separate reasoning model. High effort on a one-line change is a slower, pricier intern. Low effort on a multi-step outage is a confident shrug.

Use it when the obvious first answer is the dangerous one:

* Multi-hop bugs, race conditions, "it only fails on Friday"
* Math, constraints, anything with a silent off-by-one
* An [agent](/academy/agent) that must pick a legal [stack](/academy/stack) combo instead of inventing a flag

Skip it when you already know the file.

One honest limit: a beautiful chain can still be a [hallucination](/academy/hallucination). The steps look like proof. They are still generated text. [Evals](/academy/eval) tell you whether the extra spend bought fewer wrong finals, or just longer wrong finals.

**What this unlocks**

You stop using one model setting for every ticket. Fast path for the rename. Paid extra pass for the mystery. That is how you keep a hackathon agent cheap on the easy turns and sharp on the one that would have wrecked the demo.
