11.05概念更新于 2026年9月17日

记忆的隐私与可控

用户可见、可编辑、可删除,以及多用户隔离。

11.05 · 课时讲解

记忆的隐私与可控

记忆的信任,来自用户手里的控制权。

1 / 14

一句话理解:记忆的信任来自控制权:用户能看见 Agent 记住了什么、能改、能删、能暂停,系统保证记忆不会串到别的用户、团队或项目,并且删除时说清楚到底删掉了哪些东西。

一个企业用户在使用内部 Agent 时顺口提到“下周三我要去医院复查,那天的会帮我往后挪”。两个月后,他的同事在共享项目里让 Agent 安排团队会议,Agent 回复:“建议避开周三,张经理那天通常要去医院。”

这里没有任何安全漏洞被利用,却是一次严重的隐私事故:一条个人信息被写进了记忆,又在错误的作用域被召回。记忆功能越智能,这类问题越隐蔽。用户一旦发现“它记住了我不想让它记的东西”,对整个产品的信任会迅速崩塌。

这一课讲记忆可控的五项能力、多用户与多租户的隔离,以及删除语义这个最容易出错的细节。

五项控制能力

能力 用户能做什么 设计要点
可见 查看 Agent 记住了关于我的哪些内容 用人能读懂的语言展示,而非向量或内部 ID
可编辑 修改不准确的记忆 修改后在下一次对话中生效
可删除 删除单条或全部记忆 说清删除范围,是否可恢复
可暂停 临时不使用、不产生记忆 区分“暂停使用”与“永久清除”
可追溯 知道某个回答用了哪条记忆 在回答旁标注引用的记忆或来源

把这些能力放到记忆的完整链路上,就能看出每个环节该设什么控制点:

记忆链路上的隐私控制点:会话入口、写入前、存储、召回、使用五个环节各自的控制能力 会话开始 控制点 会话入口 无痕模式 不读取也不写入 写入记忆 控制点 写入前 敏感信息检测 写入时轻提示 可一键撤销 记忆存储 控制点 存储 可见 · 可编辑 可删除 · 可导出 暂停与重置分开 召回 控制点 召回 作用域写进数据 查询时强制过滤 工具层校验路径 回答中使用 控制点 使用 标注引用的记忆 点击即可修改 控制要落在产品界面、数据与工具层,而不是只写在提示词或隐私政策里
图 1 · 记忆隐私控制点:每个环节都要有用户看得见、系统强制执行的控制

看看主流产品是怎么做的(依据各自官方帮助文档,产品功能可能随时调整):

Claude 应用:用户可以在设置的 Memory 页面查看 Claude 记住的内容(按主题列出),逐条编辑或删除;也可以在对话里直接说要记住、修改或忘记什么。每个项目有独立的记忆空间,互不混用。提供两种关闭方式:暂停(保留已有记忆,但不使用也不新增)和重置(永久删除全部记忆,包括项目记忆,且无法撤销)。无痕对话不会使用已有记忆,也不会被写入记忆。个人版默认开启记忆,团队版和企业版默认关闭,由组织管理员决定是否开启。

ChatGPT:记忆分为用户要求保存的记忆和从过往对话中获得的信息两种来源,用户可以在设置中分别关闭;临时对话不使用也不创建记忆;回答下方可以查看本次个性化用到了哪些来源。

Claude Code:自动记忆是本机上的纯 Markdown 文件,用户可以通过 /memory 命令浏览、打开和编辑,也可以在设置中或用环境变量关闭自动记忆。

这些设计有一个共同点:记忆对用户是透明的、可操作的,而不是藏在系统深处的黑箱。

删除语义:最容易让用户误解的地方

用户点击“删除这段对话”时,通常以为 Agent 从此不会再知道这段对话里的任何内容。事实往往并非如此。Claude 和 ChatGPT 的帮助文档都明确说明:删除对话不会自动删除从这段对话中产生的记忆,记忆需要单独删除。

一段对话可能派生出多种数据,删除时要逐一说清:

删除一段对话时,它派生出的会话记录、长期记忆、产物、审计日志和记忆历史版本各自的去向 一段对话 用户点击删除 会话记录 删除对话时一并删除 由此提炼的长期记忆 需单独删除,很多产品默认不联动 生成的产物(报告、文件) 通常独立保存 审计日志 / Trace 按合规要求保留,可能需脱敏 记忆的历史版本 可能在一段时间内仍保留
图 2 · 删除语义:一段对话会派生出五类数据,删除时要逐一说清

最后一行值得展开。以 Claude Managed Agents 的记忆存储为例(Beta):每次修改记忆都会生成一个不可变的版本,用于审计和回滚;删除记忆本身不会删除这些版本,版本通常保留 30 天。为了应对泄露的密钥、个人信息或用户删除请求,平台提供了“脱敏”操作,可以清除历史版本中的内容,同时保留“谁在什么时候做了什么”的审计记录。

产品设计建议:在删除确认弹窗中明确列出会删除和不会删除的内容;提供“删除对话并删除相关记忆”的联动选项;对合规要求保留的数据说明保留期限和用途。

隔离:记忆不能串门

多用户产品里,记忆隔离是底线。常见的隔离层级:

层级 隔离什么 典型错误
租户 不同企业客户之间 A 公司的业务约定出现在 B 公司的会话中
用户 同一企业的不同员工之间 个人偏好或私事被同事的会话召回
项目 / 空间 同一用户的不同工作之间 项目甲的口径影响项目乙的分析
会话类型 无痕会话与普通会话 无痕会话中的内容被写入记忆

以一个企业租户为例,隔离的层级与召回时的过滤条件如下:

记忆隔离的层级:租户之间、同一租户的员工之间、同一员工的项目之间相互隔离,召回时在查询条件中强制过滤 租户 A · 企业客户 员工 李 个人偏好 项目甲 记忆 员工 张 个人偏好 项目甲 记忆 项目乙 记忆 团队共享约定 · 单独授权,只读挂载 租户 B 看不到租户 A 的任何记忆 召回时的查询条件 tenant = A user = 张 project = 甲 非无痕会话
图 3 · 记忆隔离:作用域写进数据,召回时由查询条件强制过滤,而不是靠模型自觉

实现上的几个要点:

  1. 作用域写进数据,而不只是写进提示词:每条记忆存储时带上租户、用户、项目标识;召回时在查询条件里强制过滤,而不是让模型“注意不要用别人的记忆”。
  2. 工具层做路径与权限校验:Claude API 记忆工具是客户端工具,文档说明 /memories 只是一个路径前缀,由你的处理函数映射到真实存储(例如每个用户一个目录),因此认证与访问控制都要在处理函数里实现;同时必须防范路径穿越,例如 /memories/../../secrets.env 这样的路径,要把路径解析为规范形式后确认仍在记忆目录内。
  3. 共享记忆要显式设计:团队共享的约定(例如“周报模板”)与个人偏好分开存放、分开授权。Claude Managed Agents 允许一个会话挂载多个记忆存储,并分别设置只读或读写,适合把共享参考资料以只读方式挂载,个人记忆单独读写。
  4. 管理员与用户的权限分离:企业管理员能否查看员工的记忆?这是需要在产品和合规层面提前回答的问题,并告知用户。

敏感信息:不该记的别记

信息类型 建议策略
密码、API Key、访问令牌 禁止写入记忆。记忆会在之后的会话中被反复读取,写入一次就可能反复暴露。凭据应交给专门的凭据管理系统(例如 Claude Managed Agents 的凭据保管库 Vault)
健康、宗教、政治倾向等敏感个人信息 默认不写入;确需记住时明确征得同意
身份证号、银行卡号等 禁止写入;如业务确需,使用专门的加密存储而非记忆
第三方的个人信息(客户、同事) 谨慎写入,遵循最小必要原则

仅靠模型自觉并不可靠。Claude API 记忆工具的文档提到,模型通常会拒绝把敏感信息写入记忆,但如果需要更强的保证,应该在写入前由程序校验并剔除敏感数据。这与 程序校验优先 的原则一致:可以在写入记忆的工具或 Hook 中做模式匹配和分类检测。

用户可控的交互设计

把控制能力落到界面上,有几个值得借鉴的模式:

  • 写入可见:Agent 记住新内容时给出轻量提示(如“已记住:周报按大区汇总”),并提供撤销入口。
  • 使用可见:回答用到记忆时,标注来源,用户点击即可查看或修改那条记忆。
  • 设置集中:一个页面列出全部记忆,支持搜索、编辑、删除,以及暂停与重置。
  • 无痕模式:提供不读取也不写入记忆的会话模式,适合处理敏感事务。
  • 导出:允许用户导出自己的记忆,满足可携带性要求。

常见误区

  • “隐私政策里写清楚就够了。” 用户不会读隐私政策,控制能力必须在产品界面里触手可及。
  • “删除对话就等于删除了一切。” 记忆、产物、日志、历史版本可能都还在。说不清楚就是误导。
  • “在提示词里要求模型不要泄露别人的记忆。” 隔离必须在数据和工具层强制执行,模型不应该有机会读到不属于当前用户的记忆。

产品经理检查清单

  • 用户在哪里查看、编辑、删除记忆?操作几步能完成?
  • 暂停记忆与清除记忆是否区分?清除是否可撤销?是否有二次确认?
  • 删除对话时,关联记忆、产物、日志分别如何处理?界面上是否说明?
  • 记忆按租户、用户、项目隔离的标识存在哪里?召回时是否强制过滤?
  • 是否有无痕或临时会话模式?
  • 写入前是否有敏感信息检测?检测到时是拒绝写入、脱敏还是询问用户?
  • 企业管理员对员工记忆有哪些权限?员工是否知情?
  • 记忆及其历史版本保留多久?如何响应用户的删除请求?

练习

为「个人助理 Agent」的企业版设计“记忆设置页”与删除规则,用时约 45 分钟:

  1. 画出设置页的线框:记忆列表、编辑、删除、暂停、重置、导出入口。
  2. 写出“删除某个会话”确认弹窗的文案,明确列出会删除与不会删除的内容。
  3. 设计三层隔离(企业、员工、项目)的数据字段与召回过滤规则。
  4. 列出至少 5 类禁止写入记忆的信息,并说明由哪一层(提示词、工具校验、Hook、存储策略)来保证。

延伸阅读

下一步

Agent 现在能记住做到哪、知道用户是谁,也让用户掌握了控制权。下一个模块「执行环境」回答另一个问题:Agent 在哪里干活,从 三种执行方式 讲起。

试试:上下文、MCP、沙箱、Prompt 注入、外链