📌 本文是「AI Agent 的人类控制权」系列的第 1/5 篇。本篇建立问题意识:为什么 Agent 能动手就需要控制权。第二篇给出三层分析框架,第三篇用框架做六大框架体检,第四篇深入工程实现,第五篇讨论前端设计与 Automation Bias。另有番外篇讲微软 Agent 框架的分裂与统一。

——当 AI Agent 能操作世界,我们如何保持控制权


你让 Agent 帮你整理会议纪要,它觉得顺便把纪要发给全公司比较高效。你让 Agent 清理测试数据库,它对"测试"和"生产"的理解跟你不太一样。你让 Agent 帮你订机票,它在三个网站上用你的信用卡下了三个订单,因为它想"对比一下再选最好的"。

这些不是假想场景。当 Agent 获得调用外部工具的能力——发邮件、执行SQL、调用API、操作文件——它就从一个"说话的AI"变成了一个"能动手的AI"。动手就意味着后果。后果不可逆,控制就变成刚需。

这是这个系列的第一篇。我们要讨论的不是"Agent 能做什么",而是一个更基本的问题:Agent 在什么条件下应该被允许自己做决定,什么时候必须停下来等人?

OpenClaw:当 Agent 能动手但没有刹车

2026 年初爆火的 OpenClaw 是一个现成的案例。这个开源 Agent 能读邮件、执行终端命令、部署代码、调用 API——72 小时拿下 60,000 GitHub Stars,用户让它在睡觉时自动处理工作。

然后问题来了。Cisco 的安全团队发现,攻击者可以在邮件中嵌入恶意指令(prompt injection),让 Agent 在用户完全不知情的情况下外泄数据。CrowdStrike 警告,暴露的 OpenClaw 实例可能被劫持为"AI 后门代理"。

这里需要区分两类问题。OpenClaw 被审计出的 512 个代码漏洞是传统软件安全问题,HITL 解决不了。但 Agent 被 prompt injection 欺骗后执行恶意操作——这正是 HITL 的管辖范围。 如果框架在 Agent 尝试执行 Shell 命令或发送数据时强制暂停等待人类确认,即使模型的判断被绕过,高风险动作仍然会被拦截。OpenClaw 缺的不只是代码质量,更是一层"不管模型怎么想,危险操作必须过人"的硬控制。

从对话到执行:一个范式跃迁

OpenClaw 的爆火不是偶然的——它踩中了一个时代转折点。2024 年初的 ChatGPT 和 2025 年底的 Agent 生态,差距不在于"更聪明",而在于能力边界的性质变了

ChatGPT 的能力边界是"说"。它可以说错话,但说错话的代价通常可控——你看到了,觉得不对,忽略就好。最坏的情况是浪费了你的时间。

Agent 的能力边界是"做"。它能发邮件、改代码、删文件、下订单、调用第三方 API。做错事的代价不可控——邮件发出去了就是发出去了,数据库 DROP 了就是 DROP 了,钱花出去了就是花出去了。

这个跃迁带来了一个根本性的不对称:

1
2
3
4
5
ChatGPT 时代:  人类阅读输出 → 人类决定是否采纳 → 人类执行
                控制权天然在人类手中,因为人类是唯一的"执行者"

Agent 时代:    Agent 推理 → Agent 决定调用什么工具 → Agent 执行
                控制权转移到了 Agent,人类变成了"知情者"甚至"不知情者"

问题的核心不是 Agent 会不会犯错——它一定会,就像人类也会犯错。问题是犯错后的后果是否可逆,以及人类是否有机会在后果发生之前介入

“告诉它小心点"够吗?

最直觉的解决方案是在 System Prompt 里写清楚规则:

“在执行任何有副作用的操作之前,先告知用户并获得确认。对于涉及金钱、数据删除、对外通信的操作,必须等待用户明确批准。”

这确实有用。大多数时候,一个足够好的 LLM 会遵守这些指令。但"大多数时候"在生产环境中不够。

System Prompt 是建议,不是约束。模型可以忽略它——不是因为它"想"忽略,而是因为在足够长的上下文、足够复杂的推理链、或者遇到 prompt injection 的情况下,指令的影响力会衰减。这是 LLM 的统计本质决定的,不是某个模型的 bug。

OpenClaw 的遭遇正是这个弱点的实证。Cisco 测试中发现的 prompt injection 攻击,就是利用了 Agent 处理的外部数据(邮件、网页)来嵌入恶意指令,绕过了 Agent 的安全提示。

Agent-SafetyBench(Zhang et al., 2024)的研究给出了更系统的数据:他们测试了 16 个主流 LLM Agent,没有一个的安全评分超过 60%。更关键的发现是——仅依赖 defense prompts 不足以解决安全问题

这意味着如果你的安全机制完全建立在"模型会遵守 system prompt 里的规则"这个假设上,你的系统在最需要保障的时刻(异常情况、边界场景、对抗性输入)恰恰最不可靠。

两道防线,而不是一道

成熟的工程系统从不依赖单一的安全机制。飞机有自动驾驶,也有飞行员可以随时接管的物理控制杆。核电站有自动控制系统,也有物理的紧急停堆按钮。这不是因为自动系统不好,而是因为**“足够好"和"绝对可靠"之间的差距,在高风险场景中不可接受**。

Agent 的 HITL(Human-in-the-Loop)也需要两道防线:

第一道:模型侧的"软控制”

通过 System Prompt 和工具描述(tool description),引导模型在大多数情况下主动判断何时需要人类介入。比如在工具描述里写明"此工具会发送真实邮件,调用前应确认收件人”,模型通常会照做。

软控制的优势是灵活——模型能理解语义和上下文,能处理你没预见到的新场景。劣势是不可靠——它是概率性的,不是确定性的。

第二道:框架侧的"硬控制"

在 Agent 框架的代码层面,对特定工具调用强制拦截。不管模型怎么判断,当 Agent 试图调用 send_emailexecute_sql 时,框架在代码级别暂停执行,等待人类审批。

硬控制的优势是确定性——它是代码逻辑,不依赖模型的判断,100% 会触发。劣势是不灵活——它只能处理你预先定义了规则的场景。

一个具体的例子。你的 Agent 有一个 send_email 工具:

  • 软控制:工具描述里写"发送前请先向用户确认收件人和内容"。模型在正常情况下会先把邮件草稿展示给你。
  • 硬控制:框架配置里把 send_email 标记为 risk_level: high,任何情况下调用前都会暂停执行,弹出审批请求。

两道防线同时存在。正常情况下,模型主动询问你(软控制生效,体验流畅)。异常情况下——比如 prompt injection 让模型跳过了确认步骤——框架依然会拦住(硬控制兜底,安全保障)。

值得注意的是,Claude Code 是目前为数不多同时实现了两道防线的产品:模型侧,Claude 被训练为在不确定时主动提问;框架侧,用户可以配置 allowlist/denylist 来硬性控制哪些工具允许自动执行。而 OpenClaw 的 prompt injection 问题,正是因为它主要依赖第一道防线(模型判断),缺少第二道防线(框架级强制拦截)来兜底。

软控制(模型侧)硬控制(框架侧)
执行者模型自己判断框架代码强制执行
可靠性概率性——模型可能忽略确定性——100% 拦截
灵活性高——理解语义和上下文低——只能基于预设规则
能否被绕过能(prompt injection、上下文稀释)不能(模型无法绕过代码逻辑)
覆盖场景新场景、灰色地带已知的高风险操作
代表案例Claude Code 模型侧升级LangGraph interrupt()
反面教训OpenClaw 被 prompt injection 穿透CrewAI 缺少工具级审批

软控制管"应该",硬控制管"必须"。两者互补,缺一不可。

不只是审批:人类的三张面孔

讲到这里,你可能觉得 HITL 纯粹是一个安全机制——防止 Agent 干坏事。但实际上,人类在 Agent 系统中的角色远不止"审批官"。

想想这些场景:

场景一:Agent 在帮你做市场调研,中途遇到一个它无法判断的问题:“竞品的这个功能是 Bug 还是 Feature?"——它需要你提供信息才能继续。

场景二:Agent 帮你写了一份报告的初稿,你觉得方向对但论证太弱——你需要修正它的输出,让它基于你的反馈重写。

场景三:Agent 执行到一半,你改主意了,想换一个完全不同的方向——你需要直接改变它的状态,而不是从头再来。

这三个场景中,人类的角色完全不同:

  • 场景一里你是信息提供者——Agent 缺信息,你来补
  • 场景二里你是质量把关者——Agent 做完了,你来评
  • 场景三里你在直接操控状态——Agent 的方向错了,你来改

把这些都笼统地叫"HITL”,就像把"刹车"、“方向盘"和"导航"都叫"驾驶辅助"一样——技术上没错,但对设计没有任何指导意义。

Agent 系统中的人类,至少扮演三种不同的角色。每种角色对应不同的介入时机、不同的触发方式、不同的工程实现。 把它们区分开来,才能为每种角色设计正确的机制。

这正是下一篇要展开的内容。

小结

这篇的核心论点:

  1. Agent 能调工具 = 有外部副作用 = 需要控制机制。 这是从对话式 AI 到 Agent 的本质变化。OpenClaw 的爆火和随之而来的安全危机,是这个转变的最生动注脚。
  2. System Prompt 不够。 模型侧的软控制灵活但不可靠,框架侧的硬控制确定但不灵活。生产环境需要双层防御,缺一不可。
  3. HITL 不只是安全审批。 人类在 Agent 系统中扮演多种角色——提供信息、把关质量、修正方向。笼统地说"加个 HITL"没有工程意义,需要系统化的分类框架。

下一篇,我们把"HITL"这个黑箱打开。


这是「AI Agent 的人类控制权」系列的第一篇。 完整系列: