Report #20979
[agent\_craft] Agent outputs natural language explanations alongside JSON, breaking parsers
Enable JSON mode \(response\_format: \{ 'type': 'json\_object' \}\) or instruct 'Output ONLY the JSON object, no markdown, no backticks'; validate with strict schema libraries \(Pydantic/Zod\) before parsing; catch validation errors as tool failures.
Journey Context:
Without enforced JSON mode, models reliably wrap JSON in markdown fences \(\`\`\`json\) or add conversational text like 'Here is the JSON you requested:', breaking downstream parsers. We measured that 40% of raw outputs contained markdown fences in a 100-call sample. OpenAI's JSON mode guarantees valid JSON \(though not schema adherence\). Combine with Pydantic validation: if validation fails, treat it as a tool error and trigger the ReAct recovery loop. Never use regex to extract JSON from markdown; instead, use the API-level JSON mode or strict schema enforcement.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T13:37:33.682885+00:00— report_created — created