LangGraph 简介
LangGraph 是由 LangChain 团队开发的AI Agent 工作流编排框架,专门用于构建有状态、多步骤、可循环的 LLM 应用。
核心思想:用**图(Graph)**的方式描述 AI 的决策和执行流程,支持循环、分支、多智能体协作。
🎯 解决什么问题?
LangChain 的局限
LangChain Chain:A → B → C → D (线性,不能回头)
❌ 不支持循环(Agent 需要反复思考)
❌ 复杂分支逻辑难以表达
❌ 多 Agent 协作困难
❌ 状态管理复杂
LangGraph 的解决方式
✅ 有向图结构 → 支持循环、分支、并行
✅ 内置状态管理 → 节点间共享状态
✅ 支持 Human-in-the-loop → 人工介入审核
✅ 多 Agent 协作 → 原生支持
🏗️ 核心概念
🔷 State(状态)
整个图共享的数据容器,每个节点都可以读写。
from typing import TypedDict, Annotated
from langgraph.graph import add_messages
class AgentState(TypedDict):
messages: Annotated[list, add_messages] # 对话历史
user_info: str # 用户信息
tool_result: str # 工具调用结果
🔷 Node(节点)
图中的执行单元,接收状态、处理逻辑、返回新状态。
def call_llm(state: AgentState):
response = llm.invoke(state["messages"])
return {"messages": [response]}
def call_tool(state: AgentState):
result = tool.run(...)
return {"tool_result": result}
🔷 Edge(边)
节点之间的连接关系,决定执行流向。
# 普通边:固定跳转
graph.add_edge("node_a", "node_b")
# 条件边:动态决策
graph.add_conditional_edges(
"llm_node",
decide_next_step, # 决策函数
{
"use_tool": "tool_node",
"finish": END
}
)
🔷 Graph(图)
把节点和边组合起来,形成完整的工作流。
🔄 典型 ReAct Agent 结构
┌─────────────────────┐
↓ │
START → [LLM 思考] → 需要工具? ──YES──→ [执行工具] ──┘
│
NO
↓
END
from langgraph.graph import StateGraph, END
# 构建图
builder = StateGraph(AgentState)
# 添加节点
builder.add_node("llm", call_llm)
builder.add_node("tools", call_tool)
# 设置入口
builder.set_entry_point("llm")
# 添加条件边
builder.add_conditional_edges(
"llm",
should_use_tool,
{"yes": "tools", "no": END}
)
# tools 执行完回到 llm 继续思考
builder.add_edge("tools", "llm")
# 编译
graph = builder.compile()
⚡ 核心特性
👥 多 Agent 架构
Supervisor 模式
用户请求
↓
[Supervisor Agent] ← 负责分配任务
↙ ↓ ↘
[研究] [写作] [代码] ← 专业子 Agent
↘ ↓ ↙
[Supervisor Agent] ← 汇总结果
↓
最终输出
Handoff 模式
[Agent A] ──委托──→ [Agent B] ──委托──→ [Agent C]
客服接待 技术支持 专家解答
🧑💻 Human-in-the-loop 示例
# 编译时添加 checkpointer
graph = builder.compile(
checkpointer=MemorySaver(),
interrupt_before=["执行删除操作"] # 危险操作前暂停
)
# 运行到危险节点时自动暂停
result = graph.invoke(input, config={"thread_id": "123"})
# → 暂停,等待人工确认
# 人工审核后继续
graph.invoke(None, config={"thread_id": "123"})
💡 典型使用场景
🆚 与同类框架对比
🔗 与 LangChain 生态关系
LangChain → 提供 LLM、Tool、Prompt 等基础组件
LangGraph → 编排这些组件,构建复杂 Agent 流程
LangSmith → 监控、调试、追踪执行过程
LangServe → 将 Graph 部署为 API 服务
💬 总结
LangGraph 的核心价值:"用图的思维构建可靠的 AI Agent,让复杂推理流程可控、可追踪、可恢复"
适合构建需要多步推理、工具调用、多轮交互的 AI 应用
比简单 Chain 灵活得多,比 Temporal 更专注 AI 场景
目前是构建生产级 AI Agent 的主流选择之一
官网:langchain-ai.github.io/langgraph | GitHub:langchain-ai/langgraph