Two budgets, two failure modes
Reasoning models bill thinking tokens separately from output tokens. The thinking budget is invisible to the user but very visible on the bill. Conversely, if your output max_tokens is too small, the model truncates the answer mid-sentence. The two budgets need to be set deliberately.
Setting the thinking budget
- Trivial classification — off or 'low.' A few hundred tokens at most.
- Multi-step planning — 4k–10k tokens. Gives room for branches.
- Hard math, deep code analysis — 20k+ tokens. Test that more budget actually helps; diminishing returns set in.
Setting the output budget
Match max_tokens to the expected output shape with margin. JSON object with five fields → 512 max_tokens is plenty. Long-form essay → 2k–4k. Truncated outputs are a recurring incident pattern; make max_tokens explicit and add an alert when responses hit the cap.