跳到内容

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

要在代理或工作流中审查、编辑和批准工具调用,请使用LangGraph的人机协作功能,以在工作流的任何点启用人工干预。这在大型语言模型 (LLM) 驱动的应用程序中特别有用,因为模型输出可能需要验证、修正或额外的上下文。

image

提示

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

主要功能

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

    有两种暂停图的方法

    • 动态中断:使用interrupt根据图的当前状态,从特定节点内部暂停图。
    • 静态中断:使用interrupt_beforeinterrupt_after在定义的点暂停图,无论是在节点执行之前还是之后。

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

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

模式

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

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