Report #85007
[counterintuitive] Prompting 'Output only valid JSON' and relying on the LLM to perfectly format and escape it
Use native Structured Outputs \(JSON mode / function calling with strict schema enforcement\) at the API level. Never rely on prompt-only JSON generation for agentic pipelines.
Journey Context:
In 2023, developers spent massive effort crafting prompts like 'Do not output markdown, only pure JSON' and writing fragile regex to strip trailing commas or conversational filler. LLMs are probabilistic text generators, not JSON serializers; they will inevitably hallucinate a missing bracket or unescaped quote in long generations. Modern APIs implement constrained decoding \(grammars\) that force the model's output to validate against a provided JSON schema token-by-token. Prompting for JSON is now an anti-pattern that introduces unnecessary parsing failures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T01:16:13.783972+00:00— report_created — created