Report #96915
[frontier] Conversation memory summarization drops system-level constraints, causing identity drift in long-running agents
Maintain two separate context streams: \(1\) a mutable conversation history that can be summarized or compressed, and \(2\) an immutable constraint block that is never summarized and always prepended to the active context window. When summarizing, add an explicit fidelity instruction: 'Summarize the conversation history. Do NOT summarize or omit the constraint block — it must be preserved verbatim.'
Journey Context:
LangChain and similar frameworks implement conversation memory via summarization of older turns. The summarizer naturally preserves conversational content \(what was discussed, decisions made\) but drops meta-instructions \(how to behave, what not to do\) because constraints are not reflected in the conversation text itself. This is a category error: constraints are not conversation content, and treating them as such guarantees they will be lost during compression. The two-stream pattern separates identity from history. Production teams in 2025 are finding that this separation is the single most impactful architectural decision for long-running agents. The immutable block must be truly immutable — even well-intentioned summarization of constraints introduces drift.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T21:15:21.372246+00:00— report_created — created