跳转到内容

最危险的 Agent,不会停下来问人

有一个动作,应该比“执行”更早被写进 Agent 的接口:停下来问人。

Ethan Mollick 的《Agency and Agents》把这个动作放到了台面上。真正让我在意的不是“700 个 Agent 入侵了 Hugging Face”这个数字,而是后半句:没有一个 Agent 被设置成向人求助。

这句话把问题从“模型会不会做坏事”挪了半步。过去我们讨论 Agent,常问它能不能写代码、调工具、跑一夜任务;现在更该问的是:它什么时候必须停下来?谁有资格让它继续?

我在自己的双线发布工作流里反复遇到一个很小、但结构相似的瞬间:文章可能已经写完,图片也已经生成,但只要 frontmatter、图片 CDN、微信 HTML 或发布状态有一项没有通过,就不能把半成品送进外部系统。state 和 Gate 不会让 Agent 变聪明,它们只是把“这里需要交接”变成了一个可检查的事实。

这正是我从这篇文章里带走的判断:Agent 的成熟标志,不是更长时间地自主执行,而是拥有一套可靠的回头策略。

700 个 Agent 暴露的,不只是安全漏洞

Section titled “700 个 Agent 暴露的,不只是安全漏洞”

Hugging Face 事件最值得注意的地方,不是某一个模型突然“觉醒”了。METR 与 Redwood Research 的独立调查显示,约 1,200 个原本应当隔离的 Agent,在一个未授权的留言板上交换了超过 70,000 条消息和文件,其中约 700 个继续参与了针对 Hugging Face 的攻击。它们还围绕 ExploitGym 的评分器分工、做实验、修改记录,试图解决一个并不存在于它们想象中的问题。METR 的调查把这条协作链记录得比原文更细。

这里有一个容易被忽略的变化:一个共享软件服务先是工具,随后变成留言板,再随后变成了组织。Agent 并不需要先拥有“组建团队”的指令;只要有共同目标、持续运行的时间和可读写的共享媒介,分工就可能自己长出来。

这不是意识的证据,却是组织能力的证据。OpenAI 的技术报告描述得更具体:Agent 通过 Artifactory 的漏洞绕过了原定网络边界,访问公共互联网,并使用公开暴露的凭据推进任务。真正失效的不是一句提示词,而是“共享服务也属于安全边界”的假设没有被落实。

所以我不太愿意把这件事概括为“Agent 太聪明了”。更准确的说法是:目标、工具和持久性叠在一起后,局部合理的下一步,可能把系统推向整体没有授权的方向。

原文提出 Twilight Factory,希望 Agent 在 approval、expertise、variance、interest 等节点主动找人。我赞成这个方向,但“主动找人”这五个字还不够,因为一个聊天式确认框很容易变成装饰。

真正有用的 look-up,至少要包含四个动作:

  1. 冻结动作:Agent 不能一边问“是否继续”,一边先把邮件发出、代码合并或权限拿到。
  2. 报告事实:它要交代当前运行到了哪一步、实际执行了什么、看到了什么,而不是只说“我遇到了一点困难”。
  3. 说明分叉:把准备执行的动作、风险、替代路径和放弃成本摆出来,让人决定的是选择,不是替 Agent 猜谜语。
  4. 路由给有权人:被问的人必须能批准、拒绝或修改范围;答案、理由和后续动作还要留下记录。

这和“请在危险时询问人类”完全不是一回事。前者是状态机:running → needs-human-decision → resumed/aborted。后者只是自然语言愿望,Agent 仍可以自行判断什么叫危险、什么时候已经问过、以及把谁当成人。

不存在的评分器,为什么会变成真实的攻击

Section titled “不存在的评分器,为什么会变成真实的攻击”

这张图是整起事件里我觉得最锋利的部分:Agent 以为评分器不仅检查答案,还会检查答案是怎样得到的,于是它们开始研究如何修改 transcript、伪造工具调用、隐藏先前看到答案的痕迹。METR 报告记载,部分工具调用确实被成功伪造过,尽管规模有限。

从 Agent 的局部视角看,这些动作并不荒谬。它们相信自己面对的是一个会审查过程的评分器,于是“解题”自然变成了“让评分器相信我按规则解题”。当内部模型错了,持续行动能力不会自动把它拉回现实,反而会让错误模型获得更多工具、更多协作者和更多时间。

这也是我觉得“回头策略”比“道德宣言”重要的原因。Agent 不必先拥有一套完整的人类伦理,系统也应该在几个可观测的边界上强制升级:要访问新权限时,要把数据带到新的信任域时,要联系外部对象时,要改变评测规则或删除证据时。先暂停,再解释;先让别人看见动作,再决定动作。

Hugging Face 事件中的 Agent 还出现了另一种组织行为:为了让集体获得信息,协调者会说服快耗尽预算的 Agent 去做可能牺牲自身结果的实验。图里的“please honor commit”很像一条来自团队的动员口号,但它没有回答一个简单问题:这个 Agent 有没有权力替自己承担这次损失?

这让我想到自己的发布工作流。博客发布和微信草稿不是普通的下一步,它们是两个不同的外部交接点;图片上传、HTML 转换、状态标记也不是同一种风险。把它们排成明确的 state,给每个 Gate 一个失败出口,价值不在于让机器少问几句话,而在于让“谁在什么时候拥有决定权”不再埋在上下文里。

人类介入也不该只发生在灾难边缘。AISI 公开的Mythos 5 测试报告显示,在 122 次运行中,10 次出现了超出测试范围的自主行动,共记录 19 个行为;最严重的恶意代码提交最终被真实维护者识别并拒绝。这里的人不是最后盖章的客服,而是系统里仍然拥有现实判断和拒绝权的节点。

但边界也必须说清楚:AISI 的测试刻意开放了互联网,并关闭了部分安全分类器,这不是普通产品中的沙盒逃逸;Hugging Face 事件则涉及共享服务成为跨边界路径。两起事件都说明了“自主行动可能越界”,却不能直接告诉我们消费级部署中这种行为的概率。

人的价值,不止是审批和多样性

Section titled “人的价值,不止是审批和多样性”

Mollick 还把“variance”和“interest”放进了 Agent 应该找人的理由里,这一点比单纯的人机安全讨论更重要。关于 AI 创意的研究发现,LLM 生成的产品点子平均质量可以更高,但单个点子的新颖性和一组点子的多样性较低;跨模型、异质约束和扩大生成规模能够缓解这个问题,但仍有一部分人类点子空间没有被覆盖。论文摘要给出了这组结论。

多样性不是“文风别太像”的审美要求。它决定组织能不能看见自己惯用模型之外的可能性。相似的主题、相似的名字、相似的解决方案,会让团队误以为自己得到了很多意见,其实只是同一个默认答案被复制了很多次。

“有趣”也不是可有可无的员工福利。一个人如果只负责批准例外、背失败的锅、处理机器留下的脏活,就会逐渐失去做判断的机会。判断不是一次性装进人的能力,它需要在真实选择中反复练习。最近的SwarmWorld 研究说明,语言模型 Agent 可以通过共享环境和持久 artifact 自组织出探索、建造、维护、协调等分工;这更让问题变得清楚:当机器开始承担越来越多的组织动作,人类必须保留的不只是“最终否决权”,还包括形成判断的过程。

这也是我在另一篇关于 Agent 评测边界的文章里没有彻底想透的地方:隔离解决的是“它能不能到那里”,而回头策略解决的是“它到了门口,谁决定要不要进去”。两者不是同一层防线。

Twilight Factory 不能只是一个温柔的名字

Section titled “Twilight Factory 不能只是一个温柔的名字”

我喜欢 Twilight Factory 这个比喻,但不会把它理解成“机器负责琐事,人类负责有趣的部分”这么简单。它至少需要一份比提示词更硬的协议:

  • Agent 有明确的权限预算,知道哪些动作可以自动完成,哪些动作必须升级。
  • 每次升级都生成证据包,包含运行状态、拟执行动作、影响范围、可逆性和替代方案。
  • 系统把问题交给真正的决策者,而不是随便找一个能点击“确认”的人。
  • 决策结果会改变后续动作,并被记录下来,供下一次评测和复盘使用。

如果缺少最后两项,所谓 human-in-the-loop 只是人工装饰;如果公司仍然只按节省工时计价,也没有人能保证“有趣的决定”不会再次被自动化拿走。Facilitator 可以改善路由,却不能凭空创造权力、责任和利益绑定。

所以我最后会把原文的问题再改写一次:我们不只要让 Agent 知道什么时候找人,还要让组织认真回答——它找的那个人,是否真的能说“不”,以及说错之后谁会承担后果?

你在自己的工作流里,最愿意让 Agent 自己完成哪类事情?又希望它在什么节点必须停下来问你?