人机协作
wesclaw 中的人机交互审批(Human-in-the-Loop,简称 HITL)机制让 AI 在关键操作节点暂停执行并请求你的确认或指导。
概述
HITL 是 wesclaw 安全运行的重要机制。AI 在以下场景会暂停并等待你的输入:
- 浏览器等待用户操作 — AI 需要你在浏览器中完成登录等人工操作
- 循环检测求助 — AI 检测到可能陷入重复循环,请求你的指导
- 错误连续发生 — 工具调用连续失败,AI 请求你介入
浏览器等待用户操作
什么时候会触发
当 AI 在执行浏览器自动化任务时遇到需要人工介入的情况:
- 需要登录的网站(输入用户名密码、扫码登录等)
- 需要人机验证(CAPTCHA)
- 需要双因素认证(2FA)
- 需要确认敏感操作(支付、删除等)
用户交互流程
-
AI 在对话中显示一条 HITL 请求消息:
🔒 需要你的操作 请在浏览器中完成登录操作。 完成后点击"继续"按钮。 [继续] [取消] -
你在浏览器中完成所需操作(如登录)
-
点击"继续"按钮,AI 会恢复自动化任务
-
如果不需要继续,点击"取消"终止任务
工作原理
wesclaw 内置了 browser_wait_for_user 安全阀,这是一个始终启用的 HITL 工具:
- 在 Cell 启动时自动注册(AlwaysOn),无需手动配置
- AI 可以主动调用此工具暂停浏览器自动化
- 暂停期间浏览器保持当前页面状态
- 超时后自动终止(默认 60 秒)
注意事项
- 浏览器等待期间不要关闭浏览器窗口
- 超时后 AI 会收到超时通知并做出相应处理
- 在 SaaS 版本中,浏览器操作发生在服务端
CycleDetector 求助
什么是 CycleDetector
CycleDetector(循环检测器)是 wesclaw 引擎内置的安全机制,用于检测 AI 是否陷入了重复操作的死循环。
两阶段终止协议
当 CycleDetector 检测到潜在的循环时,会经过两个阶段:
第一阶段:自愈
AI 首次触发循环检测时:
- 引擎注入一条系统纠正消息
- 重置循环计数器
- 给 AI 第二次尝试的机会
此阶段用户无需介入,AI 会尝试自我纠正。
第二阶段:HITL 求助
如果 AI 在自愈后仍然触发循环检测:
- 引擎暂停 Run
- 向用户发送 HITL 求助请求
- 等待用户指导(最多 60 秒)
你会在对话中看到如下提示:
⚠️ AI 似乎在重复相同的操作
AI 在尝试以下操作时陷入循环:
- 连续读取同一个文件 (7 次)
你可以:
[提供指导] [终止任务]
如何回应循环求助
| 选项 | 说明 |
|---|---|
| 提供指导 | 输入新的指令帮助 AI 换一种方式解决问题 |
| 终止任务 | 停止当前 Run,保存已完成的工作 |
提供指导示例:
不要继续读取那个文件了,换一种方法:
请直接使用 grep 搜索关键词。
循环检测阈值
wesclaw 的循环检测配置了合理的阈值,不会对正常操作误报:
| 检测类型 | 警告阈值 | 终止阈值 | 说明 |
|---|---|---|---|
| 探索类工具 | 50 | 100 | read、grep、search 等只读操作 |
| 操作类工具 | 25 | 50 | edit、write、exec 等写操作 |
| 完全相同调用 | 4 | 7 | 参数完全一致的重复调用 |
这些阈值是针对编程和日常助手场景优化的,正常使用中不会触发。
审批超时处理
超时机制
所有 HITL 请求都有超时限制:
| 场景 | 默认超时 | 超时后行为 |
|---|---|---|
| 浏览器等待 | 60 秒 | 自动终止当前操作 |
| 循环检测求助 | 60 秒 | 自动终止 Run,保存进度 |
| 错误连续发生 | 60 秒 | 自动终止 Run |
超时后会发生什么
- Run 自动终止 — AI 停止当前任务
- 进度保存 — 已完成的工作不会丢失
- 状态通知 — 对话中显示超时终止的原因
- 可恢复 — 你可以在新的消息中继续之前的任务
超时提示
⏱ HITL 请求超时
AI 等待你的回应已超时。当前任务已终止。
你可以重新发送消息继续任务。
错误连续发生(ErrorStreak)
什么是 ErrorStreak
当 AI 调用工具连续失败达到一定次数(伪进展检测),引擎会暂停 Run 并请求用户介入。
触发条件
- 工具调用连续返回错误
- AI 持续重试但无法成功
- 例如:API 服务不可用、文件权限问题、命令执行失败等
用户交互
⚠️ 工具调用连续失败
最近的操作持续遇到错误:
- exec: command not found: python3
你可以:
[提供帮助] [跳过] [终止]
最佳实践
何时应该干预
- AI 明显在做无用功时
- 需要提供 AI 无法自主获取的信息时(如登录凭证)
- 任务方向偏离你的期望时
何时应该等待
- AI 正在进行正常的探索和尝试
- 第一阶段自愈正在进行
- AI 已经在调整策略
提供有效指导
好的指导应该是具体的、可操作的:
❌ "换一种方法"(太模糊)
✅ "不要使用 curl,改用 wget 下载文件"
❌ "这样不对"(没有方向)
✅ "那个 API 的认证方式是 Bearer Token,请在 Header 中添加 Authorization"
HITL 与治理的关系
HITL 机制是 wesclaw 安全治理体系的一部分。不同于治理策略(Governance)自动拦截危险操作,HITL 是 AI 主动请求人类参与的机制:
| 机制 | 触发方 | 用途 |
|---|---|---|
| Governance(治理) | 引擎自动 | 拦截危险命令(如 rm -rf /) |
| HITL(人机交互) | AI 主动或引擎检测 | 请求用户确认或指导 |
| 循环检测 | 引擎自动 | 防止 AI 死循环 |
三者协同工作,确保 AI 在安全可控的范围内运行。