Why summaries beat raw transcripts
A 50-turn conversation will not fit in any model's context. The naive fix — truncate to the last N turns — drops everything that happened earlier. Summary memory keeps a running, model-written digest of the conversation that grows much slower than the raw log.
The summary update loop
- After every N turns (or when the running context exceeds a token budget), call the LLM with the previous summary plus the new turns.
- Ask it to produce a new summary that preserves: who is speaking, key decisions, outstanding questions, unresolved disagreements.
- Replace the old summary; keep the most recent K turns verbatim for fluency.
Recover detail from the embedded transcript
Summaries lose detail by design. When the user asks 'what exactly did we say about RRF last Tuesday?' you need the raw turns. Embed every turn into an episodic store — when summary is too coarse, retrieve from the episodic log.