LangGraph 中断、恢复与时间旅行
interrupt() 在节点中暂停执行并向调用者返回需要处理的数据。之后使用相同 thread_id 和 Command(resume=...) 恢复;恢复值成为原 interrupt() 调用的返回值。
恢复并不是从 Python 代码行继续。运行时会从发生中断的节点开头重新执行,并为已经处理的 interrupt 匹配保存的恢复值。因此,中断前的写操作可能再次发生。较安全的结构是:准备数据 → 中断等待审批 → 恢复后在独立节点执行副作用。
不要用宽泛 try/except 捕获 interrupt 的内部控制异常,也不要在不同执行中改变多个 interrupt 的顺序。所有中断数据与恢复数据都应可序列化。
状态历史可用于查看过去的检查点、从某处分叉或重放后续节点。重放会复用已经保存的步骤并重新执行后续步骤,但外部系统并不会自动回滚。调试时间旅行与业务补偿事务需要分别设计。