A replay set is a small, versioned file: real questions, and for each one the facts that must appear in any correct answer. It is not a benchmark and it is not a quality score. It is a regression test written in the language of your users.
The reason to build one is that memory work fails quietly. An agent without persistent memory restarts from zero on every session, which is why users re-explain the same preferences and context over and over as Mem0 describes. Adding memory fixes that, but every change to how memory is folded, summarized or retrieved can drop a fact you needed. The answer still reads well. It is just wrong on the one detail that mattered.
The content of the expected facts should follow the taxonomy your memory system already uses. The CoALA framework splits long-term memory into semantic (durable facts), episodic (past events tied to a time and user), and procedural (rules and how-to knowledge) alongside in-context working memory as summarized by Atlan. Working memory is the context window itself, fast and volatile, and it disappears when the session ends per this IBM Technology overview. A good replay set has at least a few questions whose required facts are semantic ("the user's deploy target is Fly.io"), a few episodic ("last March the user ruled out Postgres for this project"), and a few procedural ("the review checklist requires a rollback plan").
That mix matters because the three degrade differently. A summarizer that compresses everything at the same rate will keep a chatty episode and lose a rule, because both look like text.



