Memory architecture
Technical Note on Zenodo ↗
Anchoring on GitHub ↗
A hierarchical memory architecture that keeps one conversation continuous over long periods without making session-bound retrieval the primary memory mechanism.
Persistent history, not reconstructed sessions
The system starts from a persistent conversation history rather than a sequence of disconnected sessions. Long-term memory is formed by continuously reorganizing accumulated history, not by treating retrieved fragments as the primary representation of the past.
Hierarchical narrative memory
Each stage represents a different temporal resolution. Recent raw conversation remains detailed, while older experience is progressively compressed from turn-level recollection into short events, mid-term context, long-term patterns, and life-scale narrative. This keeps older history present without requiring the active context to grow linearly with the full transcript.
Exact records remain separate
Narrative compression is not used for every kind of information. Facts, schedules, tasks, and other details that require exact retention can be preserved through memo and reminder channels, while raw conversation and journal records remain available as detailed reference points.
Prompt projection
Memory is projected into the active context at different resolutions: stable persona and long-range memory near the front, intermediate temporal context after it, and recent raw conversation at the highest resolution. Stable leading regions can also align with provider prompt-cache boundaries.
Raw history and recoverability
Compressed memory never replaces the source conversation. Raw session history is preserved separately, and memory generations are published without destroying the previous stable state, providing a basis for recovery, review, and later reprocessing.