The model thinks; the consumer reads
Reasoning is for the model. The output is for the user (or the next stage of your pipeline). Conflating them produces verbose answers full of hedging and chain-of-thought leaking into JSON fields.
Three patterns
- Hidden thinking — Extended Thinking, o-series. Reasoning never reaches the consumer.
- Tagged thinking — <thinking> before <answer>. Operator can read, parser strips before user sees.
- External thinking — first call generates a plan, second call executes against it. Two prompts, two outputs, one for the audit log and one for the user.
The audit-log win
When something goes wrong in production, the reasoning trace is gold. Hidden thinking models often expose it to the developer even when the user doesn't see it. Log the trace; you'll thank yourself in the next incident.