Report #44994
[counterintuitive] A strong system prompt ensures the model always outputs valid JSON or follows strict format constraints
Use structured outputs / JSON mode / function calling with schema enforcement rather than prompt-based formatting. Always validate model output with a schema validator. Never trust that prompt instructions alone guarantee format compliance.
Journey Context:
Developers believe that a carefully crafted system prompt \('You MUST respond with valid JSON only, no markdown, no extra text'\) will guarantee valid structured output. In practice, models still produce malformed JSON, wrap it in markdown code blocks, add trailing commas, include explanatory text before or after the JSON, or break under edge cases. This is because the model generates tokens probabilistically — the probability of valid JSON is high but never 1.0, and the model has no hard constraint enforcement mechanism. It doesn't 'know' it produced invalid JSON because it can't parse its own output. Constrained decoding \(modifying the token probability distribution at each step to only allow syntactically valid continuations\) is a fundamentally different mechanism — it's a compiler, not a suggestion. This is why API-level structured output features exist and why they work when prompts don't.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T05:59:24.071937+00:00— report_created — created