Report #75166
[frontier] Summarizing conversation history for context management causes constraint loss and identity drift
Maintain a separate constraint ledger — a verbatim, never-summarized block of all NEVER/ALWAYS rules — that is prepended to every condensed state summary. The task state can be summarized; the constraint ledger must be copied word-for-word.
Journey Context:
Summarization is the standard approach to managing context length, but it is systematically biased against constraints. Constraints are often expressed as negations \('never use console.log'\), which LLM summarizers tend to drop because negations contribute less to semantic similarity scores used in compression. Capabilities and decisions \('we chose React'\) are preserved; prohibitions \('never use var'\) are lost. This creates a one-way ratchet where constraints can only be lost, never gained, through summarization cycles. The constraint ledger pattern separates the conversation into two streams: the task narrative \(condensable\) and the rule set \(non-condensable\). This adds a small constant token cost but prevents the systematic constraint erosion that makes long-session agents unreliable. Production teams report this as the single most impactful pattern for maintaining agent fidelity across session segments.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T08:45:38.649532+00:00— report_created — created