Set-and-Forget System Prompt
Anti-pattern: state the agent's role and policy once in the turn-zero system prompt and assume it keeps binding, when attention to that block decays over turns while its text sits unchanged in context.
Problem
Presence is not the same as force. Attention to a fixed opening block thins as the history in front of it grows, so the instruction stops steering the model long before it stops being readable. A quantitative benchmark of multi-turn dialogs reports significant instruction drift within eight rounds for LLaMA2-chat-70B and GPT-3.5, attributed to attention decay over dialogue length. The same non-bindingness is measured for passive instruction files: on SWE-bench Lite a documented constraint is honoured 67.0% of the time, and asking the model to reflect over that same text is worse at 50.3%, while compiling the constraint into an executable check reaches 88.3%. That reflection scores below the plain baseline is the clearest sign the failure is architectural rather than a wording problem. The taxonomy of multi-agent failures puts the two resulting modes at the very top of its list: disobeying the task specification and disobeying the role specification.
Solution
The corrective splits into two families, and serious deployments use both. The first is re-assertion: the prompt-assembly step recomputes and re-injects the role and policy block verbatim on every turn, placed late in the prompt rather than at position zero, so its weight does not depend on how far the conversation has run; attention-level remedies such as split-softmax do the same job inside the model. The second is externalisation: the constraint is compiled into something that executes — a static check, a runtime shim, or a validator that intercepts an action before it lands — so a violation is caught by a mechanism that has no attention budget to lose. Whichever family is chosen, compliance is measured as a function of turn index and run length rather than at the opening turn, because a configuration that binds at turn one and not at turn twenty passes every short evaluation.
When to use
- Watch for this in any agent whose role, constraints or policy are stated once in a system prompt and never restated.
- Suspect it when behaviour is correct early in a session and reverts to generic later, with the prompt text unchanged.
- Audit for it when standing conventions live in an instruction file that a long autonomous run is trusted to honour without any check.
- Cite this entry when a fix attempt consists of rewording the opening block and the drift returns at the same turn depth.
Open the full interactive page →
Diagram, neighbourhood map, code examples, related patterns and full provenance.