跨会话记忆怎么做?记忆检索和 RAG 是一回事吗?

Q3-14记忆系统常见跨会话记忆RAG 对比在线增量写入被遗忘权记忆评测记忆使用得体性

谁在问:二面;做过助手类产品的面试官用它验证你有没有把记忆当成「再建一个 RAG」

口语化问法

  • 跨会话的记忆你们怎么实现的?走一遍流程。
  • 记忆不就是把用户历史存进向量库再检索出来吗?跟 RAG 有什么区别?
  • 用户说『把我说过的关于某件事的记录全删掉』,你的系统做得到吗?

考察意图

这题的陷阱在第二个问法上——技术栈确实高度相似,所以答"差不多"能得 40 分,答"完全不同"又太绝对。面试官想听的是:相同的是检索这一段,根本不同的是写入、更新、删除、隔离和评测这五段。

再往下,他会用第三个问法探你有没有做过真产品:删除权这件事,很多方案压根做不到——因为记忆一旦被摘要过,就无法定位到具体条目了。

参考答案

图 2 · 60 分与 90 分差在哪:代价、演进、怎么验证

60

60 分答案(及格线)

跨会话记忆的完整链路:会话(或回合)结束 → 提取器从对话里抽出结构化条目 → 去重、与已有记忆做冲突消解 → 写入(高价值键值进结构化档案,长尾条目进向量库)→ 新会话开始或命中个性化意图时检索 → 带预算注入上下文 → 用户可查看和修改。

和 RAG 的关系:检索这一段技术栈几乎一样(向量库、召回、重排、注入预算),但语义完全不同:

  • RAG 检索的是组织的共享知识;记忆检索的是属于某个人的历史
  • RAG 是离线批量入库、内容基本不变;记忆是在线增量写入,而且必须支持更新和删除。
  • RAG 召回不准,后果是答错;记忆召回不准,后果是答错 + 隐私事故

所以把记忆当成"再建一个 RAG"的团队,通常都会在更新、冲突和权限隔离上翻车。

90

90 分答案(有生产经验的回答)

补三层。

1. 五条结构性差异,逐条给出工程含义。

维度 RAG 跨会话记忆 工程含义
数据归属 组织共享 属于个人 隔离必须在存储层强制(分 namespace),不能靠查询时记得加过滤
写入路径 离线批量,更新靠重建索引 在线增量,随时写 需要冲突消解、幂等、并发控制
时效语义 文档一般无"过期"概念 强时效,新值覆盖旧值 每条带时间戳,检索要做新鲜度加权
检索触发 有明确 query(用户问题) 常常没有 query(新会话刚开始) 靠 user_id + 意图/场景触发 + 结构化过滤,纯相似度不好使
删除 很少需要精确删除 用户随时可能要求删除 必须可定位、可级联删除、可验证

第四条最容易被忽略:新会话开场时用户还没说话,你拿什么去做语义检索?答案是根本不该走语义检索——这时应该直接注入结构化档案里的高价值键值(称呼、偏好、时区、当前项目),语义检索只用于"用户提到了某个话题、需要翻旧账"的场景。

2. 三段式看跨会话记忆。

  • 解决什么:连续性(不用每次重新自我介绍)、个性化、减少重复询问。
  • 代价是什么:写入噪声会让检索静默退化;陈旧记忆污染当前判断;个人信息带来的合规负担;还有一条隐蔽的——记忆让行为不可复现,同样的输入对不同用户结果不同,评测和排障都更难。
  • 什么时候不该用:一次性任务;匿名或强合规场景;以及"用一份用户可编辑的结构化档案就够了"的场景——这种情况上向量记忆是纯增加复杂度。

3. 2026 的产品趋势要提一句(截至 2026-08):记忆正在从黑盒转向可见可编辑。 原因不是技术,是信任——不可见的记忆一旦记错,用户没有任何纠正手段,只能感受到"这个助手怎么老是搞错我"。所以主流做法是给用户一个记忆面板,能看、能改、能删。这个设计决定反过来约束了技术选型:记忆必须是结构化、可定位、可溯源的,纯自由文本摘要满足不了。

追问链

图 1 · 五层追问树:面试官会往哪儿挖
相同的只有检索那一段,追问全落在写入、删除、得体性上

  1. 记忆检索的 query 是什么?就是用户当前这句话吗?

    期望常常不是,压根没有 query。分场景:新会话开场不检索,直接注入结构化档案;用户提到具体话题就定向检索;执行个性化动作前按动作类型取(生成周报就取「周报格式偏好」)。拿最后一句做相似度检索召回很差——记忆条目是零散原子事实,跟自然提问对不上,更依赖结构化过滤 + 类型定向
    信号指出「开场没有 query」这个具体场景并给出分场景策略 → 做过;答「就用用户输入去检索」→ 没跑过真实会话
  2. 能不能直接复用 RAG 那套 pipeline 做记忆?会踩什么坑?

    期望检索段能复用,四个坑:① 更新删除——RAG 重建索引,记忆不能为一条偏好重建全库,只能按条目定位;② 隔离必须按用户分区、存储层强制;③ 条目本就是原子事实,切块破坏语义;④ 召回率、faithfulness 评不了「该不该记」。投入重心相反:RAG 在检索侧,记忆在写入侧
    信号能指出「投入重心相反」(RAG 在检索、记忆在写入)→ 想清楚了;答「一套 pipeline 通用」→ 会在删除和隔离上出事
  3. 记忆系统怎么评测?

    期望四类,前两类 RAG 没有:① 写入质量——该记的记了没(召回)、不该记的没记(精度),后者更重要,噪声静默毁系统;② 使用准确率——有没有拿陈旧记忆做判断;③ 安全——串号率、敏感信息入库率,零容忍;④ 业务——重复提问率下降。方法要构造多会话仿真集,单会话根本测不出
    信号提出写入精度和多会话仿真集 → 设计过评测;只答「看用户满意度」→ 没有可操作指标
  4. 用户说「把我提过的关于某件事的记录全删掉」,做得到吗?

    期望前提是条目可定位可溯源:① 每条结构化存储并留来源(哪次会话、哪句话产生的);② 级联删除——向量库、档案、缓存都要清,还要查会话摘要含不含它(摘要有损改不了,只能标失效重建或一并删);③ 删完用同一检索路径验证取不到。全做成自由文本大摘要就根本做不到——删除权倒逼结构化
    信号想到「摘要里也可能含这条」和「删除后要验证」→ 做过合规;答「把向量删掉就行」→ 漏了缓存和摘要两条路径
  5. Agent 主动提起用户三个月前提过的一件私事,用户觉得被冒犯并投诉,怎么处理?

    期望先定性:不是准确率问题——记对了,错在使用得体性,本能去查检索准不准就跑偏了 → 止血:使用分两级降级,隐式(用偏好调语气、格式、排序)保留,显式引用(主动提「你上次说过」)先关掉 → 根治:① 敏感类别(健康、家庭、财务、情绪)默认不主动引用,用户先提才用;② 写入时就打可引用性标记,不临时判断;③ 面板可见可删;④ 评测加人工抽样的「记忆使用得体性」
    信号把问题从「检索准不准」重定向到「使用得体性」并给出隐式/显式两级降级 → 做过 C 端记忆产品;只答「优化检索相关性」→ 没抓住核心
前四层比的是 RAG 和记忆在写入、评测、删除上的差异,第 5 层直接换赛道:记忆的产品风险不在记错,在记对了却说得不是时候

评分要点

  1. 说得出跨会话记忆的完整链路(提取 → 消解 → 写入 → 触发检索 → 注入 → 用户可控)
  2. 承认检索段与 RAG 相似,但能列出结构性差异(归属、写入、时效、触发、删除)
  3. 明确记忆的隔离必须在存储层强制
  4. 知道记忆检索常常没有 query,靠结构化过滤与类型定向
  5. 知道记忆的投入重心在写入侧,RAG 在检索侧
  6. 能说出评测的四类指标,尤其写入精度与串号率
  7. 加分:删除权倒逼结构化与可溯源设计,且删除要级联 + 验证
  8. 加分:区分记忆的隐式使用与显式引用,并知道后者风险更高
  9. 加分:知道 2026 记忆产品向可见可编辑演进的原因是信任而非技术

常见错误

「记忆就是把对话存进向量库再检索」——本题最典型的失分答案。
认为可以直接复用 RAG pipeline,说不出更新、删除、隔离上的差异。
用用户最后一句话做记忆检索,没想过新会话开场根本没有 query。
记忆只增不删,被问到删除权时才发现摘要里的信息定位不了。
只做了向量删除,忘了缓存和已生成摘要这两条泄漏路径。
评测只有"检索准不准",没有写入精度和串号率。
把记忆冒犯问题当成检索相关性问题来修。
认为记忆越多越好,不知道噪声会让整个系统静默退化。

关联学习