The model gives you a numbered list. You asked for a bulleted list. You try again. Now it gives you paragraphs. You are not doing anything wrong — you are learning that models are not deterministic formatters by default.
This is fixable. Completely. But it requires being explicit in a way that feels over-specified until you see how much more reliable the output becomes.
Before: vague formatting instructions
“Summarise this document.”
The model summarises it in whatever format feels natural. Sometimes bullet points. Sometimes paragraphs. Sometimes headers. None of these are wrong — but none are predictable.
After: explicit formatting instructions
“Summarise this document in exactly three bullet points. Each bullet point should be one sentence. Do not use headers. Do not add an introduction or conclusion.”
The same model, the same document, produces consistent output. Every time.
When to use JSON mode
If your application parses model output — extracting data, feeding it to another system, storing it in a database — use JSON mode. Every major model provider supports it. When enabled, the model is constrained to produce valid JSON, which eliminates parsing errors entirely.
When not to use JSON mode
When a human reads the output directly. JSON for human-facing content is harder to read and rarely necessary. Natural language with explicit formatting instructions is usually sufficient and more readable.
The consistency principle
The more specific your format instructions, the more consistent the output. This feels counterintuitive — more constraints should produce worse results. In practice, constraints help the model understand exactly what you need, and that produces better results, not worse ones.
Start here: Take the last three outputs your application received from the model. Are they in the same format? If not, your formatting instructions are too vague. Add one sentence of explicit format instruction and run the same prompt again.