Compare All 30 Memory Techniques

May 5, 2026 ยท View on GitHub

Single-table comparison across families. Skim columns to filter by your constraint, then click into the technique. Cross-linked from the main README.

A single table. Skim the columns to filter by your constraint, then click into the technique.

#TechniqueFamilyPersistenceRetrievalToken Cost vs. HistoryBest For
01Conversation BufferShort-termNoneAppend-onlyLinear (grows forever)Prototypes; short chats
02Sliding WindowShort-termNoneLast k turnsConstant (fixed window)Bounded chat budgets
03SummaryShort-termNoneCompressed text blobSub-linear (summary cap)Long chats where gist is enough
04Summary BufferShort-termNoneSummary + recentSub-linearLong chats where recent detail matters
05Token BufferShort-termNoneToken-trimmed historyConstant (strict budget)Hard token caps
06Vector StoreLong-termDisk / DBSemantic similarity (Top-K)Constant per call (K items)Recall by meaning across many turns
07EntityLong-termDisk (JSON)Entity-name lookupTiny (per-entity record)Track facts about people, places, things
08Knowledge GraphLong-termGraph DBSubgraph (1-2 hop)Tiny (subgraph)Multi-hop relational questions
09EpisodicLong-termDisk / DBTime + semanticTiny (episode summary)"What happened last week?"
10SemanticLong-termDisk / DBSemantic similarity over factsTiny (top facts)Stable knowledge that survives sessions
11ProceduralLong-termDisk / DBTask-type matchingTiny (one procedure)Skip re-deriving plans
12Working MemoryCognitiveNoneSalience-ranked windowBounded (priority queue)Many simultaneous attention items
13Hierarchical LayersCognitiveMulti-tierCache fall-throughVariableTame unbounded memory size
14ConsolidationCognitiveDisk / DBOff-path background jobOne LLM job per cycleReduce store noise over time
15CompactionCognitiveMulti-levelLevel-selectedTiny if you pick L2/L3Most queries do not need full detail
16Self-ReflectionCognitiveDisk / DBTask-type retrievalTiny (1 reflection)Improve from past failures
17Memory RoutingCognitiveRoutes to othersClassifier-drivenDepends on target storeDecide which memory store to write/read
18TemporalCognitiveDisk / DBTime + semanticTinyWhen facts have a "valid from / valid to"
19Forgetting & DecayCognitiveDisk / DBStrength-weightedShrinks over timeBound long-running stores
20Retrieval PatternsRetrievalDisk / DBHybrid (BM25 + dense + rerank + MMR)ConfigurableQuality retrieval at scale
21Cross-SessionRetrievalDisk / DBPer-user isolatedConstant per userPersonal assistants
22Multi-Agent SharedRetrievalShared storePermissionedConstantSeveral agents collaborate
23Memory as ToolsRetrievalDisk / DBAgent invokes toolsTool call latencyAgent decides when to read/write
24GraphitiFrameworkNeo4jGraph + temporalTinyProduction temporal knowledge graphs
25Mem0FrameworkMem0 cloudManaged retrievalAPI-pricedDrop-in personalization
26Letta / MemGPTFrameworkLetta serverThree-tier (core/recall/archival)BoundedLong-running self-editing agents
27ZepFrameworkZep cloud / OSSTemporal KGAPI-pricedConversational memory at scale
28EvaluationProductionNoneMethodologyNoneMeasure quality before shipping
29LoCoMo BenchmarksProductionBenchmark fixturesBenchmark scoringNoneCompare techniques on standard data
30Production PatternsProductionTiered hot/warm/coldTier-routedCost-boundedShip to many users reliably

How to read the table. "Token Cost vs. History" describes how cost scales with the conversation length. "Tiny" means the cost is bounded by the number of items retrieved (K), not by total history. "None" means the row is methodology, not a runtime store.