跳到内容

人机协作 (Human-in-the-loop)

要在代理或工作流中审查、编辑和批准工具调用,请使用 LangGraph 的人机协同(human-in-the-loop)功能,以便在工作流的任何时刻进行人工干预。这在大型语言模型 (LLM) 驱动的应用中尤其有用,因为模型输出可能需要验证、修正或额外的上下文。

image

提示

有关如何使用人机协同的信息,请参阅启用人工干预使用服务器 API 实现人机协同

核心功能

  • 持久化执行状态:中断功能使用了 LangGraph 的持久化层,该层会保存图的状态,从而可以无限期地暂停图的执行,直到您恢复为止。这是因为 LangGraph 在每一步之后都会为图状态创建检查点,这使得系统能够持久化执行上下文并在之后从中断处继续恢复工作流。这支持了没有时间限制的异步人工审查或输入。

    有两种暂停图的方法

    • 动态中断:在特定节点内部,根据图的当前状态使用 interrupt 来暂停图。
    • 静态中断:使用 interrupt_beforeinterrupt_after 在预定义的点暂停图,即在节点执行之前或之后。

    image
    一个由3个顺序步骤组成的示例图,在 step_3 之前设有一个断点。

  • 灵活的集成点:人机协同逻辑可以引入到工作流的任何一点。这允许有针对性的人工参与,例如批准 API 调用、修正输出或引导对话。

模式

您可以使用 interruptCommand 实现四种典型的设计模式

  • 批准或拒绝:在关键步骤(如 API 调用)之前暂停图,以审查和批准该操作。如果操作被拒绝,您可以阻止图执行该步骤,并可能采取替代操作。此模式通常涉及根据人工输入来路由图。
  • 审查和编辑状态:暂停图以审查和编辑图状态。这对于纠正错误或用附加信息更新状态很有用。此模式通常涉及用人工输入来更新状态。
  • 审查工具调用:在工具执行之前,暂停图以审查和编辑 LLM 请求的工具调用。
  • 验证人工输入:在进入下一步之前,暂停图以验证人工输入。