北大、微信安全团队:智能体安全转向能力与记忆管控?
打开「潘多拉工具箱」:北大、微信安全团队构建通用智能体全生命...
大语言模型不再只是聊天助手,正一步步走向通用智能体,安全问题也随之出现根本性变化。
过去关注的重点是模型「会说什么」——会不会生成有害内容、泄露敏感信息,或者被越狱提示绕过去。可现在的智能体已经能自己挑技能、调工具、读写文件、访问数据库、操作网页和终端,甚至把一次任务里攒下的经验写进长期记忆,左右下一次决策。
也就是说,智能体安全不再只盯着「输出是否合规」。它加载了什么能力,怎样把技能、记忆与工具组合起来,都是要追问的事。
-
此外还得看它最终执行了什么动作,以及这些动作留下的状态,日后会不会再次影响它。
一次攻击未必马上造成破坏。它可以先以一段看似正常的技能描述混进系统,在任务编排时悄悄影响技能选择,等工具执行阶段再触发危险操作,最后把污染内容写进长期记忆、可复用技能或项目工件。风险就这样跨会话存活下来,还能在后续工作流中持续放大。
拿一个伪装成「酒店比价助手」的恶意技能来说,它可能在任务编排阶段诱导智能体选中伪造的预订接口,到执行阶段窃取用户的行程和支付信息,并把该接口写进长期记忆。当前任务结束了,这一风险仍可能在往后的差旅任务里被反复触发。
问题的关键并不落在某一个模型、工具或记忆模块是否安全上,而在于风险如何穿过智能体的整个运行生命周期。
针对这一点,北京大学知识计算实验室(KCL)和腾讯微信安全技术团队联合发布了一篇综述论文。论文从生命周期视角系统梳理通用智能体中的安全风险、攻击方法、评测基准与防御技术,并提出一个统一分析框架,把来源、编排、执行与持久反馈串在一起。
-
这篇论文的标题是 Pandora's Toolbox: A Survey of Generalist Agent Security from the Lifecycle Perspective。
-
项目主页:https://github.com/MurrayTom/Awesome-Agent-Security-Papers
-
论文全文:https://openreview.net/forum?id=A0KU8ja2mo
智能体真正开始「自主行动」之后,安全边界究竟延伸到了哪里?下面就来梳理这个问题。
为什么传统的组件式安全视角已经不够?
以往的研究大多按模型、记忆、工具、环境这些组件来划分安全问题。这样做对定位局部风险有帮助,可一个更关键的问题却答不上来:同一个风险是怎么在不同阶段之间传播的?
第三方技能投毒就是一个例子:
攻击者先把隐蔽的恶意内容塞进技能元数据或说明文件。到这一步,技能可能只是被系统读取,还没有执行任何危险操作。等用户发起一个正常请求,智能体在编排阶段挑中并加载这个技能,潜伏的指令就跟着进了决策上下文。
再往后,智能体可能去调用终端、API 或数据库,把风险变成真实动作。执行结果还可能污染长期记忆,或者改动可复用的技能,让同一次攻击在以后的会话里再次出现。
只查技能文件、只看某一次模型输出或者最终的工具调用,看到的都只是这条攻击链的一部分。所以综述提出:通用智能体安全说到底是一个生命周期问题,并非若干孤立组件风险的简单相加。
风险沿生命周期如何渗透智能体
论文把通用智能体的运行过程划成三个关键阶段。其中被单独拎出来强调的,是执行结果会对后续工作流形成长期反馈,这也是未来递归式自我改善(RSI)智能体尤其要留意的环节。
来源阶段:哪些能力获准进入系统
在来源(Provenance)阶段,智能体会去读技能元数据、能力描述、使用条件和接口信息。读完之后,一个可供后面挑选的能力空间就建立起来了。
这个阶段的安全疑问,说到底就是「信任从哪儿来」。技能可能编造来源、顶着可信组件的名头,也可能把风险藏在自然语言说明、脚本、依赖、配置和外部资源里。危险能力一旦过了准入这一关,就可能长期趴着不动,等以后某个任务把它唤醒。
编排阶段:潜伏风险怎样被触发、被放大
到了编排(Orchestration)阶段,智能体要理解用户请求、检索长期记忆、挑选技能、搭出计划,还要为工具调用做准备。
这时用户、记忆和技能带来的多路信息会挤进同一个上下文。某些技能单看没什么问题,凑在一起却可能拼出越权链路;一次平常的记忆检索,也可能把几周前埋进去的污染内容重新翻出来。风险已经不只是「被看到」,它开始动手改动智能体的决策和控制流。
执行阶段:风险怎样落成现实后果
在执行(Execution)阶段,智能体靠工具跟外部环境打交道——打开网页、调用 API、跑代码、操作文件、查数据库,乃至控制计算机和移动设备。
环境反馈回来的东西,本身就不能全信。网页里的隐藏文本、弹窗、终端输出、搜索结果,连 MCP 工具的响应都算上,都可能夹带提示注入的内容。智能体一旦把这类观察当成高优先级指令照做,风险就从内部判断变成了对外部环境的真实操作。
执行阶段收尾,风险并没有跟着收尾
过去做安全评测,通常认为任务跑完就结束了。可通用智能体不一样:执行结果可能被写进长期记忆、固化成新技能,或者留在项目工件里。
这些状态往后还会再次进入来源阶段或编排阶段,形成「反向污染」。说白了,一次安全失败未必只影响当前这次会话,它可能成为智能体下一轮行为演化的起点。
通用智能体安全全景,一张图就能看清
除了生命周期这条主轴,综述还从三个互相正交的安全视角来梳理已有研究:
-
风险与攻击,讲的是风险从哪儿进来、又怎么扩散并造成后果;
-
评测基准,讲的是安全证据在哪儿收集、依据什么判断智能体安不安全;
-
防御方法,讲的是安全机制该在哪个位置插手。
这个二维框架的用处在于,它不满足于只问「这是什么攻击」,还会接着追问:攻击从哪个阶段进来?在哪个阶段被发现?又该在哪个阶段被拦住?
四类攻击面:技能、用户、记忆与环境
论文顺着生命周期往下梳理,归纳出四类互相咬合的主要攻击面。
技能供应链:能力本身也可能成为攻击载体
通用智能体靠技能迅速补齐新本领,可软件供应链那套风险也随之被带进了智能体系统。
风险不光藏在 SKILL.md 这类声明式文件里,辅助脚本、依赖、配置、检索数据库和本地缓存都可能成为藏身处。更难察觉的一种情形是:单独看每个技能都没问题,可几个技能凑到一起,就拼出了未授权访问、隐私泄露或者破坏性执行的路径。
还有一类攻击会在当前会话里改动技能,等到之后的会话或特定触发条件出现时才把后门放出来。SkillHarm [2] 就是从生命周期角度切入,研究技能攻击怎样跨阶段构造、并持续作用于智能体。
用户侧攻击:从人工越狱走向自动化红队
用户能借助有害请求、角色扮演、编码混淆、多轮诱导以及优化生成的越狱提示,推动智能体去干危险的事。
跟传统 LLM 越狱不一样,冲着智能体来的攻击已经不满足于让模型吐出违规文本,它想诱导智能体走完一条真实攻击链,里头包含多次工具调用。这几年攻击手法也在变,从人工模板、启发式搜索,一步步走到能规划、能反思、能持续优化攻击策略的智能体化红队。
长期记忆:一次投毒,可能影响未来多个任务
长期记忆一般由系统自动检索,随后当作可信上下文进入后续决策。它让智能体在任务之间保持连贯,但一次投毒也可能由此长期留存。
攻击者的手法有两类:一是直接污染知识库、RAG 语料和记忆索引;二是借普通对话、网页内容或环境观察,引导智能体自己写入错误信息。后门型记忆更隐蔽,平时不声不响,只在特定主题、特定查询或特定上下文模式下才被触发。
外部环境:智能体读到的内容,不全是「数据」
智能体一旦要浏览网页、操作电脑、调用工具,它看到的环境信息就既是数据,也可能被当成指令来理解。
恶意网页、隐藏文本、GUI 弹窗、文件内容、终端输出、API 返回以及 MCP 响应,都有可能劫持它后面的推理过程。攻击者无需直接碰模型,只要能控制智能体即将读取的环境内容,就可能让它下一步的行为发生改变。
安全评测:
不只看最终答案,
更要看每一步和最终状态
风险一旦从文本层面蔓延到行为层面,安全评测要考察的对象也得跟着变。
早先的安全基准,重点在于判断模型有没有生成有害回答;到了智能体这里,评测还要多盯几件事:
-
它挑的是哪个工具;
-
参数是怎么构造的;
-
中间哪一步开始偏离用户目标;
-
有没有受到环境注入的影响;
-
最终到底有没有改文件、泄信息,或者动了系统状态。
综述把这类评测归到三条主线上。
综述把现有评测工作分为三大类。第一类针对特定领域,考察智能体在工具调用、网页浏览、操作电脑与移动设备等具体场景中的安全性;第二类则面向通用智能体,侧重点落在技能这一中间层带来的行为风险,以及如何识别恶意技能。
第三类做法是离线轨迹审计:借助完整的交互记录或候选动作,找出风险出在哪一步,并给出因果链上的解释。AgentAuditor [3] 就是对整条轨迹做安全审计,ToolSafe [4] 则把目光前移到动作执行之前,盯住步骤层面的工具调用风险。评测的关注点因此发生转移——不再只问任务收尾时有没有出事,而是追问风险出现在哪一步、为何出现、能不能在执行前就拦住。
安全防御:
管住输入什么、决策如何做出、哪些动作被允许执行
论文按照干预在生命周期中的落点,把防御手段分成三层。
第一层是输入与上下文过滤,先把能进来的东西管住。
技能风险扫描、提示注入与越狱检测,再加上记忆写入和检索护栏,都归在这一层。做法是在不可信内容进入智能体决策上下文以前,就把恶意指令、异常依赖、伪造来源和被污染的记忆找出来。
第二层针对决策与控制完整性,管的是计划怎么形成。
光过滤输入还不够。多条本身无害的信息凑到一起,照样可能导向危险决策。
应对上分两类路子。一类在模型之外动手:重构上下文、隔离不可信数据、约束信息流以及工具之间的依赖关系。另一类把信任优先级塞进模型策略里,靠指令层级训练、偏好优化和安全工具使用对齐来实现。
第三层是运行时监控与执行约束,在动作真正生效之前把住最后一道关。
智能体已经生成计划或候选动作之后,运行时防御可以动手检查,对象可以是整个计划,也可以是单次工具调用或累计轨迹;处置方式有阻止、修正、请求确认和进一步验证几种。
也就是说,安全机制的角色变了:过去只在回答结束后充当「裁判」,现在则逐步贯穿智能体的执行过程,充当「控制器」。
智能体一旦开始自我演化,
安全机制也就得跟着持续演化。
智能体一旦开始攒经验、更新记忆、造工具、改技能,连工作流都自己动,生命周期上的安全问题只会越滚越大。近来的研究已经看到,自进化会把恶意影响永久刻进去、跟着一次次迭代传下去 [5];能力往上走的过程中,还可能冒出偏离原本目标的「错误进化(misevolution)」[6];就算智能体积攒了经验,也未必能忠实地读懂、用对这些经验 [7]。
这么说来,靠一套固定数据集、几道静态护栏、一次对齐,很难一直盖住不断变动的攻击面。针对这个难题,综述拿出了一个面向将来的安全闭环:
-
风险生成:自动搭出能执行、能验证、还会持续演化的对抗环境和安全数据;
-
风险诊断:顺着长程轨迹找出风险从哪来、卡在哪些关键步骤、涉及哪些工具参数、因果链怎么走;
-
安全演化:把新攻击和失败轨迹变成训练反馈,让安全策略能一直更新下去。
这个闭环里,对抗生成管的是发现未知风险,细粒度归因管的是讲清风险怎么形成,持续安全演化则把诊断结果变成新的防护本事。
换个说法,将来的智能体不光要能自我改进,还得在改进的路上学会不断发现、诊断、修补自己的安全短板。
总结
通用智能体正把模型、技能、记忆、工具和环境串成一个能长期跑、持续攒、不断变的系统。跟着来的安全风险,也就不再是某个孤立组件或某一次交互的事。
来源阶段决定恶意能力能不能混进系统,编排阶段决定污染信息能不能劫持计划,执行阶段决定危险动作会不会真的落地,持久状态则决定安全风险能不能跨任务、跨会话一直传下去。
《Pandora's Toolbox》想推的,就是从「单点漏洞修补」转到「全生命周期安全治理」:不光认出攻击从哪来,还要追它怎么传、在哪冒头、留下什么状态,以及安全机制该在哪儿插手。
智能体安全不能只靠输出末端设一道关卡。能力从哪来、决策怎么形成、动作如何执行、后续怎样持续演化,这条控制链需要全程贯通。
论文、分类体系和持续维护的文献清单均已对外发布。团队希望更多人关注通用智能体安全研究图谱,一起把它补全。
牟宇滔是北京大学知识计算实验室(KCL)三年级博士生,导师为叶蔚副研究员,目前在腾讯微信安全团队做研究实习生。他的研究方向集中在大模型与智能体的安全可信推理,涉及安全评估、安全对齐和执行前防护。他曾获国家奖学金,入选中国科协「青年科技人才培育工程博士生专项计划」,并以第一作者身份在 NeurIPS、ACL、EMNLP 等顶级会议发表论文 10 篇。
个人主页:http://murraytom.github.io
Reference
[1] Yutao Mou, Dingyao Yu, Xiaotian Luan, Zhe Yin, Zhangchi Xue, Peiyang Liu, Pengfei Yang, Tong Zhang, Shikun Zhang, and Wei Ye. Pandora's Toolbox: A Survey of Generalist Agent Security from the Lifecycle Perspective. 2026.
[2] SkillHarm: Lifecycle-Aware Skill-Based Attacks via Automated Construction.
[3] AgentAuditor: Human-Level Safety and Security Evaluation for LLM Agents.
[4] ToolSafe: Enhancing Tool Invocation Safety of LLM-based Agents via Proactive Step-level Guardrail and Feedback.
[5] Safety in Self-Evolving LLM Agent Systems: Threats, Amplification, and Case Studies.
[6] Your Agent May Misevolve: Emergent Risks in Self-Evolving LLM Agents.
[7] Large Language Model Agents Are Not Always Faithful Self-Evolvers.