记忆正在变成攻击面
长程智能体要记住跨会话的客户偏好、内部规则与历史决策,记忆库随之变成一块会被反复读取、且影响后续行动的持久状态。问题就在这里:如果有人能往记忆里塞入看似合理、实则带目的的内容,智能体未来某次就会「自然」地依据它行动。这类风险在短会话里不显眼,但在跑上数周、数月的持久智能体里会被放大——因为记忆被读取的次数越多,被污染内容生效的机会越大。8 月底至 9 月初的一组记忆论文,集体把问题意识从「能不能检索」推到「检索前后到底发生了什么」。
RuleMem:把旧对话变成可复用规则,也带来过度泛化风险
RuleMem 从长期对话里归纳可复用逻辑规则:抽取带时间戳的事实、挖出连贯推理路径、抽象成自然语言 Horn 子句,再用「规则困惑度一致性」做校验。一条通过校验的规则,会反过来给自己Premise 提供检索线索,让语义相距很远的事实也能一起抵达答案。它在 LoCoMo 上把平均准确率拉到 78.05,比基线高 27 个点多。但它的失败模式很说明问题:一条过度泛化的规则,可能压过一条直接陈述的相反事实。也就是说,记忆升华成「规则」后,既能提升多跳召回,也可能制造更隐蔽的错误。这对安全的启示是——被固化的记忆(尤其是规则)需要版本与置信度标注,不能当成永真事实。
MemoryLACE:每条记忆有生命周期与溯源
MemoryLACE 给每个原子记忆带上时间元数据、来源、活跃状态与稀疏的生命周期关系,并用「合并、取代、矛盾」三类关系区分记忆的演进。被取代的记忆不删除,而是留着做历史与审计,只是标记为非活跃;矛盾记忆则保持活跃。检索时沿本地生命周期邻居展开、分组、重排,再打包进答案上下文。论文在 BEAM 子集用 Qwen3.5-9B 拿到 51.9 总分,比 Hindsight 高 1.6 点,且总耗时从 22.5 小时降到 7.5 小时。它的设计哲学很安全友好:记忆不是单一当前值,而是一条有来龙去脉的状态。去掉生命周期展开,BEAM 性能掉 5.16 点;去掉时间感知,掉 4.97 点——说明「记得怎么变的」本身就提升推理。
中毒防御:防止「未来才会生效的影响」
同一批论文里,有研究专门对付记忆中毒:攻击者不在当下触发错误,而是埋入一段内容,等智能体未来某次检索到它时才生效。这恰恰利用了持久智能体的「长期」特性。防御思路包括:对记忆写入做来源与信任评估,对跨会话被反复引用的内容提高校验权重,对「与既有已审定事实冲突」的新记忆打标而非直接合并。核心是把记忆写入当成需要审查的动作,而非无差别追加。对生产部署,这意味着记忆库要像代码仓库一样有权限、有审查、有回滚,而不是谁都能写。
上下文契约:给记忆读写定边界
另一支研究提出「上下文契约」:给智能体的记忆读写显式声明边界——哪些记忆可信、哪些只读、哪些需人工确认后才能写入或引用。它和运行时执行契约(如给 RAM 与墙钟时间设上限)同源:都是把「智能体能做什么」从模糊信任变成可声明、可约束、可审计的变量。记忆契约管的是「信息边界」,执行契约管的是「资源边界」,两者合起来才构成生产级持久智能体的底座——既不让它乱花资源,也不让它乱信、乱记、乱用过去的状态。
对生产部署的启示
把这批论文收成可落地的几条:其一,记忆条目带生命周期与溯源,被取代的旧事实留着审计;其二,固化出来的规则要标版本与置信度,防止过度泛化压过当前事实;其三,记忆写入视同代码提交,做来源信任评估与冲突打标;其四,给记忆读写上上下文契约,区分可信、只读、需确认三类。这些不必等论文成熟才用——在现有智能体里给记忆库加一层写入审查与溯源字段,就能先吃到安全红利。
结语
持久智能体的记忆安全,正在从「能记住」变成「记得安全」。RuleMem 提醒固化规则会过度泛化,MemoryLACE 用生命周期与溯源把「怎么变的」留住,中毒防御把写入当审查动作,上下文契约给读写定边界。当智能体跑得越久、记忆被读得越多,这块攻击面就越该被当成正经的安全工程来对待。对团队,建议现在就把记忆库当成需要权限、审计与回滚的一等资产。