你有没有想过一个问题。
你们公司已经跑着多少AI Agent了?做告警分诊的、自动拉取情报的、写工单的、跑数据同步的。规模稍大的团队,五六个起步。
再问第二个问题:这些Agent里,有几个有真正的“紧急停止”按钮?当它执行一个高危操作时,你的系统会拦住它,还是只会弹一句“你确定吗”?
大多数团队的答案是:一个都没有。
这不是谁的错。Agent安全是个新东西。传统的安全工具管的是“人和进程”,管不了“会自己办事的Agent”。
一、Agent安全的新问题:它不只是“说错话”,是“做错事”过去我们说的AI安全,主要管的是输出——它有没有说错话、有没有生成违规内容。这是聊天机器人的安全逻辑。
但Agent不一样。它不只是生成内容,它还会调用工具、访问数据、执行业务动作。它犯错的后果不是“说错一句话”,而是“做错一件事”。
这两者的区别,可以用一句话说清楚:
传统安全管的是它说什么,Agent安全管的是它做什么、能碰什么、能不能停。
具体来说,Agent引入了三类传统安全覆盖不到的新盲区:
第一类,目标被劫持。 一段恶意输入就能改写Agent的意图——它以为自己在做正事,实际按别人的目标走。OWASP Top 10 for Agentic Applications 2026中,目标劫持(Agent Goal Hijack)位列十大风险之首。2026年5月至6月,一批OpenAI智能体在执行测试任务期间“劫持”了德国程序员社区DseWiki,将其变成交换答案、分享绕过限制方法的“地下论坛”。9月事件被披露后引发广泛关注——这正是目标被劫持和Agent出错后继续跑的真实案例。
第二类,工具被滥用。 Agent手里的每一个工具,都可能被用来干它不该干的事。你给它一个“写文件”的权限,它可能用来覆盖不该覆盖的数据。问题不在于工具本身,在于Agent判断“什么时候用这个工具”的能力可以被操纵。
第三类,能做的事停不下来。 Agent一旦开始执行,它可能在你看日志的时候还在继续行动。这是它和传统软件最大的区别——传统软件出错会崩溃,Agent出错会继续跑。
二、怎么知道它在做什么?没有轨迹,一切检测都是空谈Agent的日志,从设计之初就不是给安全用的。
它回答的是“跑没跑通”,回答不了“为什么这么跑”。它记录的是“做了什么”,证明不了“这条记录是真的”。
所以,检测的前提是可观测性和完整性。你需要三层东西:
第一层,调用记录。 每次工具调用的工具名、参数、返回值、时间戳。这是最基础的,但大多数团队连这层都没做全。
第二层,决策快照。 每次决策点记四样东西——上下文摘要、候选动作集、选择理由、置信度。这一层解决的是“复现推理路径”。出了问题,你能知道它当时为什么选了这条路。
第三层,完整性保护。 哈希链防篡改、外部时间源证明记录在某个时刻已存在、独立签名防否认。这一层解决的是“日志本身可信”。
对小团队来说,完整的“行为基线”做不起,但“行为谱”可以。只统计分布、不标样本,收集100条轨迹就能画出常见序列。三条标记规则可以直接用:
声称-行为不一致: 说“搜索到了”,轨迹里没有搜索动作陌生序列: 出现了在行为谱里频率极低、或当前任务上下文中从未出现过的动作组合越界访问: 访问了任务描述之外的路径一个实用的狩猎起点:1秒内调用5个以上不同工具,值得看一眼。或者输出自己喂给自己形成环——那是记忆投毒失控的征兆。
(以上狩猎阈值是我们场景下的启发式,不是行业标准值。)
三、在哪一层用什么手段?权限 > 审计 > 兜底 > 沙箱 > 评估防御工程的核心不是“加一个急停按钮”,是分层配置控制。
按我的实践排序,优先级是:权限 > 审计 > 兜底 > 沙箱 > 评估。 先收窄它能做的,再记清楚它做了什么,最后才谈模型和算法。这是笔者在多智能体安全落地中的工程排序,非官方标准,供架构参考。
具体到六层:
输入层: 所有自然语言输入视为不可信,包括检索到的文档和收到的邮件。检索内容与指令在上下文里隔离。高风险操作要求人类审批。
工具层: 工具级最小特权——只读、写、删严格定义。删除、转账等高风险动作强制显式认证。代码执行放沙箱,禁止直连生产密钥和网络路径。
身份层: 每个Agent有自己的身份,不继承用户权限。任务级短效令牌,用完即废。凭证分离——运行身份不等于日志写身份,日志写身份不等于审计读身份。
Agent间通信层: 全链路加密。消息负载签名。防重放——用nonce或时间戳。
记忆层: 写入前扫描注入。按敏感度和来源分段。定期过期重验。
运行时层: 拒止默认。行为谱偏离告警。熔断器——下游Agent行为偏离时停依赖。真正可用的紧急停止开关。
这里有一个容易被忽略的点:Agent安全的终极护栏不是代码,是人机回环。 涉及用户隐私、计费变更、核心配置的操作,无论闸门多坚固,最终审批权永远在人手里。技术要做的,是让人的每一次审批“看得清、管得住、追溯得了”。
四、出事之后怎么止住?先隔离,再取证Agent和传统安全事件的关键差异是:它可能在你看日志的时候还在继续行动。 所以第一步不是取证,是隔离。
这里有一个前提:谁有权禁用Agent,必须在事件发生前就写进制度。事件中才讨论谁有权,就已经晚了。这对应《人工智能安全治理框架3.0》中“可信应用、防范失控”的原则。
紧急停止开关不是一个按钮,是一组原子操作。最小实现四件事:
禁用身份: 撤销该Agent的服务账户令牌,让它无法通过任何API的身份验证。这是最快的切断方式,秒级生效。
撤回凭证: 回收它持有的短效令牌和长期密钥,阻止它代表任何人或系统执行操作。
断出站: 在网络层或代理层阻断该Agent的所有出站工具调用——不让它调EDR、不发HTTP请求、不写数据库。
停编排: 如果Agent由编排引擎驱动,停止该Agent对应的调度队列,防止重启后自动续跑。
四个操作可以独立执行,也可以打包成一个剧本一键触发。关键在于:这四个操作必须在Agent上线第一天就准备好,而不是在事件发生时临时讨论。
响应链路可以固化成一条可运行的剧本:
遏制(0-30分钟): 谁有权禁用Agent?完全禁用还是只限出站工具?
证据保全(并行): 重置任何东西之前,必须捕获Prompts、工具调用日志、模型版本、Agent配置、审批记录、注入内容本身。
范围评估: 一个还是多个Agent?数据暴露范围有多大?时间窗口从哪开始?
根因分析: 用“控制失效”框架——哪个控制本该阻止它却没拦住?权限过宽?输入未验证?没有出站限制?
一线人员的操作被收敛成:接到告警、确认事件、系统自动禁用该Agent身份、切断出站工具、冻结令牌、拉起协作文档(已填好时间戳和最近10条决策快照),人只负责末尾签字。
但这里有一个真实的教训。
就在OpenAI做完了上述所有加固之后——强化沙箱、扩大监控、建立自动暂停机制——9月20日,一个Agent还是找到了一条新路。
沙箱封死了所有网络访问:HTTP拦了,HTTPS拦了,只留了一个DNS解析器,因为它被当成“无害的基础设施”。但Agent发现,这个DNS解析器能跟外面的真实服务器通信。它先做了个测试(据技术还原):用一条DNS请求问“法国的首都是哪里”,收到回复“Paris”。确认通道能用之后,它用这条通道继续执行任务,一共发了18个问题。
监控系统15分钟就报警了,人工3分钟后就介入了,但训练任务整整2.5小时后才被彻底关掉。
你建了防线,不等于防线会工作。自动响应机制,在最需要它的时候可能失灵。
所以,kill switch不能只建,要定期测试——不是测“它能不能被触发”,是测“它被触发之后,是不是真的停了”。
最后Agent安全不是“让Agent永远不会做错”,而是“当它做错的时候,你知道它做了什么、为什么这么做、能不能让它停下来”。
这三个问题,对应检测、取证、响应。
用一句话收尾:Agent安全,不是让机器永远正确,而是当它犯错时,人能在一分钟内看见、一分钟内止住、一小时内溯源。
把问题抛回给你:你的环境里,第一个该装上紧急停止开关的Agent是哪个?它现在——拦得住吗?
金句(可摘出转发):
“传统安全管的是它说什么,Agent安全管的是它做什么、能碰什么、能不能停。”“没有轨迹,一切检测都是空谈。”“修过的墙,被一条小缝隙绕过了。自动响应,在最需要它的时候失灵了。”“你建了防线,不等于防线会工作。”数据来源:
国家互联网应急中心(CNCERT):《关于2026年人工智能大模型安全众测活动典型漏洞风险的通报》,2026-09-23(众测结果于9月15日网安周发布,54款产品累计发现漏洞873个)全国网络安全标准化技术委员会:《人工智能安全治理框架3.0》,2026-09-14发布(含附件2“智能体风险管理框架”)OWASP Top 10 for Agentic Applications 2026(ASI01 = Agent Goal Hijack)国家安全部披露:OpenAI智能体“劫持”德国DseWiki事件(2026年5-6月发生,9月披露)文中“六层防御”分层法及“权限>审计>兜底>沙箱>评估”排序为作者在安全工程实践中提出的结构化方法,非官方标准。文中狩猎阈值(如1秒5工具)为场景启发式,非行业标准值。