Module 11:LangGraph 进阶主题
本模块将带你深入探索 LangGraph 的高级特性和实用技巧。
模块概述
在前面的模块中,我们学习了 LangGraph 的基础概念、状态管理、节点和边的使用。现在,是时候进阶了!本模块将带你深入探索 AI Agent 开发中的高级主题。
本模块涵盖 LangGraph 的高级技巧:
Module 11 进阶主题
11.1 循环模式 11.2 Mermaid 可视化
自修正循环 流程图绘制
工具调用循环 5 种设计模式
11.3 MCP 集成
外部工具连接
11.4 中间件 11.5 Command
请求拦截 动态路由为什么学习这些进阶主题?
| 基础概念掌握后 | 进阶主题学习后 |
|---|---|
| 能写简单流程 | 能设计复杂循环 |
| 知道如何添加工具 | 能连接外部工具(MCP) |
| 会画简单图 | 能用 Mermaid 设计复杂架构 |
| 手动管理路由 | 使用 Command 简化动态路由 |
章节概览
11.1 LangGraph 循环模式
核心问题:为什么有时候需要"往回走"?为什么有时候是"绕个圈"?
本节深入分析两种核心循环模式:
| 模式 | 特点 | 典型场景 |
|---|---|---|
| 自修正循环 | "做错了,要重做" | 代码生成、写作审核 |
| 工具调用循环 | "缺东西,去拿一下" | API 调用、RAG 检索 |
理解这个区别,是写出优雅 LangGraph 代码的关键。
11.2 用 Mermaid 可视化工作流
核心问题:如何在写代码前先设计架构?
Mermaid 是 LangGraph 的"蓝图语言"。本节通过 5 种设计模式,教你用 Mermaid 绘制 Agent 架构:
- 线性流程:
A → B → C - 条件分支:
if ... then ... else ... - 循环结构:
while ... do ... - 并行执行:多节点同时运行
- 层级结构:Supervisor 模式
学会 Mermaid,让你的架构设计和代码实现同步进行。
11.3 LangGraph 与 MCP 集成
核心问题:如何让 AI 调用外部工具?
MCP(Model Context Protocol)是 Anthropic 推出的开放协议,被称为 AI 的"USB 接口"。本节包含:
- MCP 三种传输方式:STDIO、SSE、Streamable HTTP
- LangGraph 集成方案:使用
langchain-mcp-adapters - MCP vs Skills:什么时候用哪个?
- 实战案例:MCP 服务器配置与调用
11.4 Middleware 中间件
核心问题:如何统一处理 AI Agent 的请求?
中间件是在 Agent 执行过程中插入通用逻辑的机制。
| 钩子点 | 时机 | 典型用途 |
|---|---|---|
before_model | LLM 调用前 | 注入系统提示词 |
after_model | LLM 调用后 | 日志记录、结果过滤 |
modify_model_request | 修改请求 | 动态参数调整 |
本节包含 13+ 种中间件场景,覆盖监控、日志、安全等需求。
11.5 Command:动态路由
核心问题:如何让节点自己决定下一步去哪?
传统 LangGraph 中,路由逻辑分散在多个地方。Command 提供了更优雅的方案:
python
# 传统方式:节点 + 条件边
def my_node(state):
return {"result": "..."}
def route(state):
if state["result"] == "A":
return "node_a"
return "node_b"
graph.add_conditional_edges("my_node", route)
# Command 方式:一体化
def my_node(state) -> Command[Literal["node_a", "node_b"]]:
if should_go_a(state):
return Command(update={"result": "..."}, goto="node_a")
return Command(update={"result": "..."}, goto="node_b")Command 是实现动态路由(Handoffs)和Supervisor 模式的最佳工具。
学习建议
如果你想全面了解 LangGraph 进阶
→ 建议按顺序学习 11.1 → 11.2 → 11.3 → 11.4 → 11.5
如果你想快速上手动态路由
→ 建议先学习 11.5 Command 和 11.1 循环模式
如果你想连接外部工具
→ 建议先学习 11.4 Middleware 和 11.3 MCP
如果你想做好架构设计
→ 建议先学习 11.2 Mermaid 可视化本模块学习目标
学完本模块后,你将能够:
- [ ] 区分自修正循环和工具调用循环,选择正确的模式
- [ ] 用 Mermaid 绘制和设计 LangGraph 工作流
- [ ] 通过 MCP 协议让 Agent 调用外部工具
- [ ] 用 Middleware 实现请求拦截、日志记录、安全过滤
- [ ] 用 Command 实现简洁的动态路由和状态更新
前置知识
本模块假设你已经掌握:
- LangGraph 基础概念:节点、边、状态
- Python 类型注解:
TypedDict、Literal、Annotated - 异步编程基础:
async/await关键字
如果对这些概念不熟悉,建议先复习前面的模块。
准备好了吗?让我们开始探索 LangGraph 的进阶世界!