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. 真实案例 & 开源项目