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 的顺序匹配:

按风险级别定制配置

根据风险级别为不同工具配置: