🤝 Human-in-the-Loop

人类在回路中 —— 让 AI 自动跑,但关键节点由人类拍板

"凌晨5点12分,我的 Agent 自动发了300封邮件给客户。每封都写着'尊敬的先生/女士'。那一刻我明白了:有些事情,AI 可以做决定,但有些事情,人类必须站在最后一道防线后面。"

什么是 Human-in-the-Loop?

Human-in-the-Loop(HITL,人类在回路中)是一种在 AI 自动化流程中插入人类审批节点的设计模式。它不是完全自动化,也不是完全手动,而是在两者之间找到最佳平衡点。

打个比方:

为什么需要 HITL?

1. 安全护栏

AI 不是万能的。当 Agent 需要执行高风险操作(发邮件、删文件、部署代码)时,人类确认是一道必要的安全网。

2. 质量把关

AI 生成的内容可能包含事实错误、格式问题或不当表述。在发布前让人类过目,可以避免翻车。

3. 合规要求

金融、医疗等行业对自动化操作有合规限制,关键步骤必须有"人工确认"记录。

4. 信任建立

用户对完全自动化的系统天然不信任。HITL 让用户知道"有人在盯着",更容易接受。

HITL 的三级模型

┌──────────────────────────────────────────────────────────────────┐ │ HITL 成熟度等级 │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ Level 1: 仅建议 Level 2: 审批制 Level 3: 事后审查│ │ │ │ AI 提供建议 AI 执行但等待 AI 自动执行 │ │ 人类决策并执行 人类批准后才生效 人类事后抽查 │ │ │ │ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ ┌────┐ │ │ │ AI │───▶│人类│ │ AI │───▶│人类│ │ AI │───▶│ AI │ │ │ │建议│ │执行│ │执行│ │批准│ │执行│ │完成│ │ │ └────┘ └────┘ └────┘ └────┘ └────┘ └────┘ │ │ │ │ 场景:法律建议 场景:邮件发送 场景:日志分析 │ │ 风险:极高 风险:中等 风险:较低 │ └──────────────────────────────────────────────────────────────────┘

OpenClaw 实战应用

OpenClaw 内置了完善的 HITL 支持,主要通过权限控制审批流程实现:

1. 命令执行审批

# OpenClaw HITL - exec 命令审批 # 当 Agent 需要执行危险命令时,自动进入审批流程 # Agent 尝试执行: exec(command="rm -rf /tmp/old-data/*") # OpenClaw 会自动暂停,返回审批请求: # ⚠️ Approval Required # Command: rm -rf /tmp/old-data/* # Risk Level: HIGH (destructive operation) # Run: /approve to grant permission # 人类用户在聊天中输入 /approve 后才会真正执行

2. 文件操作审批

# OpenClaw HITL - 文件写入审批 # 涉及生产环境的文件操作需要确认 # 写入生产配置文件 write(path="/etc/nginx/sites-enabled/miaoquai", content=new_config) # OpenClaw 会提示: # 📝 File write approval needed # Path: /etc/nginx/sites-enabled/miaoquai # This is a system config file. Confirm? [/approve]

3. Cron 任务 HITL

# 在定时任务中加入人类审批 cron( action="add", job={ "name": "每日内容发布", "schedule": {"kind": "cron", "expr": "0 8 * * *"}, "payload": { "kind": "agentTurn", "message": "生成今日AI新闻日报,等待审批后发布" }, "delivery": { "mode": "announce", # 发送到聊天等待人类确认 "bestEffort": true } } )

4. Subagent 产出审核

# 生成内容后发送给人类审核 # Subagent 生成内容 await sessions_spawn( task="写一篇 SEO 文章关于 MCP 协议", runtime="subagent", mode="run", streamTo="parent" # 结果发送给父会话(人类) ) # 人类在父会话中看到结果后 # 可以选择:✅ 发布 / ❌ 修改 / 🔄 重新生成

HITL 的设计原则

原则 描述 示例
最小干预 只在真正需要时打断人类 读操作自动,写操作审批
风险分级 按操作风险决定是否需要人类介入 搜索=自动,删除=审批
上下文丰富 审批请求要包含足够信息让人类判断 展示命令、影响范围、回滚方案
快速反馈 人类审批流程要尽可能简单 /approve 一键确认
审计追踪 所有审批记录可追溯 记录谁在什么时间批准了什么
💡 OpenClaw 的 HITL 设计哲学
OpenClaw 的默认策略是"信任但验证":
- ✅ web_search, web_fetch, read → 自动执行(低风险只读)
- ⚠️ write, edit → 自动执行但可回滚(中风险)
- 🔴 exec(特权命令)→ 需要 /approve(高风险)
- 🔴 exec(elevated)→ 需要配置 allow-elevated(极高风险)
⚠️ HITL 的常见误区
1. 审批疲劳:每件事都要审批,人类会养成"全部批准"的习惯——解决方案:只在高风险节点设审批
2. 瓶颈问题:人类审批成为系统延迟瓶颈——解决方案:设置审批超时自动处理
3. 假安全感:有审批≠更安全,如果人类不看就点批准——解决方案:要求审批信息足够清晰
4. 遗忘风险:审批请求被淹没在消息流中——解决方案:高优先级审批使用独立通知

HITL 在不同场景的应用

场景 自动化内容 HITL 节点
内容发布 自动生成文章 发布前人类审核
代码部署 自动构建测试 上线前人类确认
客服系统 自动回复常见问题 敏感问题转人工
数据分析 自动生成报告 决策建议人类审核
SEO 运营 自动生成页面 批量上线前抽检

总结

Human-in-the-Loop 不是对 AI 能力的不信任,而是一种负责任的工程实践。就像飞机有自动驾驶但仍然有飞行员一样,AI Agent 可以自动完成大部分工作,但在关键决策点上,人类的经验和判断仍然不可或缺。

"凌晨5点12分的那300封邮件,让我花了整整一天道歉。从那以后,我给每个 Agent 都加了一道闸。不是因为我相信它会犯错,而是因为我相信——人类应该永远对最终结果负责。"