智能体在凌晨 3 点呼叫我:触达人类工具的爆炸半径策略
当一个智能体因为循环处理一个格式错误的告警信号,在一小时内给你的值班人员发了四次传呼时,领导层终于意识到安全团队早已知晓的一件事:“工具访问权限”与“创造人工任务的能力”其实是同一种权限,而你在没有进行安全审查或产品归属权审查的情况下就授予了它。没有人关注“谁被允许在凌晨 3 点打扰人类”这个问题,因为根本没人把它当作一个问题。它被描述为一个 Slack 集成。
2026 年的智能体技术栈让这种故障模式的发生门槛变得极低。Anthropic 的 MCP 服务器、OpenAI 的 Agents SDK,以及各种厂商提供的操作工具,极大地缩短了“模型决定做某事”与“人类被吵醒”之间的距离。大多数团队部署这些集成的方式与部署数据库客户端如出一辙:定义一个 Token 作用域,引入 SDK,写一段系统提示词,然后发布。数据库客户端的爆炸半径是受影响的行数。PagerDuty 客户端的爆炸半径则是一个人的睡眠。
无人审计的权限
看看一个面向人类的工具实际上是如何安装的。工程师接入了 PagerDuty MCP 服务器,给智能体一个具有 incidents:create 权限的服务 Token,并在预发环境的故障上进行了测试。测试成功。发布。
审查的内容包括:OAuth 范围、API 契约,或许还有 PagerDuty 端的限流设置。未被审查的内容包括:在什么条件下智能体应该决定调用该工具,调用后的后果由谁承担,允许调用的频率,以及什么样的情况属于“智能体永远不该自主执行的操作”。集成清单上没有这些问题,因为它们不适合放在清单里。它们是披着基础设施配置外衣的产品归属权问题。
如今大多数智能体框架对工具只有两种模式:可用或不可用。在“模型拥有完全自主调用权限”与“模型完全看不见”之间没有中间地带。这种二元论对于 SQL 只读从库来说没问题。但对于下游影响对象是人类的工具来说,这完全搞错了方向。
当你按人为代价列出权限授予时,这种不对称性就显而易见了。读取 S3 存储桶:零代价。写入数据库行:代价低,且可逆。在 #general 频道发帖:消耗数百人/秒的注意力。传呼值班人员:一个人醒了。在 JIRA 提交任务:某人的积压工作增加了。给客户发邮件:客户关系发生了变动。集成 Token 将它们视为等同。但组织架构图并不这么认为。
当“爆炸”影响到人时,什么是“爆炸半径”
基础设施人员思考爆炸半径已经十年了——衡量单位是“我的系统坏了多少”。账户隔离、区域分区、熔断开关、百分比滚动发布。这个概念可以清晰地映射到计算和存储上,因为受影响的对象是可替代且可重建的。
面向人类的工具打破了这个模型。单位不再是容器或数据行,而是人的注意力。人是不可替代的。凌晨 3 点的传呼对值班人员造成的代价远高于下午 2 点的 Slack 消息,而一次误报对告警系统信任度的侵蚀,需要数周才能重建。“我们把你吵醒了,结果没事”这种事是没有回滚操作的。
因此,对于触达人类的工具,你需要追踪的维度与基础设施完全不同:
- 触达范围 (Reach):多少人,以及哪些人(是一个值班人员还是拥有 400 人的
#general频道) - 打扰等级 (Interruption tier):被动(频道发布)、主动(私信)、紧急(传呼)
- 可逆性 (Reversibility):副作用能否撤销,或者人类是否已经切换了上下文
- 累积压力 (Cumulative pressure):本次操作加上智能体之前对同一个人采取的最近六次操作
- 信任代价 (Trust cost):这类智能体操作的误报率,而非智能体的整体误报率
累积压力是团队最容易忽视的一点。单个智能体操作孤立来看似乎是合理的。但针对同一个人、在同一个小时内连续执行三次智能体操作,看起来就像是骚扰——即使每一次操作在个体层面都是正确的。策略层必须将接收者视为一个有状态的资源进行追踪,而不是将操作视为无状态的事件。
