Even with schema-constrained generation, always validate output on your server.
Recommended loop
- Request schema-constrained output.
- Parse JSON.
- Validate against your server schema.
- Retry once with a corrective prompt if invalid.
- Fallback to safe failure if still invalid.
Validation example (TypeScript)
import { z } from "zod";
const Summary = z.object({
order_id: z.string(),
total_usd: z.number(),
status: z.enum(["pending", "paid", "failed"]),
});
function parseStructuredContent(content: string) {
const data = JSON.parse(content);
return Summary.parse(data);
}
Corrective retry prompt
When validation fails, send a short corrective instruction:
Your previous output did not match schema. Return valid JSON only, with required fields and no extra keys.
Production guidance
- Keep one schema per use case and version it.
- Track validation failure rates by model id.
- Alert on sudden schema failure spikes after model changes.
Last modified on February 18, 2026