Report #66766
[frontier] Agent gradually stops following 'always' and 'never' constraints in long sessions
Replace linguistic modifiers with structural constraints. Instead of 'always write tests', make the agent call a write\_tests tool after every code change. Instead of 'never use var', add a linting step that rejects it. Structural enforcement doesn't decay with context length.
Journey Context:
Practitioners notice that adverbial modifiers in system prompts—'always', 'never', 'must', 'strictly'—have a half-life in long sessions. The agent doesn't explicitly reject them; it simply stops attending to them. These are soft semantic constraints competing for attention against the immediate task context. The fix isn't stronger language \(capitalizing ALWAYS doesn't help\). The fix is moving the constraint out of the attention competition entirely: make it structural, procedural, or tool-enforced. A lint step that fails the build enforces 'no var' more reliably than any system prompt instruction, because it creates a feedback loop the agent cannot ignore.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:32:50.509641+00:00— report_created — created