LangGraph 设计问答
Q:为什么选择 LangGraph?
LangGraph 提供了状态机的方式来编排 Agent 流程,相比自由生成的多步推理,它有三个核心优势:
- 可控:流程由图定义,不是模型自由发挥
- 可调试:每个节点的输入输出都可以记录和查看
- 可暂停:支持 Human-in-the-loop,在关键节点暂停等待人工确认
Q:状态机的核心设计是什么?
每个节点是一个 Agent 或处理逻辑,边定义了节点间的流转条件。全局状态在节点间传递,每个节点可以读取和写入状态。
状态对象通常包含:
- 用户原始输入
- 任务计划
- 各 Agent 的执行结果
- 工具调用记录
- 最终输出
Q:如何实现 Human-in-the-loop?
LangGraph 支持 interrupt 机制。在需要人工确认的节点前,流程会暂停并保存当前状态。人工确认后,流程从保存的状态恢复继续执行。
我用这个机制实现了风险审查:高风险操作必须经过人工确认才能继续。
Q:如何处理长流程的状态管理?
通过 Checkpointing 机制保存中间状态,支持:
- 断点恢复:流程中断后可以从最近的 checkpoint 恢复
- 流程回溯:可以查看任意节点的状态快照
- 调试分析:可以逐步检查每个节点的输入输出