Give the Model Room to Think
Why asking for the working before the answer makes models better at multi-step problems, how to separate the working from the answer, and when to skip it.
On this page
Someone asks you what 17 × 24 is and wants the answer in one second. You blurt out something close, maybe 398. Give yourself a pencil and ten seconds and you write 17 × 20 = 340, 17 × 4 = 68, 340 + 68 = 408. Same brain. The difference is that the paper held the in-between steps.
A language model has a similar limit, and the same fix. The only paper it has is the text it writes.
The text is the model's scratch paper
A model produces its reply one token at a time. To choose each token, it runs the same fixed stack of calculations over everything before it: your prompt plus whatever it has already written. That is a limited amount of work per token. Unless a tool gives it a hidden scratch area (more on that below), it has no notebook where it can work things out first and then reply.
That has a direct consequence. If the first words of the reply must be the answer, the answer is produced with no working on the page. If the reply starts with the working, each step becomes text, and every later token, including the final answer, can build on it.
Watch it happen
Here is a small shopping problem: pens cost $9 for a pack of 12, or $1 each. What is the cheapest way to buy exactly 30 pens? Work it out yourself first. The tracer shows two illustrative replies, one asked for the price only and one asked to work it out first.
repeat: look at the prompt and everything written so far write the next piece- reply A, written so far
(empty) - steps on the page
- 0
1Prompt A says "Reply with the price only." The model must start with the answer, and nothing is on the page yet except the problem.
- reply A, written so far
$22.50 - steps on the page
- 0
2It writes a quick, plausible number: $9 ÷ 12 is $0.75 a pen, and 30 × 0.75 = 22.50. That ignores that you cannot buy half a pack.
- reply A, written so far
$22.50 Each pen costs $0.75 in packs, and 30 × $0.75 = $22.50. - steps on the page
- 0
3Ask it to explain, and it explains $22.50. The explanation is consistent with the answer because it was written to fit it. Working that comes after the answer cannot change it.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 - steps on the page
- 1
4Prompt B says "Work it out step by step, then give the price on the last line." The first piece is a step, not an answer: list the options. Three packs is 36 pens, so more than 3 is never needed.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 3 packs = $27 (6 spare) - steps on the page
- 2
5With that line on the page, the next one prices the first option: 3 packs is $27, with 6 pens spare.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 3 packs = $27 (6 spare) 2 packs + 6 singles = $18 + $6 = $24 - steps on the page
- 3
62 packs is 24 pens, 6 short. Add 6 singles at $1: $18 + $6 = $24.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 3 packs = $27 (6 spare) 2 packs + 6 singles = $18 + $6 = $24 1 pack + 18 singles = $9 + $18 = $27 - steps on the page
- 4
71 pack is 12 pens, 18 short: $9 + $18 = $27. Fewer packs means more pens at the full $1.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 3 packs = $27 (6 spare) 2 packs + 6 singles = $18 + $6 = $24 1 pack + 18 singles = $9 + $18 = $27 0 packs: 30 singles = $30 - steps on the page
- 5
8No packs at all: 30 singles is $30. Every option now sits in the text the model is reading.
- reply B, written so far
Options: 0, 1, 2 or 3 packs of 12 3 packs = $27 (6 spare) 2 packs + 6 singles = $18 + $6 = $24 1 pack + 18 singles = $9 + $18 = $27 0 packs: 30 singles = $30 Answer: $24 - steps on the page
- 5
9The last line only has to pick the smallest of four numbers already written: $24. Five lines of working came before the answer, against none for reply A.
Reply A was not careless. It was asked to commit first, so it committed to the most obvious-looking number. Reply B was allowed to lay the options out, which turned a tricky question into an easy one: pick the smallest.
This does not make the model always right. Steps can still be wrong. But a wrong step written on the page is something you can see and check, which a wrong one-word answer is not.
Separate the working from the answer
Working makes replies longer. If a person or a program only needs the result, ask for the two parts in clearly marked sections.
Wednesday fails: Ben is out. Checking each person against each slot is several small steps, and the prompt left no room for them.
The honest answer was "none", which the one-word prompt made very unlikely, because it implied one slot must work. The second prompt allowed for that case explicitly, a habit from Be Clear and Specific.
With the answer in tags, a program can ignore the working and pull out the result:
function extractAnswer(reply) {
const match = reply.match(/<answer>([\s\S]*?)<\/answer>/);
return match ? match[1].trim() : null; // null: the tag was missing
}
const reply = "<thinking>Mon 10:00 ... Out.</thinking>\n<answer>none</answer>";
console.log(extractAnswer(reply)); // "none"import re
def extract_answer(reply):
match = re.search(r"<answer>(.*?)</answer>", reply, re.DOTALL)
return match.group(1).strip() if match else None # None: the tag was missing
reply = "<thinking>Mon 10:00 ... Out.</thinking>\n<answer>none</answer>"
print(extract_answer(reply)) # noneAlways handle the missing-tag case. A model usually follows the format, not always, and your code should notice instead of crashing.
When to skip it
Room to think helps when there are steps: arithmetic, comparing options, checking rules, debugging, planning. It adds little to a lookup ("What is the capital of Peru?") or a short creative task, and it costs time and tokens on every request. For very large tasks, a different form of room helps more: split the job into several prompts, each doing one stage, and feed each result into the next.
Try it yourself
This prompt gets a one-word pick that often ignores the commute. Rewrite it so the model compares the offers on what matters before choosing, and so the choice is easy to find in the reply.
Show a sample answer
Why it works: the model now writes the numbers it needs before deciding (A is about 11.7 hours of commuting a week, C about 2.7, B none). Stating your priorities gives it a rule for weighing them. The answer tag keeps the choice easy to find, and the one-sentence reason lets you check it against the working.
Common mistakes
Check yourself
Why does writing the working first help a model on multi-step problems?
A prompt says "Give your answer, then explain your reasoning." What is the problem?
For which request is asking for step-by-step working least useful?
What to practise next
The tags in this lesson were a first step toward replies a program can read. Structured Output takes that all the way to JSON you can parse and check.