Report #59725
[synthesis] Structured output control inconsistent — prompt-based JSON instructions fail across models
Use each provider's native structured output mechanism: Claude uses assistant-prefill \(start the assistant message with '\{' for JSON\), GPT-4o uses response\_format with json\_schema for strict schema enforcement, Gemini uses response\_mime\_type with JSON mode. Do not rely on prompt-only instructions like 'respond in JSON' for production systems.
Journey Context:
Prompting 'respond in JSON' works inconsistently and unreliably across models. Each provider has built a native mechanism that is far more reliable. Claude's assistant-prefill is uniquely powerful: by starting the assistant's response with '\{', you force the model to continue with valid JSON, though you must handle closing. GPT-4o's response\_format: json\_schema with Structured Outputs is the most rigorous — it guarantees schema compliance at the API level and rejects invalid outputs. Gemini's response\_mime\_type: 'application/json' is less strict than GPT-4o's but more reliable than prompting. The cross-model agent must branch on provider to use the native mechanism. Attempting a one-size-fits-all prompt approach leads to format violations that break downstream parsing in production.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:44:20.294304+00:00— report_created — created