Skip to main content
某些工具操作可能比较敏感,需要在执行前获得人工审批。深度智能体通过 LangGraph 的中断功能支持人机协作工作流。你可以使用 interrupt_on 参数配置哪些工具需要审批。

基本配置

interrupt_on 参数接受一个字典,将工具名称映射到中断配置。每个工具可以配置为:
  • True:启用带默认行为的中断(允许批准、编辑、拒绝、回复)
  • False:禁用此工具的中断
  • {"allowed_decisions": [...]}:自定义配置,指定允许的决策类型

决策类型

allowed_decisions 列表控制人工在审查工具调用时可以采取的操作:
  • "approve":使用智能体提出的原始参数执行工具
  • "edit":在执行前修改工具参数
  • "reject":完全跳过执行此工具调用
  • "respond":将人工的消息直接作为工具结果返回,跳过执行——用于”询问用户”类型的工具
你可以自定义每个工具可用的决策:

处理中断

当中断被触发时,智能体暂停执行并返回控制权。检查结果中的中断并相应处理。

多个工具调用

当智能体调用多个需要审批的工具时,所有中断会被批量合并为单个中断。你必须按顺序为每个提供决策。

编辑工具参数

"edit" 在允许的决策中时,你可以在执行前修改工具参数:

子智能体中断

使用子智能体时,你可以在工具调用上工具调用内使用中断。

工具调用上的中断

每个子智能体可以有自己的 interrupt_on 配置,覆盖主智能体的设置:
当子智能体触发中断时,处理方式相同——检查结果中的 interrupts 并使用 Command 恢复。

工具调用内的中断

子智能体工具可以直接调用 interrupt() 来暂停执行并等待审批:
运行时,产生以下输出:

最佳实践

始终使用检查点器

人机协作需要检查点器在中断和恢复之间持久化智能体状态:

使用相同的线程 ID

恢复时,你必须使用具有相同 thread_id 的相同配置:

决策顺序与操作匹配

决策列表必须与 action_requests 的顺序匹配:

根据风险等级定制配置

根据风险等级为不同工具配置不同选项: