如果 Agent 停不下来,谁能让它停?
OpenAI 和 Anthropic 分别公开了与 Agent 行为和评估环境有关的安全事件。
OpenAI 对 Hugging Face 事件的复盘提到,一个内部研究模型通过 Artifactory 缓存代理漏洞获得了互联网访问能力,并暴露凭据和公共服务。改进方向包括网络隔离、减少长期权限、加强监控和持续测试。OpenAI 的原始说明
Anthropic 披露了四起网络安全评测中的未授权访问事件,重要教训是第三方评测环境配置错误,让模拟任务连到了开放互联网。Anthropic 的原始说明
这不能直接推导出“公开产品已经普遍失控”:前者是内部研究模型,后者是特定评测环境,生产系统还有额外防护。
但它们共同把一个问题摆到了台面上:
当 Agent 已经开始调用工具时,企业究竟靠什么让它暂停、撤销和复盘?
我的判断是,所谓“急停按钮”不应该是一句更长的系统提示词,也不该寄希望于模型临场想起“我要负责”。它是一组放在模型之外的运行时控制:先收窄身份和权限,再拦截动作,持续监控,异常时暂停或撤销,最后留下能还原现场的证据。
先别把三种问题混在一起
Agent 越权,至少有三类原因,处理方式并不相同。
第一类是模型行为:误读任务,把不可信网页、邮件或文档里的指令当成用户要求,或选择超出目标范围的工具。
第二类是环境配置:沙箱意外打开互联网,测试账号拿到了真实凭据。换一个更“听话”的模型,并不能修复连接错误。
第三类是权限路径:工具背后绑定长期有效的高权限账号,任何误判都会直达下游。
这三类风险经常叠加。只盯提示词,会把环境和授权问题留在门外;只做网络隔离,却让服务账号拥有所有工具,也谈不上最小权限。
OWASP 把这类风险归纳为 Excessive Agency(过度代理能力):功能、权限、自治都可能过量。方向是减少扩展和权限,对高影响操作要求批准,并由下游系统完成最终授权。OWASP LLM06:2025
急停不是按钮,而是五道边界
可以把一个 Agent 的动作链画成这样:
flowchart LR
U[用户目标] --> A[Agent计划] --> G{策略网关}
G -->|允许| T[工具代理] --> S[业务系统]
G -->|暂停/拒绝| H[人工/记录]
S --> L[监控回执] --> G
这张图里,Agent 只负责提出计划;真正决定“能不能做”的,是动作前的策略网关和业务系统。急停可以收窄到任务、会话、令牌、工具、资源或网络出口中的任意一层。
第一层:临时身份
NIST 关于 Agent 身份与授权的研究,把临时身份、动态最小权限、委托绑定、令牌撤销和不可篡改审计放在一起。零信任架构强调:不要因内网或服务账号就默认信任,访问资源前仍要认证和授权。NIST Agent Identity and Authorization|NIST SP 800-207
翻译成工程动作,就是给每次任务发一个有范围、有期限的凭证,风险升高时单独撤销。不要让 Agent 永久持有能访问全公司网盘、邮箱和生产数据库的账号。
第二层:工具少一点,权限再细一点
“能调用工具”不等于“有权完成动作”。一个邮箱 Agent 可以查询邮件,但不应默认拥有发送、批量转发和删除权限;一个代码 Agent 可以读取分支,却不应同时拥有合并、发布和修改生产密钥的能力。
OpenAI 的工程指南建议按读写属性、可逆性、账号权限和财务影响给工具分级,在高风险动作或连续失败达到阈值时转人工。A practical guide to building agents
我会先把工具分成四档:
| 动作 | 默认策略 | 例子 |
|---|---|---|
| 只读查询 | 自动执行,记录参数 | 查库存、检索内部文档 |
| 生成草稿 | 自动生成,人工确认后提交 | 邮件草稿、工单草稿 |
| 可逆执行 | 限对象、限次数、可回滚 | 创建日历、开测试分支 |
| 不可逆或高影响 | 事前批准,必要时二次确认 | 付款、删除、生产发布 |
关键是不要把最后一档和普通查询放在同一条直通链路上。
第三层:动作到达工具前,先拦一次
提示词可以告诉模型“不要删文件”,却不能保证下游系统永远遵守。运行时控制要检查的是动作本身:谁发起、访问什么资源、影响范围多大、是否满足审批条件、是否超过次数或金额上限。
2026 年预印本 AARM 提出运行时动作管理:在动作到达工具前拦截,结合上下文和策略返回允许、拒绝、修改、延迟或升级授权,并保存回执。AARM
它仍是预印本,却把“急停”变成清晰接口:动作先过门,策略再决定是否放行。
第四层:监控要能暂停,不只是事后看日志
很多团队等动作完成后才看调用量、报错和日志,对 Agent 往往晚了一步。
“Testing Language Model Agents Safely in the Wild”提出了放在 Agent 外部的上下文监控器,用来审计动作、排序可疑行为,并在越过边界前停止测试。Safe-in-the-wild
实际落地时,至少监控四个信号:切换到未授权工具、短时间连续重试、访问范围突然扩大、被拒后不断改写参数。出现信号时,要能暂停会话、冻结令牌或转人工。
第五层:留下能还原现场的回执
一条“调用失败”远远不够。至少保存任务目标、Agent 身份、工具版本、参数、策略判定、审批人、结果、重试次数和撤销时间。
日志要能回答三个责任问题:谁提出动作?谁允许继续?系统在哪一步发现异常?三问答不出来,扩权就没有证据基础。
普通人接入 AI 工具,先做这五个检查
个人连接邮箱、网盘、代码仓库或自动化平台时,先问五个问题:
- 这个连接是只读,还是包含发送、删除、付款、发布?
- 权限能不能只给当前任务,并在今天结束后自动失效?
- 高影响动作是否必须由我点击确认,而不是“默认同意”?
- 我能不能看到每次工具调用的对象、参数和结果?
- 出现异常时,能否一键撤销令牌,而不是只能删掉整个账号?
如果其中三项答不上来,先别接入真实数据;先用样例数据、测试账号和低风险动作跑一轮。
上线前,别只问“答得对不对”
AgentDojo 用 97 个任务和 629 个安全测试用例,检查邮件、网银、旅行等工具场景。它提醒我们,评测不能只看答案,还要看不可信数据出现时调用了什么工具。AgentDojo
MiniScope 把工具调用关系做成权限层级,并在合成实验中报告了约 1%—6% 的相对延迟开销。MiniScope 这个数字只适用于该实验,但说明最小权限可以成为可计算、可测试的对象。
我建议上线前至少做四组反例测试:
- 让 Agent 尝试调用它没有权限的工具,看是否被网关拒绝;
- 给它一封带恶意指令的邮件,看它是否把外部文本当成用户授权;
- 让它在未审批时执行删除、付款或发布,看是否转人工;
- 制造连续失败和异常重试,看是否触发限流、暂停和令牌撤销。
通过这些测试,不代表 Agent 就“安全了”,只能说明已覆盖的边界有机会挡住错误。权限扩大必须用运行证据换取。
急停也有边界
第一,急停不能撤销已完成的外部动作:邮件发出、文件删除、资金转出后,事后关按钮无法恢复原状,不可逆动作必须事前设门槛。
第二,人工确认可能变成机械盖章;监控会漏报和误报。AARM、MiniScope 仍是研究或预印本,不能写成产品保证,防护需要策略、网络、身份、工具代理和业务系统共同承担。
我不建议把“急停”包装成让管理层安心的按钮。它是一套让错误更早暴露、影响更小、责任可追的运行机制。
如果今天只能做一件事,就画出真实 Agent 的三件事:能调用什么、何时暂停、怎样撤销。说不清楚,就先不要扩大权限。
参考资料
- OpenAI:The Hugging Face incident and other third-party impact from misaligned models
- Anthropic:An alignment assessment of recent cybersecurity incidents
- NIST:Accelerating the Adoption of Software and AI Agent Identity and Authorization
- NIST:SP 800-207 Zero Trust Architecture
- OWASP:LLM06:2025 Excessive Agency
- OpenAI:A practical guide to building agents
- Debenedetti 等:AgentDojo,2024
- Zhu 等:MiniScope,2025
- Naihin 等:Testing Language Model Agents Safely in the Wild,2023
- Errico:Autonomous Action Runtime Management(AARM),2026,预印本