人机协作

wesclaw 中的人机交互审批(Human-in-the-Loop,简称 HITL)机制让 AI 在关键操作节点暂停执行并请求你的确认或指导。


概述

HITL 是 wesclaw 安全运行的重要机制。AI 在以下场景会暂停并等待你的输入:


浏览器等待用户操作

什么时候会触发

当 AI 在执行浏览器自动化任务时遇到需要人工介入的情况:

用户交互流程

  1. AI 在对话中显示一条 HITL 请求消息:

    🔒 需要你的操作
    
    请在浏览器中完成登录操作。
    完成后点击"继续"按钮。
    
    [继续] [取消]
    
  2. 你在浏览器中完成所需操作(如登录)

  3. 点击"继续"按钮,AI 会恢复自动化任务

  4. 如果不需要继续,点击"取消"终止任务

工作原理

wesclaw 内置了 browser_wait_for_user 安全阀,这是一个始终启用的 HITL 工具:

注意事项


CycleDetector 求助

什么是 CycleDetector

CycleDetector(循环检测器)是 wesclaw 引擎内置的安全机制,用于检测 AI 是否陷入了重复操作的死循环。

两阶段终止协议

当 CycleDetector 检测到潜在的循环时,会经过两个阶段:

第一阶段:自愈

AI 首次触发循环检测时:

  1. 引擎注入一条系统纠正消息
  2. 重置循环计数器
  3. 给 AI 第二次尝试的机会

此阶段用户无需介入,AI 会尝试自我纠正。

第二阶段:HITL 求助

如果 AI 在自愈后仍然触发循环检测:

  1. 引擎暂停 Run
  2. 向用户发送 HITL 求助请求
  3. 等待用户指导(最多 60 秒)

你会在对话中看到如下提示:

⚠️ AI 似乎在重复相同的操作

AI 在尝试以下操作时陷入循环:
- 连续读取同一个文件 (7 次)

你可以:
[提供指导] [终止任务]

如何回应循环求助

选项说明
提供指导输入新的指令帮助 AI 换一种方式解决问题
终止任务停止当前 Run,保存已完成的工作

提供指导示例:

不要继续读取那个文件了,换一种方法:
请直接使用 grep 搜索关键词。

循环检测阈值

wesclaw 的循环检测配置了合理的阈值,不会对正常操作误报:

检测类型警告阈值终止阈值说明
探索类工具50100read、grep、search 等只读操作
操作类工具2550edit、write、exec 等写操作
完全相同调用47参数完全一致的重复调用

这些阈值是针对编程和日常助手场景优化的,正常使用中不会触发。


审批超时处理

超时机制

所有 HITL 请求都有超时限制:

场景默认超时超时后行为
浏览器等待60 秒自动终止当前操作
循环检测求助60 秒自动终止 Run,保存进度
错误连续发生60 秒自动终止 Run

超时后会发生什么

  1. Run 自动终止 — AI 停止当前任务
  2. 进度保存 — 已完成的工作不会丢失
  3. 状态通知 — 对话中显示超时终止的原因
  4. 可恢复 — 你可以在新的消息中继续之前的任务

超时提示

⏱ HITL 请求超时

AI 等待你的回应已超时。当前任务已终止。
你可以重新发送消息继续任务。

错误连续发生(ErrorStreak)

什么是 ErrorStreak

当 AI 调用工具连续失败达到一定次数(伪进展检测),引擎会暂停 Run 并请求用户介入。

触发条件

用户交互

⚠️ 工具调用连续失败

最近的操作持续遇到错误:
- exec: command not found: python3

你可以:
[提供帮助] [跳过] [终止]

最佳实践

何时应该干预

何时应该等待

提供有效指导

好的指导应该是具体的、可操作的:

❌ "换一种方法"(太模糊)
✅ "不要使用 curl,改用 wget 下载文件"

❌ "这样不对"(没有方向)
✅ "那个 API 的认证方式是 Bearer Token,请在 Header 中添加 Authorization"

HITL 与治理的关系

HITL 机制是 wesclaw 安全治理体系的一部分。不同于治理策略(Governance)自动拦截危险操作,HITL 是 AI 主动请求人类参与的机制:

机制触发方用途
Governance(治理)引擎自动拦截危险命令(如 rm -rf /)
HITL(人机交互)AI 主动或引擎检测请求用户确认或指导
循环检测引擎自动防止 AI 死循环

三者协同工作,确保 AI 在安全可控的范围内运行。


下一步