AI 应用框架 · 03

LangGraph 详细解析· 构建有状态、多智能体的复杂应用

基于图的 Agent 编排框架,像搭积木一样简单!

LangGraph 详细解析全景图
一句话总结

LangGraph 是基于图(Graph)的 Agent 编排框架,专为构建有状态、多节点、循环执行的复杂应用而设计,支持条件分支、并行执行、人工干预等高级特性。

1. LangGraph 是什么?

LangGraph 是基于图(Graph)的 Agent 编排框架,专为构建有状态多节点循环执行的复杂应用而设计。核心三要素:LLM/Agent · Graph(图结构) · State(状态)

  • 基于图结构编排,灵活控制流程
  • 支持循环、条件分支、并行执行
  • 内置状态管理,支持长期记忆
  • 支持人工干预(Human in the loop)
  • 可扩展性强,适合复杂多智能体系统

2. 核心概念

Graph(图)

由节点(Node)和边(Edge)组成,定义执行流程

Node(节点)

执行具体任务的单元,可以是 LLM 调用、工具调用或自定义逻辑

Edge(边)

定义节点之间的连接,可以是条件跳转或无条件跳转

State(状态)

在图执行过程中维护的全局状态,所有节点共享使用

Checkpoint(检查点)

保存执行状态,支持恢复和追溯历史

Agent(智能体)

基于图构建的有状态智能体

3. 执行流程(图执行引擎)

输入
Input
初始化状态
State
执行节点
Node
更新状态
Update
条件判断
Edge
下一节点
Next Node
结束
End
循环执行,直到结束条件满足
边(Edge)类型
  • Direct Edge无条件边:A → B
  • Conditional Edge条件边:A → C(with condition)
条件边示例(JSON)
{
  "from": "agent",
  "condition": "state['next']",
  "edges": {
    "continue": "tools",
    "end": "end"
  }
}

4. 典型应用场景

复杂对话系统

支持多轮对话、上下文记忆、工具调用

多智能体协作

多个 Agent 协同完成复杂任务,分工明确

工作流自动化

自动化处理复杂流程,减少人工干预

决策与规划场景

基于状态的决策与规划任务处理

5. 代码示例:构建一个简单的 LangGraph

from langgraph.graph import StateGraph, END
from typing import TypedDict, Annotated, List, Dict, Any

# 1. 定义状态
class AgentState(TypedDict):
    messages: Annotated[List[Dict[str, Any]], "消息历史"]
    next: str
    result: str

# 2. 创建图
graph = StateGraph(AgentState)

async def agent(state: AgentState):
    # 调用 LLM 分析用户输入
    return {"next": "tools"}

async def tools(state: AgentState):
    # 调用外部工具
    return {"result": "工具执行结果"}

async def review(state: AgentState):
    # 检查结果,决定是否结束
    if "完成" in state["result"]:
        return {"next": END}
    return {"next": "agent"}

# 3. 添加节点
graph.add_node("agent", agent)
graph.add_node("tools", tools)
graph.add_node("review", review)

# 4. 添加边
graph.set_entry_point("agent")
graph.add_edge("agent", "tools")
graph.add_edge("tools", "review")
graph.add_conditional_edges("review", lambda x: x["next"])

# 5. 编译图
app = graph.compile()
状态定义
节点函数
流转定义
支持循环
支持条件跳转
可视化状态

6. 高级特性

状态持久化

Memory, SQLite, PostgreSQL, Redis 等

检查点机制

支持从任意检查点恢复执行

人工干预

Human in the loop — 流程中可以插入人工审核节点

并行执行

支持多个节点并行,提高效率

可视化调试

提供图形化支持,便于调试和理解流程

多智能体支持

轻松构建多 Agent 协作的复杂系统

7. 与其他框架对比

框架执行模型状态管理流程控制可扩展适用场景可视化
LangChain线性链简单状态固定流程中等简单应用有限
LangGraph图结构内置状态灵活(图+条件)复杂应用/工作流内置支持
AutoGPT单智能体循环中等循环执行中等自主任务执行
MetaGPT多智能体协作中等角色式执行中等团队协作任务有限

8. 生态与集成

模型
OpenAIAnthropicLlama 3
工具
搜索计算器API
存储
SQLitePostgreSQLRedis
监控/部署
LangSmith日志追踪DockerFastAPI

9. 真实案例 & 开源项目