跳到主要内容

智能体记忆是合规层面:你从未打算构建的记录管理系统

· 阅读需 13 分钟
Tian Pan
Software Engineer

针对你的智能体记忆层的第一次合规升级,几乎从不以监管机构信函的形式出现。它往往是以你企业级销售工程师发来的一张 Jira 工单的形式出现的,上面写着:“客户的隐私团队正在阻碍合同签署——他们想知道在你的系统中‘忘记我的用户’到底是什么意思,并且他们要求在周五前给出书面答复。”这张工单通常在记忆层发布 6 到 12 个月后送达,而构建该功能的工程团队在读完问题的那一刻就会发现,他们不小心构建了一个没有任何记录管理系统(records-management system)应有原语的记录管理系统。

这是智能体产品中长期记忆的结构性问题。构建它的团队通常会针对记忆功能的卖点进行优化——检索质量、延迟、存储成本,以及让助手感觉很懂用户的个性化体验。在设计评审中,没有人会去估算同时被构建出来的那个并行系统的代价:一个按用户、按租户、跨区域的数据存储,它带有保留义务、删除语义、审计导出要求,而且从第一个用户数据进入其中的那一刻起,监管机构的倒计时就开始了。记忆并不是一个功能。它是每个隐私制度、每份企业采购调查问卷以及每个被遗忘权(right-to-erasure)请求最终都会找上的运营界面(operational surface)。

没人设计过的并行系统

走进任何上线六个月后的智能体产品,你会发现记忆散布在至少四个存储层中——一个存储过去交互 embedding 的向量库,一个存储“用户告诉我的事实”的键值缓存,一个先前对话的摘要表,以及一个为了寻找优秀演示而悄悄挖掘生产流量的 few-shot 示例库。每一层都是在不同的 sprint 中为了解决不同的检索问题而添加的。它们之间没有共享的 schema。它们都不包含删除请求所需的元数据,无法找到单个用户数据的所有副本。

这是原始设计没有预料到的部分。用户在八个月前的对话中输入过一次旧职位,现在可能被引用在 14 个对话摘要中,嵌入在 3 个用户偏好向量中,固化在检索层用来对相似用户进行分组的语义簇中,并且每周作为 few-shot 示例被两次拉入系统提示词。当该用户提出删除请求时,团队必须回答一个架构设计之初并未考虑的问题:这个事实究竟存在于哪里?它传播到了哪些界面?

大多数生产系统给出的诚实回答是“我们不知道——我们会用 grep 找找”。这个回答无法通过监管审计,也越来越无法通过企业安全审查。欧洲数据保护委员会已将强制执行“被遗忘权”作为 2025 年的明确重点,而《欧盟人工智能法案》(EU AI Act)对高风险系统的义务将于 2026 年 8 月全面生效。这两个制度都将“我们构建了存储层,但删除 API 还在待办列表(backlog)里”视为违规,而不是路线图上的缺失。

每一项记忆都是一个保留决策

观察这一差距最直接的方法是比较现在记忆项的写入方式与为了系统可审计而必须采取的写入方式。今天,一个智能体存储一个事实,该事实会得到一行数据、一个 embedding,可能还有一个时间戳。仅此而已。元数据回答了“什么”和“何时”,但没有回答“来自谁、在什么授权下、保留多久、具有什么删除语义、复制到了哪些区域、出现在哪些下游产物中”。

一个必须在合规审查中自证清白的记忆层,其存储的每一项内容至少需要包含原始设计从未涉及的六个字段:

  • 溯源 (Provenance) —— 哪个用户、哪个会话、哪段对话、智能体的哪一步产生了该项
  • 许可类别 (Consent class) —— 数据的类别(运营数据、个人数据、敏感数据)以及用户对于跨会话存储给出的许可
  • 保留层级 (Retention tier) —— 短期草稿、中期工作记忆、长期持久记忆 —— 每种都有不同的默认有效期和不同的删除 SLA
  • 派生图谱 (Derivation graph) —— 该项已被用于产生哪些下游产物(哪些摘要、哪些 embedding、哪些 few-shot 示例、哪些微调批次)
  • 区域绑定 (Region binding) —— 该项被复制到哪个司法辖区,适用哪些驻留规则,有哪些跨境传输限制
  • 审计 ID (Audit ID) —— 一个稳定的标识符,以便在读取、修改或删除该项时供审计日志引用

将这六个字段追溯应用到已经上线六个月且积累了数百万项数据的记忆层中,是没有任何人预估过工作量的工程任务。在不破坏检索质量的情况下完成这项工作更是难上加难。而如果是因为第一个企业级客户的安全审查刚刚拒绝了 SOC 2 问卷而被迫在最后期限前完成,那将是同一个项目最糟糕的版本。

删除是一个分布式系统问题,而非 API 问题

认为“被遗忘权”只是一个 DELETE 端点的想法过于天真。实际情况更接近于一个没有中央索引的分布式系统中的垃圾回收。当删除请求到达时,内存层需要回答:

  • 该用户的原始文本是否已从向量数据库中清除,包括从中派生的每一个嵌入 (Embedding)?
  • 包含该用户事实的总结是否已重新生成或删除?
  • 挖掘该用户会话的少样本示例是否已从提示词库中移除?
  • 包含该用户数据的缓存检索是否已在所有地区失效?
  • 删除操作本身的审计日志条目是否已写入、保留并展示给用户确认?
  • 删除操作是否已传播到 Agent 集成的任何下游系统——CRM、支持工具、分析型数据仓库?

这些都是独立的工程问题,具有不同的失效模式。向量数据库通常支持按 ID 删除,但不会根据被删除项的语义内容建立索引,因此要找到源自特定事实的所有嵌入,需要一套没人构建过的派生图。总结通常是“一次写入”的,无法通过其源项目进行寻址——删除底层事实后,总结依然存在,且该事实依然清晰可读。少样本示例流水线通常将对话存储中的内容复制到另一个提示词工程界面,而隐私团队对此往往一无所知。

能够提供清晰删除语义的团队将此视为删除评估 (Deletion eval),而非简单的删除端点。该评估通过“忘记 X”的指令探测系统,然后发布一系列旨在发现 X 是否存在的检索查询——直接查找、语义相似度查询、要求模型回忆其不应知道的细节的提示词注入探测,以及试图从任何路径诱导出已删除事实的端到端对话测试。通过条件是所有探测结果都必须干净无误。当这种评估第一次针对未针对删除设计的内存层运行时,失败率通常是灾难性的,且失败往往集中在设计评审从未检查过的地方——总结表、语义缓存、跨租户的少样本池。

能够通过审计的分层内存架构

受监管租户强制要求的架构转变是从“内存是单一的持久存储”转向“内存是一个分层系统,每一层都有明确的合规语义”。能够通过合规审查的模式将内存分为至少三层,并进行截然不同的处理:

  • 临时内存 (Scratch memory) 仅存在于单次对话中。它在会话结束时过期。它永远不会被嵌入到长期存储中,永远不会被用于派生总结,也永远不会被挖掘用于少样本示例。它的删除语义非常简单,因为下游没有任何东西依赖它。
  • 工作内存 (Working memory) 跨越单个用户的多个会话,具有有限的保留期——30 天、90 天或任何产品所需的时长。它仅供该用户的 Agent 搜索。它永远不会在用户之间进行聚合。它的删除是简单的按用户清除,无需追踪派生图。
  • 持久内存 (Durable memory) 是长期存储层——用户的稳定偏好、持久画像以及 Agent 应该无限期记住的事实。这一层是成本最高的。这里的每一项都需要完整的溯源元数据、同意追踪、审计日志和删除评估覆盖。写入该层的产品界面被刻意收窄——仅限用户显式确认的事实,而非从对话中投机取巧得出的推断。

分层的目的不在于优雅。而在于只有持久层需要全套的合规处理,通过保持其规模较小,可以将合规成本控制在有限范围内。那些让持久层吸收模型想记住的一切的团队,最终不得不对整个内存表面支付审计和删除税,包括那些根本不需要跨会话存在的内容。架构上的问题不是“我们能记住多少”,而是“在保证个性化体验的同时,我们能以多小的代价进行持久化记忆”。

分层模型还暴露了合规体系真正希望浮现的设计选择:用户显式同意持久存储哪些事实,以及系统为了检索效率而投机性地缓存了哪些事实。第一类是受监管的个人数据。第二类是运行状态。将它们混在同一个存储中会打破合规性区分,使存储中的所有内容都必须接受最严格的解释。

GDPR 删除权与 AI 法案保留义务之间的冲突

2026 年 Agent 内存中最难的架构问题不是其中任何一项法规,而是它们之间的直接冲突。GDPR 第 17 条规定控制者有义务根据请求擦除个人数据。而《欧盟人工智能法案》(EU AI Act) 对于高风险系统,则规定运营商有义务将决策日志保留数年(根据第 12 条,运行日志保留期至少为六个月,但根据第 18 条,更广泛的技术文档需保留十年,而高风险系统的审计追踪则根据具体用例介于两者之间)。

一个在同一行中既存储决策相关事实又存储用户识别信息的内存层无法同时满足这两个监管体系。解决这种冲突的架构是将决策的审计追踪与做出决策所依据的个人数据分离。决策日志捕获“Agent 从集群 C-1247 检索了一个事实,并用它来支持推荐 R-9123”,并使用在删除后依然存在的稳定 ID。个人数据存储持有可通过这些 ID 寻址的用户识别内容。当用户数据被擦除时,个人数据存储丢失该行,决策日志保留追踪记录,而 ID 变得悬空——这足以证明系统做了什么,但不足以重新识别是谁的数据驱动了该行为。

这是非同寻常的工程挑战。它要求在构建内存层时就设计好审计日志,而不是在监管机构第一次询问后才进行修补。那些不会在 2026 年 8 月《欧盟人工智能法案》截止日期前手忙脚乱的团队,是将“决策追踪 vs 个人数据”的分离视为内存架构的基础不变式,而不是一个在截止日期压力下添加的功能。

原生合规的记忆设计在第一天是什么样的

从一开始就为合规性构建记忆层的成本,远低于事后补救的成本。而事后补救的成本,又远低于遭受监管执法行动的代价。顺序很重要,时机也同样重要 —— 记忆层在缺乏正确原语的情况下运行的每一个月,都意味着在合规审查到来时,会有更多的数据项需要重新处理、重新追溯来源,甚至在最坏的情况下被彻底清除。

一个从第一天起就为监管层面设计的记忆层,大致长这样:其 Schema 为每一项数据携带了来源(provenance)、同意类别(consent class)、保留层级(retention tier)、派生图谱(derivation graph)、区域绑定(region binding)和审计 ID。API 将删除、审计导出和保留政策执行作为一等公民操作(first-class operations),而非管理员脚本。架构上将暂存层、工作层和持久层分离,并配以不同的删除 SLA 和合规处理方式。评估套件包含一个删除覆盖范围探测器,针对智能体(agent)支持的每条检索路径运行。法务和隐私评审人员在 Schema 冻结前的设计评审阶段就介入,而不是在第一次问询后的事后分析中才出现。

领导层必须意识到的核心点是:长期记忆并不是一个包裹着 UX 外壳的产品功能。它是一个恰好拥有聊天界面的记录管理系统(records-management system)。当一个智能体产品开始跨会话存储用户数据的那一刻,团队就继承了与记录管理供应商相同的义务:来源追踪、保留、审计、删除、数据驻留,以及从写入第一项数据之日起就开始计时的时钟。在设计阶段就将这些义务构建进系统的团队,付出的是可控的工程成本。而那些没这样做的团队,则会在监管压力和截止日期的逼迫下,在原本应该交付新功能的季度里,付出大得多的代价。

在接下来的 18 个月里,智能体记忆领域的胜出者不会是那些拥有最高检索质量的团队,而是那些记忆层在审查者提出第一个问题时就具备可审计性、可删除性和可解释性的团队。检索质量是一项功能,而合规性是这项功能下方的地板。请先打好地板。

References:Let's stay in touch and Follow me for more thoughts and updates