Phase 2 从第 8 篇开始,讲了为什么需要图、五要素、State、Node/Edge、条件 Edge、Reducer、Checkpoint、HITL、多 Agent。概念拆得很细,但还没看它们怎么合在一个真实 Agent 里。
这一篇做 Phase 2 的实战收束——用一个「带工具的客服 Agent」例子,把五要素全部串起来。看完这篇,你对 LangGraph 的理解就闭环了。
要做的 Agent:能查订单、能回答、能请人审批
假设做一个客服 Agent,需求:
- 接收用户问题
- 模型判断:能直接答的直接答;要查订单的去查
- 查订单时,如果涉及退款(敏感操作),暂停等人审批
- 工具结果回灌模型,继续判断
- 满意了输出最终回答
这个例子不大,但把五要素全用上了。
第一步:定义 State
先想清楚这个 Agent 要在节点间传什么:
messages:对话历史(必须,追加)user_query:当前用户问题order_info:查到的订单信息
注意 messages 用追加 reducer——第 13 篇强调过,对话历史必须追加,否则记忆断。
第二步:定义 Node
按职责拆分节点(第 11 篇:一个 node 干一件事):
- 模型节点:调 LLM,判断要不要调工具
- 工具节点:执行查订单工具
- (判断「要不要审批」放条件 edge,不放 node)
第三步:连 Edge(含条件 edge)
这是关键——用条件 edge 做分支(第 12 篇):
START → 模型节点
模型节点 →[条件: 有工具调用?]→
有 → 工具节点 →[条件: 涉及退款?]→
是 → interrupt 暂停 → 人审批 → 回模型节点
否 → 回模型节点
没有 → END
这张图把前面学的全用上了:条件 edge 分流、循环(工具回模型)、interrupt 暂停(HITL)。
第四步:编译并挂 Checkpointer
图定义好后,编译时挂上持久化 checkpointer(第 14 篇):
graph.compile(checkpointer=PostgresSaver(...))
为什么要挂?因为这个 Agent 有 interrupt(等人审批),暂停几小时,内存 checkpointer 早没了。HITL 必须配持久化 checkpointer(第 15 篇)。
跑起来的完整过程
用户问「帮我查下订单 A123 要退款」,Agent 跑起来:
- super-step 1:进模型节点。模型判断「要查订单」→ 返回工具调用。state 存档。
- super-step 2:条件 edge 分流到工具节点。查到订单 A123。state 存档。
- super-step 3:条件 edge 判断「涉及退款」→ interrupt 暂停。state 存档,等审批。
- (人在前端点「批准」)
- 恢复:从 checkpoint 续跑,带着批准信息回模型节点。
- super-step 4:模型节点生成退款说明。条件 edge 判断「没有工具调用」→ END。
这一个过程,把五要素(State/Node/Edge/Reducer/Super-step)+ Checkpoint + HITL 全用上了。这就是一个生产级 Agent 的完整运作。
回顾 Phase 2
这个例子串起了 Phase 2 的全部内容。回顾这 10 篇:
| 篇 | 讲了什么 | 在这个 Agent 里体现 |
|---|---|---|
| 08 | 为什么需要图 | 这个流程有循环有分支,直线做不了 |
| 09 | 五要素全景 | 就是这张图的骨架 |
| 10 | State | messages + order_info |
| 11 | Node/Edge | 模型节点、工具节点、各种连线 |
| 12 | 条件 Edge | 「有工具调用吗」「涉及退款吗」两个分支 |
| 13 | Reducer | messages 用追加 |
| 14 | Checkpoint | 每步存档,能恢复 |
| 15 | HITL | 退款前 interrupt 等审批 |
| 16 | 多 Agent | (这个例子是单 Agent,复杂了可拆) |
收束:从懂概念到能搭图
这一篇用实战收束了 Phase 2。现在你应该能:看懂任何一张 LangGraph 图,也能把自己的需求拆成 State/Node/Edge,搭出一个能跑的 Agent。
但这套图是手动搭建的——你得自己定义 state、写 node、连 edge。下一篇开始 Phase 3,讲 LangChain 的应用层怎么把这些封装成开箱即用的 Agent:用 create_agent 一行代码搭出标准 Agent,用 middleware 定制它。Phase 3 是「从会搭图到会用封装」的进阶。
关于十三Tech
我是十三,All in AI Agent 方向的架构师,专注 AI 工程实践。我相信 AI 是程序员的最佳搭档。
如果你想跟完这套「图解 LangChain」,欢迎关注公众号 「十三Tech」。全系列 42 篇,会按认识基础、LangGraph 状态机、Agent 与 middleware、RAG 检索、Tools/MCP/记忆、生产化收束这条线更新。

