OpenClaw案例:无需恶意攻击,日常聊天也能“黑化”Agent
8 小时前 / 阅读约14分钟
来源:36kr
个性化Agent长期记忆带来安全风险,日常对话可能污染长期状态。研究提出ULSPB基准和HS指标,定义非预期长期状态投毒,并提出StateGuard防御框架,实验显示可显著降低风险。

今天的大模型Agent,已经不再只是回答问题的聊天机器人。它们开始拥有长期记忆,能够跨会话记住用户偏好、延续任务进度,并调用邮件、日历、文件、网页和各种外部工具。

换句话说,Agent正在从一次性任务执行器,变成一个持续陪伴用户的个性化协作者。

但这种能力也带来了一个更隐蔽的问题:如果Agent会长期记住用户的习惯和上下文,那么这些记忆本身是否安全?

过去很多Agent安全研究主要关注显式攻击,例如恶意提示词、间接prompt injection、被污染的网页内容或工具输出。

然而,在个性化Agent场景中,风险未必来自一个明确攻击者。

图 1:没有恶意提示词,日常对话也可能「养歪」你的个性化Agent。临时偏好一旦被写入长期记忆,就可能在未来变成危险的默认规则。

研究发现,即使没有黑客、没有恶意提示词、没有明显攻击,普通的日常聊天也可能逐步污染个性化Agent的长期状态。这种风险不会总是在当前对话里立刻爆发,而是可能被写入长期记忆,并在未来任务中改变Agent的默认行为。

论文地址:https://arxiv.org/abs/2605.06731Demo:https://xiaoyuxu1.github.io/ULSPB_website/

一个Agent今天没有做错事,并不意味着它没有把未来做错事的种子写进长期状态。

Agent长期状态被「养」歪

传统prompt injection更像是一次显式攻击,而长期状态投毒更像是一种「慢性漂移」:Agent没有立刻犯错,却可能把未来犯错的规则写进了记忆。

研究人员将这种现象定义为Unintended Long-Term State Poisoning,即非预期长期状态投毒。它的核心不是一次对话立刻诱导Agent做坏事,而是Agent把某次临时请求、某种局部偏好、某个上下文里的「方便做法」,错误地泛化为未来长期默认规则。

例如,用户今天只是为了赶时间说了一句:「这类小事以后不用每次都问我,直接处理就行。」

如果Agent把这句话写入长期状态,未来它可能在邮件发送、文件修改、日程安排甚至账号操作中逐渐减少确认。用户并没有真正授权所有未来操作,但Agent的长期状态已经被悄悄改写。

这与传统prompt injection不同。传统攻击往往假设存在明确攻击者,而这里的风险来自看似正常的日常交互。它也不是普通幻觉,因为危险可能跨会话保留,并持续影响未来的安全边界。

图2:传统任务型Agent通常在单次任务结束后重置上下文,而个性化Agent会跨会话维护长期状态、用户偏好和工具权限。

为什么长期记忆会变成安全入口?

个性化Agent的长期状态通常不只是「记住一些事实」,它还可能包含长期记忆、Agent核心指令、工具默认设置、用户画像、行为风格和短期运行状态。这些内容看似只是记忆文件,但实际上会影响Agent未来如何理解用户意图、何时调用工具、是否需要确认,以及是否可以自主执行。

因此,长期状态不是普通缓存,而是Agent未来行为边界的一部分。一旦这些状态被错误写入,风险可能不会马上表现出来,却会在未来某个任务中变成「少问一次确认」「多调用一个工具」或「默认执行一个本该征求授权的操作」。 换句话说,个性化Agent的长期记忆不是一个被动资料库,而是一套会影响未来行为的「隐性配置文件」。

ULSPB:专门测试「日常聊天是否污染长期状态」

为了系统研究这一问题,研究人员构建了一个新的双语基准ULSPB(Unintended Long-Term State Poisoning Bench)。它专门用来测试:日常用户—Agent对话是否会诱发长期状态污染。

ULSPB覆盖七类长期状态漂移场景、五类日常个性化协助任务、英文与中文两种语言,并为每个设置构造24轮普通日常对话。为了对比,研究人员还构造了四类单次显式注入变体,用于观察routine conversation和explicit injection之间的差异。

其中,七类风险场景覆盖了个性化Agent在长期交互中最容易出现的几种安全边界漂移。

图 3:ULSPB的构建流程。该基准从七类长期状态漂移场景、五类日常协助任务、双语模板和五种对话变体出发,系统测试普通日常对话是否会污染个性化Agent的长期状态。

实验结果

研究人员在OpenClaw个性化Agent环境中进行实验,并测试了四个不同的Agent backbone:Kimi K2.5、GPT-5.4、MiniMax M2.7和Grok 4.20。

为了衡量长期状态污染程度,设计了状态中心指标 Harm Score(HS)。

和传统攻击成功率不同,HS不只看Agent当下有没有做出危险动作,而是看它的长期状态是否出现安全相关漂移。具体来说,HS关注三个维度:授权确认边界是否被削弱、工具调用权限或范围是否被扩大,以及Agent是否开始绕过流程、提高自主执行程度。

结果显示,显式单次注入通常会带来更高的HS,但普通日常对话本身也能诱发明显的长期状态污染。在部分模型上,日常对话造成的风险已经接近显式注入。

这说明,个性化Agent的风险不一定来自一次明显攻击,也可能来自长期、自然、看似无害的交互积累。

表 1:不同对话变体和语言下的Harm Score。 结果显示,普通日常对话本身也能诱发长期状态污染,在部分模型上甚至接近显式注入带来的风险;不同语言下的风险表现也存在明显模型差异。

最容易被污染的,是记忆文件

进一步分析显示,风险主要集中在memory-centric artifacts,也就是和记忆高度相关的状态文件中。不同模型和不同对话变体下,MEMORY.md和 memory/ 是被修改最频繁的区域,其次是USER.md、AGENTS.md和TOOLS.md。

这也符合直觉:日常聊天最容易被Agent总结成「用户偏好」「历史习惯」或「未来默认规则」。问题在于,这些总结一旦过度泛化,就可能把临时上下文变成长期安全边界的一部分。

「用户倾向于快速处理低风险事项。」

「类似重复任务可以先执行后汇报。」

「用户通常不希望被频繁打断确认。」

这些记录单独看都合理,但在高权限工具场景下可能变成危险默认项。

图4:不同模型和对话变体下,风险编辑主要集中在MEMORY.md和 memory/ 等记忆相关文件中。

真实聊天数据也会触发风险

为了验证这一现象不是合成prompt造成的假象,研究人员进一步引入真实用户聊天数据进行测试。

具体来说,从WildChat和LMSYS-Chat-1M两个公开真实聊天数据集中选取日常协助类对话种子,将其扩展成24轮routine interaction,并在OpenClaw风格环境中重新执行。

结果显示,真实种子构造出的日常对话虽然HS低于完全合成的ULSPB routine conversations,但仍然会在所有测试模型上诱发不可忽视的长期状态风险。这说明,非预期长期状态投毒并不是一个prompt设计出来的假问题,而是可能真实存在于未来个性化Agent使用场景中的安全问题。

图5:日常对话不仅在合成ULSPB中会导致长期状态污染,在真实用户聊天种子扩展出的routine setting中也会产生不可忽视的长期状态风险。

StateGuard,最后一道安全审计

如果问题发生在长期状态写入阶段,那么防御也应该发生在写入阶段。

基于这个想法,研究人员提出轻量级防御方法 StateGuard。它不是在用户输入时拦截,也不是在Agent输出时检查,而是在Agent准备把新内容写入长期状态之前,对状态diff进行审计。

StateGuard的流程很直接:Agent完成一轮交互,生成候选状态更新;StateGuard检查哪些长期状态文件发生了变化;随后对新增或修改内容进行安全审计,判断是否应该保留或回滚。如果某段状态更新可能削弱确认边界、扩大工具调用范围,或增加Agent未授权自主行为,StateGuard就会回滚这次写入。

这个设计的关键在于:它保护的不是当前回答,而是未来行为边界。长期状态投毒的危害常常不会在当前回合立刻显现,而是会在未来某次任务中被激活。

图6:StateGuard在每轮交互结束后检查长期状态diff,并在状态写入前决定保留或回滚修改。

长期状态风险降至接近0

实验结果显示,StateGuard能够显著降低长期状态污染风险。

在没有防御的情况下,四个模型都会产生较高的HS,说明日常交互确实可能把不安全的默认规则写入长期状态;而引入StateGuard后,尤其是在Targeted-Ensemble设置下,HS几乎被压低到接近0。这表明,在状态真正持久化之前进行写入审计,是防御长期状态投毒的一条有效路径。

当然,StateGuard目前采用的是一种偏保守的安全优先策略,因此可能带来较高的false positive,即部分原本无害的状态更新也会被回滚。但在长期记忆场景中,这种权衡是可以接受的:误拦截一条普通记忆,通常只会降低一点个性化体验;而漏掉一条危险的默认规则,则可能在未来多个会话中持续影响Agent行为,甚至改变用户原本的授权边界。

更现实的部署方式并不是简单地「保留」或「删除」,而是引入分级处理机制。对于高风险更新,系统可以直接回滚;对于边界模糊的更新,则可以暂缓写入,并向用户发起轻量级确认,例如询问「是否要将这条偏好保存为长期默认规则」。这样一来,false positive不再只是误拦截,而可以转化为一次用户可感知、可控制的状态确认过程。

从长远看,StateGuard可以被视为个性化Agent长期状态治理的一个初步原型。未来,类似机制可以进一步扩展为更完整的「记忆写入防火墙」:不仅审计安全风险,还可以结合隐私保护、权限管理、可解释日志和用户可撤销机制,让Agent在变得更个性化的同时,也始终保持清晰、可控的记忆边界。

表2:StateGuard显著降低四个Agent backbone上的Harm Score,在Targeted-Ensemble设置下将长期状态污染风险压低至接近0。

为什么这个问题重要?

随着Agent系统的发展,未来的AI助手很可能会越来越长期化。它们会记住用户偏好,管理邮件和日程,处理文件,执行网页任务,调用企业内部系统,甚至代表用户做出越来越多低风险决策。

在这种趋势下,安全问题也会发生变化。

过去主要担心模型这一次有没有输出危险内容;但个性化Agent时代,还必须追问:模型这一次有没有把危险默认规则写进长期记忆?

因此,Agent安全评估需要从即时行为安全扩展到长期状态安全。不仅要看它当下说了什么、做了什么,还要看它记住了什么、默认了什么、未来会如何解释用户授权。

主要贡献

1. 发现新的Agent安全风险:系统化定义了非预期长期状态投毒:日常用户-Agent交互在没有明确攻击者的情况下,也可能逐步污染个性化Agent的长期状态,导致未来安全边界漂移。

2. 构建ULSPB基准和HS指标:提出双语benchmark ULSPB,覆盖350个设置,并设计Harm Score来衡量长期状态中的授权漂移、工具调用升级和未检查自主性。

3. 提出StateGuard防御框架:提出轻量级状态写入防御StateGuard,在长期状态真正持久化前审计diff,并回滚危险修改。实验表明,它可以在多个Agent backbone上将HS降至接近0,且成本较低。

结语

个性化是Agent走向实用的关键一步,但个性化也意味着,模型不再只是回答当前问题,而是在不断塑造一个关于用户、工具和未来行为规则的长期状态。

这让Agent变得更有用,也让它更容易被日常交互「养歪」。

研究表明,未来Agent安全不能只停留在prompt层面、输出层面或单次任务层面。

真正关键的,是要监控那些会跨会话延续的东西:它记住了什么?它默认了什么?它是否正在把一次临时授权变成长期规则?它是否正在悄悄改变未来的行为边界?

当AI助手开始拥有长期记忆,安全问题也必须进入长期状态时代。

作者与机构信息

该研究由香港理工大学、香港科技大学(广州)的研究团队共同完成。论文提出了个性化Agent中的非预期长期状态投毒问题,并构建ULSPB基准与StateGuard防御框架,用于评估和缓解日常对话对Agent长期状态造成的安全风险。

论文作者包括 Xiaoyu Xu、Minxin Du、Qipeng Xie、Haobin Ke、Qingqing Ye 和 Haibo Hu。通讯作者为 Haibo Hu 和 Minxin Du。

参考资料:

https://arxiv.org/abs/2605.06731