概念●●○4 分钟 · +40 XP
Human-in-the-Loop(人工介入):agent 流程里,人应该在哪里把关
并不是 agent 的每一步都应该自动运行。Human-in-the-loop 决定的是:哪些地方需要人有意识地把关。
核心理念
Human-in-the-loop(简称 HITL,人工介入)的意思是:在 agent 流程的某些特定节点,系统会暂停下来,等你做出决定,而不是径直往下走。Agent 依然能行动,但不是无所不能。
哪些地方适合设检查点
- 不可逆操作之前:删除、付款、给第三方发邮件、生产环境部署。
- 遇到不确定的情况时:agent 碰到问题时应该停下来,而不是瞎猜。
- 大计划制定之后、正式执行之前:先展示计划,等待确认。
- 最后作为审阅:即便其余部分都自由发挥,上线前也要做最后一次检查。
全自动确认(Auto-Accept)的风险
有些工具几乎会自动确认每一个操作。这样确实省时间,但 agent 犯的任何错误也会毫无阻拦地一路执行下去。Anthropic 自己写的“构建 agent”指南明确建议:让 agent 在检查点或遇到阻塞时暂停,等待人工反馈——更高的自主性同时也意味着更高的成本,以及错误不断累积、越滚越大的风险。
经验法则
一个操作越难撤销,在它之前设置人工检查点的理由就越充分。常规的、容易核实的步骤,则可以自动运行。
示例
概念示例:一个 agent 要执行一个数据库迁移脚本。流程设计是:生成脚本 → 展示计划和 diff → 等待确认 → 只有在收到“是”之后才真正执行。如果没有这个检查点,agent 一旦认为迁移脚本写好了,就会自动执行迁移。
🛠️ 练习——自己动手试试
为你自己(或一个虚构)的 agent 设置,确定哪些操作需要人工检查点。
- 列出你的 agent 能执行的所有操作。
- 给每个操作打标记:可逆还是不可逆,一旦出错潜在损害有多大。
- 为每一个不可逆/有风险的操作设置一个检查点,这个检查点必须在执行之前生效,而不是之后。
- 检查这个检查点是不是靠技术手段强制执行的(比如权限规则),还是只写成了 prompt 里的一句请求——如果是后者,把它改过来。
✅ 自查清单
- ☐ 你有没有为每个操作标注它是可逆还是不可逆的?
- ☐ 每个检查点是不是都设在执行之前,而不是之后?
- ☐ 每个检查点是不是都靠技术手段强制执行,而不只是 prompt 里的一句请求?
小测验
根据 human-in-the-loop 原则,在 agent 执行操作之前,人工检查点在什么时候最重要?
来源
- Anthropic Engineering: Building Effective Agents ↗ www.anthropic.com
- Claude Code Doku: Permissions ↗ code.claude.com
- MCP-Spezifikation: Tools (Security) ↗ modelcontextprotocol.io
- Google Cloud: What Is Human-in-the-Loop? ↗ cloud.google.com
- LangChain Docs: Human-in-the-Loop ↗ docs.langchain.com