LangGraph Interrupt 从入门到深入
在构建 AI Agent 应用时,一个常见的需求是 人在回路(Human-in-the-Loop,简写HITL)——让 Agent 在关键节点停下来,等人工审核/确认后再继续。LangGraph 提供了 interrupt 机制来实现这一功能。
本文将带你从零开始理解 interrupt,先讲清楚概念,再用代码一步步深入,最后总结踩坑经验。
什么是 interrupt?
interrupt 是 LangGraph 提供的一个函数,调用它可以让当前正在执行的图在某个节点 暂停(暂停整个图,不是只暂停当前节点),等待外部通过 Command(resume=...) 恢复执行。
它的典型工作流程:
用户输入 → LLM 推理 → 调用工具 → 工具内 interrupt()
↓
图暂停,等待 resume
↓
外部调用 Command(resume=data)
↓
工具继续执行 → 返回结果给 LLM → 输出
关键特性:
- 暂停是整个图级别的 — 不只是退出当前节点,整个
graph.stream()调用都会返回 - 需要 checkpointer — 没有 checkpoint,interrupt 无法保存状态
- 恢复需要 resume — 使用
Command(resume=...)从暂停点恢复
