Report #68260
[frontier] Agent drifts away from output format and structural constraints in extended sessions
Define output schemas \(JSON schemas, tool input schemas\) that structurally encode your constraints. A schema requiring a 'language' field with enum \['typescript'\] is more drift-resistant than an instruction saying 'always use TypeScript.' Deliberately over-specify schemas for constraints that must not drift — add fields and enums that you might otherwise put in the system prompt.
Journey Context:
Structured outputs are typically seen as a parsing convenience, but they have a powerful secondary effect: they act as continuous constraint reinforcers. Every time the model generates output through a schema, it must attend to the schema's constraints to produce valid output. Unlike free-text instructions that fade in influence over long contexts, schemas are re-presented to the model on every generation call — they are always 'recent' and always 'specific.' This makes them uniquely resistant to drift. The pattern emerging in 2025-2026 is to deliberately over-specify schemas: adding fields, enums, and descriptions that encode constraints you might otherwise put in the system prompt. For example, instead of just defining a 'code\_output' schema with a 'content' field, add 'language' \(enum of allowed languages\), 'style' \(enum of allowed styles\), 'includes\_tests' \(required boolean\), etc. The tradeoff: over-specified schemas reduce the agent's flexibility and increase token usage per call. But for constraints that must not drift — security boundaries, compliance requirements, output formats — schema anchoring is the most reliable technique available because it operates at the generation level, not the attention level.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:03:34.615489+00:00— report_created — created