AI 记忆模块调研方法论
调研一个 Agent / 开源项目的记忆模块,本质是回答三个问题:它管什么记忆(架构)→ 工程上怎么用(成本/可观测)→ 到底比"全塞进上下文"强多少(评估)。 下面 8 个维度按「先架构、后工程、再评估」排列,每个维度给出"看什么 / 怎么量"。文末是可直接套用的打分表。
相关:从 RAG 到 Agent Memory、mem0:记忆是什么·为什么·怎么做、记忆动手 Demo(code/memory/)。
1. 记忆类型与边界(它"管什么")
- 短期 vs 长期:是否区分会话内缓冲(short-term / working memory)和跨会话持久记忆(long-term)。很多项目只有其一。
- 记忆粒度:存原始对话轮,还是抽取后的"事实 / 偏好 / 实体"(fact extraction)。原始堆叠 vs 结构化抽取是分水岭。
- 记忆分类:是否区分 episodic(事件)/ semantic(语义事实)/ procedural(技能流程)。
指标:记忆类型覆盖数、单条记忆平均 token、抽取压缩比(原文 token ÷ 存储 token)。
2. 写入路径(记忆怎么进来)
- 触发方式:每轮自动写,还是 LLM 判断"值得记"再写(write-gating)。
- 抽取 + 去冲突:新旧记忆冲突时覆盖 / 合并 / 追加(如 ADD / UPDATE / DELETE / NOOP 决策)。
- 写穿透编排:短期满了如何沉淀到长期(consolidation)。
指标:每轮写入额外 LLM 调用数、写入延迟、去重/冲突解决正确率。
3. 检索路径(记忆怎么被用上)— 最核心维度
- 召回方式:向量相似度 / 关键词 / 混合(hybrid + rerank)/ 图遍历。
- 检索时机:每轮都检索还是按需;注入到 prompt 的位置与预算。
- 过滤维度:是否支持按 user_id / session / 时间 / metadata 过滤(多租户必看)。
指标:recall@k、precision@k、MRR/nDCG、检索延迟 p50/p95、注入 token 占比。
4. 存储与后端
- 向量库选型(Chroma / Qdrant / Milvus / pgvector…)、是否同时有 KV / 图库 / 关系库。
- embedding 模型可换性、维度、索引类型(HNSW / IVF)。
指标:单 user 存储成本、写入/查询 QPS、规模上限(百万级向量是否退化)。
5. 遗忘 / 生命周期(最易被忽略)
- TTL / 衰减 / 重要性打分、容量上限后的淘汰策略(LRU、相关性)。
- 手动删除、用户级"被遗忘权"(GDPR)。
指标:记忆增长曲线、过期清理是否存在、陈旧记忆占比。
6. 工程化与可观测
- API 抽象是否干净(add / search / update / delete / get_all)、是否绑死某框架。
- 可观测:能否看到"这轮注入了哪些记忆、为什么命中"(可解释性)。
- 多租户隔离、并发/一致性、故障恢复。
指标:额外 LLM/embedding 调用次数(成本核心)、端到端延迟开销、依赖数量。
7. 评估能力(项目自身能否证明有用)
- 是否自带评测集 / benchmark(如 LOCOMO、长对话记忆基准)。
- 对比基线:full-context(全塞上下文)vs RAG vs 该记忆方案的 准确率 / token / 延迟 三角权衡。
指标:任务答对率提升、token 节省比例、延迟代价。
8. 生态与成熟度(开源项目专属)
- Star / 活跃度、release 节奏、issue 响应、文档质量、生产案例。
- License、是否绑定自家云服务(开源版 vs SaaS 功能差距)。
速查打分表(调研时直接填)
| 维度 | 关键问题 | 量化指标 | 评分(1-5) | 备注 |
|---|---|---|---|---|
| 1 类型边界 | 短/长期?抽取还是堆叠? | 压缩比、记忆类型数 | ||
| 2 写入 | 自动还是 gating?冲突如何解? | 写延迟、冲突正确率、额外 LLM 调用 | ||
| 3 检索 | 向量/混合/图?如何过滤? | recall@k、MRR、检索 p95 | ||
| 4 存储 | 后端?可换 embedding? | QPS、规模上限、单 user 成本 | ||
| 5 遗忘 | 有无 TTL/淘汰? | 增长曲线、陈旧占比 | ||
| 6 工程 | 框架耦合?可观测? | 总调用成本、延迟开销 | ||
| 7 评估 | 自带 benchmark? | 准确率↑、token↓、延迟代价 | ||
| 8 生态 | 活跃度/license? | star、release 频率 |
最该盯的三个指标:
- 检索 recall@k(有没有用)
- 每轮额外 LLM 调用与 token(成本)
- 答对率 vs full-context 基线的提升(到底比"全塞进去"强多少)
这三个决定一个记忆模块是否真的值得用。