技术 · 深入

它跑偏的时候,谁来按停?

审计清单管「装之前」,运行时的护栏管「跑起来之后」
多数 agent 的安全机制装在了错误的时间点上 —— 上线前的清单、装插件时的权限、调用前的审批,都只管「开跑之前」。而 2026 年下半年这一轮的变化,恰好把重点挪到了跑起来之后:英伟达发布开放智能体安全平台(OpenShell + Sentry 参考系统),覆盖智能体从测试到部署的全生命周期,并明确可在检测到智能体偏离任务时于毫秒内实现网络层隔离或终止;同期《人工智能安全治理框架 3.0》把「上线后的动态风险监测」写进安全基线,《智能体运行时安全技术要求》团体标准随后启动 —— 监管口径也从「内容安全(说什么)」迁到「行为安全(做什么)」。这一页做的是:把这套东西落成你自己能建的三层运行时护栏。
方法 · 一图看懂
1
先把「偏离」定义出来 — 没有可判的偏离,任何熔断都是拍脑袋
2
三层检测:目标 · 轨迹 · 代价 — 各自看什么、各自会漏什么
3
三档处置:告警 · 隔离 · 终止 — 每一档都要事先写明触发条件
4
终止之后要能收尾 — 半途的副作用谁来清、回到哪个已知状态
5
把护栏写成不依赖模型的一段 — 判定放在 harness 侧,不放在提示词里
第一层:先把「偏离」定义成可判的东西
护栏的第一步不是选工具,是写清楚什么算偏离。可判的偏离只有三类:① 目标偏离 —— 它开始做的事与原始任务无关(去读与任务无关的目录、去调与任务无关的接口);② 轨迹偏离 —— 步数 / 工具调用次数 / 循环次数越过事先给的闸门,或连续 N 步没有产生任何状态改变;③ 代价偏离 —— token · 时间 · 外部调用量越过预算线。
⛔ 不要把「看起来不对」写进判据 —— 那是人读的形容词,harness 判不出来。凡是不能落成「某个计数 / 某个模式 / 某个白名单之外的动作」的,都不算判据。对外部系统而言还有一条最硬的定义:它试图访问不在授权清单里的目标 —— 这一条不需要理解任务就能判,因此是所有护栏里最可靠的一层。
第二层:三档处置,事先定死触发条件
处置档次要在设计时写好,而不是出事时临场决定:
① 告警 —— 偏离信号出现但未越界(例如工具调用量到预算的 60%)。动作 = 记一条结构化日志并继续;这一档的价值在于留下证据,因为多数事后复盘需要的正是「它在第几步开始不对」。
② 隔离 —— 已越过软阈值。动作 = 切断它的外部面(网络出口 / 写权限 / 外部 API),但保留进程与上下文;这一档对应英伟达平台所说的「网络层隔离」,好处是可回看:你能看到它被隔离那一刻在想什么。
③ 终止 —— 触到硬边界(越出授权目标、连续空转、代价超顶)。动作 = 停掉并冻结状态。
⚠️ 三档的共同前提是「检测不依赖模型自述」 —— 它说自己没跑偏没有用,判据必须来自你能观测的外部事实。
第三层:终止之后怎么收尾(最容易被跳过的一步)
终止只是把动作停下,它已经产生的副作用还在:写了一半的文件、发出去的请求、改了一半的配置、落在队列里的消息。所以护栏必须配一份收尾清单,逐条写明:① 哪些副作用是可回滚的(写到临时区 / 有事务 / 有快照)② 哪些是不可回滚的(已发出的对外请求、已扣的费、已发出去的消息)③ 半成品留在哪里、下一次从哪个已知状态重启。
一条通用的设计纪律:凡是不可回滚的动作,一律排到「终止点之前必须由人确认」的那一档;而可回滚的动作尽量让它去做 —— 这不是为了让它更敢做,而是为了让终止这件事真的有用。
原理 · 为什么有效
为什么「装之前的清单」不够,必须补一层运行时的护栏?因为前两类机制管的是「它有没有资格做」,管不到「它正在做什么」:权限审批解决的是「这个动作准不准做」,审计清单解决的是「这个配置安不安全」,而偏离不发生在这两处 —— 它发生在它被允许的动作之内,用一连串单独看都合规的步骤,累加出一个没人要的结果。
第二条原理是检测必须与推理层解耦:如果判定「有没有跑偏」这件事也交给模型自己,那它跑偏的时候判定也会跟着跑偏 —— 这正是「模型既可执行、又自证」的结构性弱点。把它放到 harness 侧(计数 · 白名单 · 预算 · 外部观测),护栏的可靠性就不再取决于模型当时的判断力。
第三条原理关于为什么要在毫秒尺度上处置:agent 的动作是连续的,一个已经越界的动作会立刻触发下一个;等一轮结束再看,看到的往往不是「一次越界」,而是「一串后果」。所以这一层要的不是更强的分析,是更短的反应链。
适用场景
适用:把 agent 接进真实系统(能读写文件 · 能调外部接口 · 能花钱)的人 · 跑无人值守或长时段任务的人 · 已经在做「装之前」的权限与审计、但没做过「跑起来之后」这一层的人 · 需要向合规/审计说明「运行时你是怎么管的」的人。
⛔ 不适用:只是在自己电脑上问几句、agent 没有任何外部动作的场景 —— 那时没有「偏离任务」可言,加了护栏只会让交互变重。
⚠️ 前提:愿意先把「什么算偏离」和「三档处置的触发条件」写成一张表;写不出这张表就去买/装工具,只会得到一堆看得见、判不出的日志。
自测 · 6 问
我能不能用一句话说清:这个 agent 的「原始任务」是什么,它的授权边界又在哪?
我能读出它当前在第几步 / 调了几次工具 / 花了多少 token吗 —— 还是只能等它说完?
有没有哪一类动作是它做之前必须由我确认的?这个清单是我写的,还是工具的默认值?
它越出授权目标的那一刻,系统里有没有任何东西会自动拦下来(不是我看日志才发现)?
终止之后,我能说出它已经产生哪些副作用、其中哪些回不去吗?
我的判据里有没有出现「看起来不对」「感觉不对」这类词?—— 有就等于没判据。
怎么上手 · 验证步骤
先只做一件事:挑一个会写文件的 agent,把「越出授权目录」定义成第一层判据,并只做最轻的那一档处置(告警 + 记日志)。跑三天,回看日志里它有没有试图走出去 —— 多数人在这三天里会第一次看见「它确实试过」。第二步再加预算闸门:给它一个步数上限与 token 上限,触线先告警不拦,观察两轮之后再决定要不要升到隔离档。顺序不要反:先有证据,再谈处置;先上熔断很容易把正常的长任务误杀,之后你会因为怕误杀而把护栏关掉,那就回到了原点。
自检动作:把你写的那张「偏离判据 + 三档触发条件」的表拿出来,逐条问一句「这一条能不能由一段不调用模型的代码判定出来」。能判定的留下,不能判定的划掉或改写;最后数一下还剩几条 —— 剩下 3~5 条就是一份能用的护栏,剩下 12 条基本是愿望清单。
[C级]英伟达开放智能体安全平台(OpenShell 开源软件 + Sentry 参考系统设计 · 覆盖测试到部署全生命周期 · 检测到智能体偏离任务时可于毫秒内实现网络层隔离或终止 · 2026-09-28 发布) [C级]人民论坛网《筑牢国家网络安全屏障》(2026-10-02 · 引《人工智能安全治理框架 3.0》:针对智能体自主行动与跨系统数据交互划定安全基线,从训练数据审核 · 价值对齐评估到上线后的动态风险监测) [C级]通信世界《智能体安全迎来「强制时代」:全球首部国标立项》(2026-10-03 · 风险范式从「内容安全(说什么)」迁到「行为安全(做什么)」· 《智能体应用安全基本要求》强制国标计划号 20263116-Q-252 · 《智能体运行时安全技术要求》2026-09-09 启动) [C级]百度百科「智能体安全」词条(标准与产品时间线:2026-07《智能体部署使用安全指引》· 2026-09-09《智能体运行时安全技术要求》与《智能体身份鉴别与授权技术框架》启动 · 2026-09-28 英伟达平台) 同类:拦住危险动作的那道钩子,自己崩了怎么办? · Agent安全审计清单
继续往下读
同级:拦住危险动作的那道钩子,自己崩了怎么办? 随机一篇