SuperAPI AI 工具集

langgraph-human-in-the-loop

智能体与模型

查看项目

更新于 10-15 23:48

技能介绍

用途:在 LangGraph 中实现人在环路模式,例如暂停等待人工审批、收集用户输入、处理可修复错误。

主要能力:

  • interrupt(value):暂停执行并把值呈现给调用方,结果中出现在 interrupt 下。
  • Command(resume=value):恢复执行,该值成为 interrupt() 的返回值。
  • 支持审批工作流:interrupt 展示草稿,按人工决定路由到发送或结束。
  • 支持校验循环:在循环中 interrupt 校验输入,无效则重新提示。
  • 支持并行多中断:按中断 ID 映射到恢复值,一次恢复全部。

必要用法:

  • 编译时传入 checkpointer,开发用 InMemorySaver(),生产用 PostgresSaver;如 compile(checkpointer=InMemorySaver())。
  • 每次 invoke/stream 传入 config,例如 {"configurable": {"thread_id": "thread-1"}}。
  • 传给 interrupt() 的值必须可 JSON 序列化。
  • 恢复只能用 Command(resume=...),不要用 Command(update=...)。

限制与注意:

  • 无 checkpointer 会失败;thread_id 不一致会新建线程而非恢复。
  • 恢复时节点从头重跑,interrupt() 之前的代码会再次执行;子图中父节点与子图节点都会重执行。因此 interrupt() 之前的副作用必须幂等,建议用 upsert、检查后创建,或把副作用放到 interrupt() 之后。
  • 关于重试策略等其他错误处理方式,资料仅指向 fundamentals 技能,未展开。