TL;DR

本文核心观点:

  1. 四层分类 — L1-L4 敏感等级(L1=密码/PII,L4=公开偏好),决定存储策略而非一刀切
  2. 三道检测关卡 — 规则匹配捕获已知模式,ML 分类器补漏,用户显式标记兜底
  3. 加密存储分层 — 客户端加密(防服务器被破)、HSM(防内部人)、分片(防单点泄露)
  4. 隐私增强是最后防线 — 差分隐私堵推理攻击,联邦记忆让原始数据不离设备

Agent记住了太多秘密

我的OpenClaw助手知道:

  • 我的API密钥
  • 我公司的内部项目细节
  • 我的一些个人偏好(有些挺尴尬的)
  • 我和客户的敏感对话

所有这些,都存储在向量数据库里,以plaintext embedding的形式。

💡 Key Insight

向量数据库存的是 embedding,不是原文——但 embedding 通过逆向模型可以还原出原始文本,明文加密与否在这里不是护城河,访问控制才是。

如果有人攻破我的服务器,或者我用的第三方向量DB被入侵——所有这些敏感信息都会暴露。

这就是敏感记忆的安全问题:Agent需要记住这些信息才能服务好用户,但记住意味着风险。

💡 Key Insight

L1 数据(API密钥、PII)必须客户端加密后才允许进入向量 DB,任何服务端明文存储都是违规——不是建议,是底线。

敏感记忆的四层分类

机密等级

极度敏感(L1):

  • 密码、API密钥、私钥
  • 个人身份信息(PII):身份证号、银行卡
  • 医疗记录、心理健康信息
  • 法律相关:诉讼、合同条款

高度敏感(L2):

  • 公司内部信息:未公开产品、战略、财务数据
  • 商业机密:客户名单、定价策略
  • 个人财务:收入、投资、债务

中度敏感(L3):

  • 个人偏好:政治观点、宗教信仰、性取向
  • 社交关系:人际冲突、家庭问题
  • 位置历史:常去的地方、行踪

低敏感(L4):

  • 一般偏好:喜欢的颜色、食物
  • 公开信息:职业、教育背景
  • 技术偏好:喜欢的编程语言、工具

这四层不是学术分类,而是直接决定了存储策略。L1 数据(API密钥、PII)必须客户端加密后才允许进入向量 DB,任何服务端明文存储都是违规。L3 属于”用户不想被记住”的范畴——政治观点、心理健康记录——Agent 只能在明确授权后才能记忆,且必须提供随时删除的通道。L4 可以直接进向量 DB做语义检索。分类的价值在于:不是所有记忆都值得用同一套保护方案,敏感度越高,保护成本也越高,但泄漏后果也越严重。

分层处理策略

敏感记忆分层架构

三道检测关卡

规则匹配

正则表达式和关键词模式是最快的第一道拦截。API 密钥有固定结构(sk- 前缀、32+ 字符 token),邮箱和手机号符合已知格式,个人身份证号遵循国家标准编号规则。把这些写成正则后,单条向量插入的平均检测延迟可以控制在 10ms 以内,适合在写入向量 DB 前做同步拦截。关键词黑名单则针对”密码”“私钥”“API”“信用卡”等高危词根,中文语境下还需要覆盖”身份证号”“银行卡号”等模式。

规则匹配的局限在于它只能检测已知模式。新出现的 API 密钥格式、未被标记为敏感的业务数据、上下文相关的隐私信息——这些都超出正则的能力范围。这也是为什么规则匹配之后,还需要 ML 分类器做第二层覆盖。

💡 Key Insight

规则匹配是精确匹配,ML 是概率判断——前者不错杀,后者不漏过,两者叠加才能覆盖所有已知和未知模式。

ML分类器

embedding -based 分类器在向量空间里做语义聚类,把语义上与已知敏感类别最近的记忆自动标记。训练数据来自规则匹配已有的正样本——API 密钥、银行卡号、PII 字段——模型学会的是”这类语境下出现这类词”的概率分布,而非简单的字符模式。好处是能捕获上下文相关的敏感信息,比如一段对话中隐含的心理健康状态或法律纠纷;坏处是召回率提升的同时,误报率也会上升,需要在准确率和召回率之间找到业务可接受的平衡点。

用户显式标记

用户最清楚自己的哪些信息不能被记住。Agent 每次尝试将新记忆写入向量 DB 时,可以通过一个非侵入式的确认框提示用户——”是否将以下内容记为敏感?(L3,仅本地存储)”。用户也可以主动标记,选中任意对话片段点击”敏感”按钮,Agent 自动将其加密后存入隔离区域,检索时不参与语义检索排名。标记行为本身也是一种训练信号:用户标记过的内容越多,ML 分类器的召回率就越高,形成一个正向循环。

加密存储方案

客户端加密

AES-256-GCM 是目前最实用的对称加密方案:加密速度快硬件支持广,认证标签保证密文不被篡改。密钥由用户密码通过 PBKDF2(至少 100,000 轮迭代)派生,盐值随机,确保相同密码产生不同密钥。数据在离开用户设备前就加密,向量 DB 存储的只是密文——即使 DB 被拖走,攻击者没有用户密码依然无法解密。这种方案的代价是:用户一旦忘记密码,所有记忆无法恢复,所以建议同时提供加密备份到用户自己的云存储(如 iCloud Keychain 或 Google Password Manager)。

💡 Key Insight

客户端加密的本质是密钥不离用户设备——服务端存的不是数据,是”数据加上只有用户知道的密钥才能解开的锁”。

服务端加密 + HSM

使用硬件安全模块(HSM)管理密钥:AWS KMS 或 Cloud HSM 将密钥物理密封在防篡改硬件中,API 调用时密钥从不离开 HSM,哪怕整台服务器被拿下也无法提取密钥。HSM 的审计日志记录每一次密钥使用——哪台服务器在什么时间调用了什么密钥,SOC 2 认证可查。这种方案适合企业场景:密钥管理合规不再是研发团队的负担,HSM 本身满足 FIPS 140-2 Level 3 标准,审计员可以直接拿到日志而不用问研发要。

分片存储

将敏感数据分成多份,存储在不同位置:Shamir’s Secret Sharing 把原始数据拆成 3 片(阈值 2),分别存到三个独立云提供商(AWS S3 + GCP Cloud Storage + Azure Blob)中,任何单一片段都无法还原原始数据。检索时需要同时访问至少 2 个节点,攻击者必须同时拿下两个以上的存储服务才能拼出完整数据。这种方案对运维复杂度要求最高——跨提供商协调、分布式事务、故障恢复都要自己处理,所以通常只用于 L1 数据的最后防线。

隔离与访问控制

内存隔离

敏感信息只在受保护的内存区域处理:Intel SGX 或 ARM TrustZone 将特定内存区域密封起来,即使是 OS 内核也无法读取这片区域的数据。Agent 需要访问 L1 记忆时,向量检索在 Enclave 内部完成,加密向量和密钥都在密封内存里,OS层面的进程只能看到密文。这种硬件隔离在云环境下尤其重要——共享内核的 VM 有被隔壁虚拟机侧信道攻击的风险,Enclave 是唯一能在多租户环境里保证”看不到”的方案。

RBAC

角色决定谁能读、谁能写、谁能删。owner(用户本人)拥有完整权限,可以读所有层级、写加密记忆、删除任意条目;agent(AI 助手)只能读取 L3 及以上层级的解密内容,禁止写 L1,禁止删除任何记录;viewer(审计员或合规系统)只能读访问日志,无法接触记忆内容本身。权限在向量 DB 层面通过加密密钥分发实现:agent 的进程拿到的密钥只能解密 L3+ 的密文,L1 的密钥对 agent 进程根本不存在。RBAC 的核心不是”我们相信 agent”,而是”即使 agent 想访问,它也没有拿到密钥的途径”。

审计日志

记录所有敏感数据的访问:谁(principal)、在什么时候(timestamp)、访问了哪段记忆(memory ID)、请求了什么操作(read/write/delete)、结果是什么(allowed/denied)。日志本身只能追加、不能修改,写入后用梅默尔哈希(Merkle hash)或区块链锚定防止篡改。审计日志的作用是双重的:合规层面满足 GDPR 的”数据处理透明性”要求,安全层面让你能在事后重建攻击路径——攻击者在横向移动时留下了时间线,调查团队可以顺着时间线找到第一个被突破的点。

隐私增强技术

差分隐私

在记忆检索结果中添加噪声,防止推断攻击:差分隐私(DP)通过向检索结果注入校准过的随机噪声,使得攻击者无法从返回的记忆片段推断出某个人是否在记忆库中——即使攻击者已知用户 99% 的记忆内容,最后 1% 的存在与否也无法被统计方法确认。隐私预算 ε 控制噪声强度:ε 越小,隐私保护越强,但检索结果的可用性越低;ε 太大,噪声几乎为零,但保护几乎失效。生产环境里通常取 ε=1~8,这是 Dwork 等人在《The Algorithmic Foundations of Differential Privacy》里给出的经验区间。差分隐私是最后一道统计防线:即使攻击者拿到了所有加密数据、破解了所有密钥,DP 仍然保证无法用统计方法推断出某个人的存在。

联邦记忆

用户的敏感记忆只在用户设备上,Agent只上传聚合后的匿名模式:联邦记忆把 L1 和 L2 数据留存在用户本地设备(手机、电脑)的安全飞地(Secure Enclave/TEE)里,Agent 的向量 DB 只存加密摘要或匿名聚合模式——比如”这个用户偏好使用 Python 而非 Go”这类统计特征,而非具体的密码或 API 密钥内容。当用户换设备时,只有加密备份被迁移,原始记忆内容从未流经云端。联邦记忆适合个人助手类 Agent:用户需要 Agent 了解自己的偏好和习惯,但这些偏好本身不应该被任何第三方服务器存储。

合规与最佳实践

GDPR/CCPA合规

  • 被遗忘权:用户可以要求删除所有关于他们的数据
  • 可携带权:用户可以获得他们的数据副本
  • 透明度:明确告知用户数据如何使用
  • 最小化:只收集必要的数据

最佳实践清单

存储前:

  • 扫描敏感信息
  • 分类敏感度等级
  • 高敏感数据加密
  • 用户确认(如果是敏感信息)

存储中:

  • 定期审计访问日志
  • 监控异常访问模式
  • 定期轮换加密密钥
  • 备份加密数据

检索时:

  • 验证用户权限
  • 记录访问日志
  • 脱敏展示(如需要)
  • 提供数据来源解释

结尾

敏感记忆的安全不是可选项,是必选项

当Agent成为我们的数字伙伴,它不可避免地会接触到我们的秘密。作为开发者,我们有责任确保这些秘密的安全。

核心原则:

  1. 最小化:只记住必须记住的
  2. 加密化:敏感数据必须加密
  3. 隔离化:不同敏感度的数据分层处理
  4. 透明化:用户知道Agent记住了什么
  5. 可控化:用户可以删除、纠正、导出

信任建立在安全之上。没有安全,就没有真正的Agent。

💡 Key Insight

安全不是功能,不是后期加上去的防护层——它是 Agent 记忆系统的基础架构,从分类到加密到访问控制,每一层都要先假设记忆随时会泄漏,再在这个假设上构建防御。


深度阅读时间:约 11 分钟

延伸阅读:

  • Goldreich, O. (2004). “Foundations of Cryptography”
  • Dwork, C. & Roth, A. (2014). “The Algorithmic Foundations of Differential Privacy”
  • Costan, V. & Devadas, S. (2016). “Intel SGX Explained”

标签: #安全 #隐私 #机密计算 #数据隔离 #加密 #合规