多智能体系统中的“人机协作”(HITL):KaibanJS 方法

社区文章 发布于 2025 年 6 月 19 日

探索 KaibanJS 如何通过内置的“人机协作”(HITL)支持,实现动态、模块化和人性化的 AI 工作流。


引言:多智能体系统与人工监督

多智能体系统(MAS)—— 由相互协作的 AI 驱动的智能体集合——正在改变我们自动化复杂流程的方式。这些框架,也称为智能体编排工具,允许智能体协作委托、验证和完成任务。

流行的平台,如 CrewAILangGraphKaibanJS,都支持这种协作设计。然而,在实际应用中,完全自主并不总是理想的。涉及道德、合规性或细致判断的任务需要人工监督。这时,“人机协作”(Human in the Loop,HITL)的概念就应运而生了。

什么是 HITL?

“人机协作”(Human in the Loop)是指将人工输入嵌入自动化决策过程中的系统。在多智能体系统中,HITL 允许操作员:

  • 验证输出
  • 请求修订
  • 提供道德或领域特定的监督

实施模型

  • 手动验证检查点
  • UI 反馈面板
  • 任务状态路由
  • 完成后反馈周期

📊 领先多智能体系统框架中的 HITL 比较

框架 HITL 支持 主要功能 备注
CrewAI 基本(通过回调) 智能体暂停进行手动检查 回调式验证
LangGraph 强大(通过分支) 人机协作状态转换 Python 优先,基于 LangChain
KaibanJS 原生与动态 HITL 状态、React UI、验证和反馈工具 模块化、JS 优先,专为 HITL 设计

KaibanJS 简介

KaibanJS 是一个开源的、基于 JavaScript 的编排框架,旨在构建和可视化多智能体工作流。它受看板(Kanban)启发,提供:

  • 开发者优先的设计,采用 JS/TS + React
  • 智能体、工具和工作流的模块化架构
  • 通过状态列进行视觉任务跟踪
  • 全面支持 HITL,包括工作流中期和完成后

KaibanJS 中的 HITL 实践

KaibanJS 通过灵活的基于状态的任务系统原生实现 HITL。任务可以被标记为需要人工验证才能继续。其工作流程如下:

HITL 中的任务生命周期

  1. 任务创建:创建任务时,选项 externalValidationRequired: true

  2. 智能体执行:智能体将任务从 TODO 移至 DOING,然后完成任务。

  3. 等待验证:如果需要验证,任务将移至 AWAITING_VALIDATION,而不是 DONE

  4. 人工干预:

    • 人工审阅者可以使用 validateTask(task.id) 验证任务,将其推进到 VALIDATED,然后是 DONE
    • 或者,他们可以使用 provideFeedback(task.id, "...comments...") 提交反馈,将任务转换为 REVISE
  5. 任务修订:智能体重新处理任务,整合反馈,并将其返回到 AWAITING_VALIDATIONDONE

  6. 工作流完成:无需验证的任务直接从 DOING 变为 DONE。一旦所有任务完成,工作流即结束。

工作流状态转换

任务根据验证要求和人工反馈,在这些状态之间动态移动。智能体跟踪 feedbackHistory,允许决策路径的透明度

{
  content: "Expand on competitor analysis",
  status: "PENDING",
  timestamp: "2025-06-19T14:22:00Z"
}

JS 中的 HITL 逻辑示例

team.onWorkflowStatusChange((status) => {
  if (status === 'BLOCKED') {
    const tasksAwaitingValidation = team.getTasksByStatus('AWAITING_VALIDATION');
    tasksAwaitingValidation.forEach(task => {
      team.validateTask(task.id);
    });
  }
});

看板式流程图

                 +---------+
                 |   TODO  |
                 +---------+
                      |
                      v
                 +---------+
            +--->|  DOING  |
            |    +---------+
            |         |
            v         v
     +-------------+ +------------------+
     |   BLOCKED   | | AWAITING_        |
     +-------------+ | VALIDATION       |
            |        +------------------+
            |                |
            |                v
            |         +--------------+
            |         |  VALIDATED   |
            |         +--------------+
            |                |
            |                v
            +------------>+---------+
                          |   DONE  |
                          +---------+

实时反馈 UI (React 示例)

{tasks.filter(t => t.status === 'AWAITING_VALIDATION').map(task => (
  <div key={task.id}>
    <h3>{task.title}</h3>
    <button onClick={() => store.getState().validateTask(task.id)}>Validate</button>
    <button onClick={() => store.getState().provideFeedback(task.id, "Needs edits")}>Feedback</button>
  </div>
))}

工作流完成后重新激活

KaibanJS 支持即使工作流已完成后的反馈。如果已完成任务收到反馈:

  • 该任务将被重新激活并重新运行
  • 所有依赖于它的下游任务也将重新计算
  • 将考虑之前的结果以生成更新的输出

这种强大的机制确保工作流可以根据新的见解进行演进,而无需重新开始所有操作。

何时在 KaibanJS 中使用 HITL

在以下情况下使用:

  • 需要合规性或法律检查
  • 输出需要人工判断
  • 您需要事后分析修订

在以下情况下避免使用:

  • 您需要高速、低风险的自动化
  • 反馈会延迟而不是丰富结果

🎬 观看演示

视频: 了解 KaibanJS 工作流在人工反馈后如何重新执行 👉 KaibanJS HITL 反馈。工作流完成后重新激活


结论

HITL 对于构建安全、适应性强且准确的 AI 系统至关重要。使用 KaibanJS,它不再是事后考虑,而是核心功能。

开始构建智能体工作流,整合自主智能体和人类专业知识的最佳之处。


🔗 KaibanJS 网站 | 🧑‍💻 GitHub | 📚 LLMs 文档

社区

注册登录 发表评论