先这样答
机制层面确实是一回事:都是「把文本变成向量、按相似度取回 top-k、拼进上下文」。但把记忆系统做成 RAG 换个数据源,会在每个环节踩坑。四个差异点讲清楚。
数据源不同:RAG 检索的是外部文档,比如产品手册、制度文件,内容是别人写的、相对静态、有版本管理。记忆检索的是这个用户和这个 Agent 的历史交互,内容是系统自己生成的、碎、口语化、没有现成的版本管理。
条目形态不同:文档块通常几百 token、语义完整、自成一体;记忆条目往往一句话级别(「用户偏好简洁回复」),且大量条目互相依赖,「上次讨论的方案」脱离上下文毫无意义。所以记忆的写入环节要做抽取和归纳,把对话提炼成自包含的原子事实,这一步 RAG 没有。
更新方式不同:文档是版本化的,新版本替换旧版本,干净利落。记忆是活的:用户上个月说喜欢详细解释,这周嫌啰嗦。新记忆不是「追加」,是「推翻」。冲突检测、时间衰减、显式覆盖,这些机制是记忆系统的核心工作量,RAG 基本不涉及。
质量责任不同:RAG 的资料有作者和审校,错了能追责修正;记忆是系统自己写的笔记,可能一开始就记错(从对话里错误地归纳),还可能被注入(对话里故意喂假偏好)。所以记忆要有置信度标记,敏感决策不能只靠一条记忆。
可以打个比方:RAG 是查图书馆,记忆是翻自己的笔记本。笔记本会记错、会过时,还可能被别人写上假内容,所以要多一套管理机制。
面试官会怎么追问
- 两者能共用一套基础设施吗? 存储、索引、检索组件可以共用,但元数据模型、更新逻辑、评测口径要分开建;实践中常见错误是共用到逻辑层,导致记忆条目被当成文档块管理。
- 记忆检索怎么评测? 比 RAG 难在标准答案因人而异:常用做法是回放历史会话,检验「取回的记忆能否正确回答当时之后的问题」,加冲突场景单独评(旧新偏好并存时取哪个)。
- 记忆要遵守什么合规要求? 个人信息保护是硬要求:用户有权查看、导出、删除关于自己的记忆,删除要真正从索引里清除,不是打标记。
回答的坑
- 答「就是一回事」。抓住条目形态、更新冲突、质量责任三点的差异展开,答「不是一回事」才有内容。
- 不提记忆被污染的风险。对话注入假记忆是真实攻击面,提出来很加分。
—— 本题完 ——