LangGraph: 构建复杂、循环的 AI 代理
LangGraph 是 LangChain 生态中最重要的进阶工具。它允许你将 AI 逻辑定义为图 (Graph) 结构,非常适合构建具有循环(Cycles)、状态管理(State)和多代理协作(Multi-agent)的应用。
#1. 为什么需要 LangGraph?
传统的 Chain 是线性的(A -> B -> C)。但在实际开发中,我们往往需要循环:
- 循环调试:模型写完代码 -> 运行报错 -> 回到模型进行修复 -> 再次运行。
- 反思模式:模型生成答案 -> 另一个模型审核 -> 审核不通过则回到生成节点。
#2. 核心概念
- Nodes (节点):普通的 Python 函数,负责处理数据。
- Edges (边):连接节点的路径。
- State (状态):在节点间传递的共享数据(通常是一个 TypedDict)。
- Conditional Edges (条件边):根据逻辑判断下一步走向哪个节点。
#3. 基础代码示例
pythonfrom typing import TypedDict, Annotated from langgraph.graph import StateGraph, END # 1. 定义状态 class State(TypedDict): input: str output: str # 2. 定义节点 def call_model(state: State): # 这里调用 LLM return {"output": "模型生成的答案"} # 3. 构建图 workflow = StateGraph(State) workflow.add_node("model", call_model) # 设置起点和终点 workflow.set_entry_point("model") workflow.add_edge("model", END) # 4. 编译并运行 app = workflow.compile() result = app.invoke({"input": "你好"})
#4. LangGraph 的独特优势
#A. 状态持久化 (Persistence)
内置 Checkpointer。即使程序崩溃或需要用户人工确认(Human-in-the-loop),它也能从断点处精准恢复。
#B. 多代理协作 (Multi-agent)
你可以轻松定义多个代理节点(如:Researcher 节点, Writer 节点, Reviewer 节点),并让它们在图中按照逻辑流转。
#C. 可视化
LangGraph 支持导出图形结构,方便调试和展示逻辑流。
#5. LangGraph Studio (开发利器)
如果你在本地安装了 Docker,可以使用 LangGraph Studio↗。它提供了一个可视化的 IDE,可以让你实时观察节点状态的变化、手动回滚步骤以及调试复杂的逻辑循环。
总结:如果你正在构建一个简单的 RAG 或聊天机器人,LCEL 足够了。但如果你在构建一个真正的 AI Agent(代理),LangGraph 是必选工具。