SuperAPI AI 工具集

langgraph-human-in-the-loop

智能体与模型

查看项目

更新于 10-15 23:48

技能介绍

用途:在 LangGraph 中实现人在回路模式,例如暂停等待人工审批、收集缺失输入、校验用户回答,以及处理用户可修复的错误。

主要能力:interrupt(value) 暂停执行并把值暴露给调用方,结果出现在 interrupt 下;Command(resume=value) 恢复执行,该值成为 interrupt() 的返回值。支持审批工作流(展示草稿后按人工决定路由)、循环校验输入(无效则重新提问)、以及并行分支多个 interrupt 时用 id 到值的映射一次性恢复全部。

必要用法:需三样东西——checkpointer(开发用 InMemorySaver(),生产用 PostgresSaver),编译时传入;thread_id,每次 invoke/stream 传 {"configurable": {"thread_id": "..."}};传给 interrupt() 的值必须可 JSON 序列化。恢复时用 graph.invoke(Command(resume=...), config)。

限制与注意:恢复时节点从头重新执行,interrupt() 之前的所有代码会再次运行,子图中父节点与子图节点都会重跑,因此 interrupt() 前的副作用必须幂等(用 upsert、先查后建,或把副作用放到 interrupt() 之后)。不要用 Command(update=...) 作为 invoke 输入,否则图看似卡住;不要省略 checkpointer 或换用不同 thread_id。完整四层错误处理策略(RetryPolicy、Command 错误循环等)见 fundamentals 技能。