
LangGraph 是构建、管理和部署长时间运行、有状态智能体的低级别编排框架与运行时,由 LangChain 团队开发,可被 Klarna、Replit、Elastic 等企业用于生产级智能体系统。
它解决的核心问题是:当任务复杂度提升(需要记住上下文、分步骤完成、调用多类工具、处理失败、支持人工介入)时,单纯的”模型+Prompt”模式会暴露出状态丢失、流程难控、无法恢复、决策不透明等致命缺陷——LangGraph 让 Agent 真正作为”系统”稳定运行。
产品概述
LangGraph 当前最新版本 1.2.7(2026 年 6 月发布),MIT 协议,要求 Python ≥3.10,开发状态为 Production/Stable。它的设计哲学是”低级别、不抽象提示词与架构“——开发者用 StateGraph 显式定义状态(State)、节点(Node)、边(Edge),从而精确控制执行路径。
LangGraph 不强制依赖 LangChain,但两者深度集成:LangChain 的智能体正是构建在 LangGraph 之上以获得持久执行、流式、人机协作等能力。LangGraph 提供 Python 与 JavaScript/TypeScript 双语言版本,配合 LangSmith 可实现可视化追踪、评估与调试。
核心能力
- 图编排(StateGraph):用有向图定义复杂 Agent 与多 Agent 工作流,原生支持循环、条件分支、并行——这是与传统线性 Chain 的本质区别
- 持久执行(Durable Execution):通过 Checkpointer 机制在每一步自动保存状态,任务失败或中断后可从检查点恢复,无需从头执行
- 人机协作(Human-in-the-Loop):在任意节点主动中断,等待人工审核、修改状态或补充输入后再继续
- 全面记忆:短期工作记忆(当前线程内推理上下文)+ 长期持久记忆(跨会话存储用户偏好、事实、行为模式)
- 时间旅行(Time Travel):回滚到任意历史快照,用于调试、错误恢复与 A/B 测试
- 多智能体编排:支持 Supervisor(主管模式)、Swarm(群协作)、Hierarchical Team(层级团队)等多 Agent 架构,各 Agent 可共享或隔离状态
- 流式输出:Token 级与事件级流式,支持 values/updates/messages/debug 多种输出粒度
- 模型无关:通过 LangChain 集成适配 OpenAI、Anthropic、Google、Mistral、Ollama 等任意 LLM
优势亮点
- 生产级就绪:Klarna、Replit、Elastic、Uber、J.P. Morgan 等企业在生产环境使用
- 显式状态管理:将 Agent 记忆从”塞进上下文窗口靠模型记住”转变为”显式、可管理、可持久化的数据结构”
- 容错能力三段式:持久化 + 可恢复执行 + 中断与人工介入,让 Agent 从”能跑 Demo”跨越到”能进生产”
- LangSmith 深度集成:可视化追踪执行路径、捕获状态转换、提供详细运行时指标
- 图即代码:业务逻辑即图结构,可读性强,易于审计与调试
- LangChain 生态无缝协同:与 LangChain 组件、LangSmith 平台、Deep Agents harness 形成完整工具链
短板
- 学习曲线陡峭:需理解 State、Node、Edge、Checkpointer、Reducer 等抽象,对简单场景过度设计
- 样板代码较多:相比 LangChain 的高层 Agent 抽象,LangGraph 需要更多手工编排
- LangGraph Platform 生产部署需商业授权:框架本体 MIT 免费,但
langgraph-api/ LangGraph Platform 托管运行时采用 Elastic License 2.0,自托管进生产需商业授权 - 调试复杂图有难度:多节点、多分支、循环场景下,状态流转的调试需要 LangSmith 辅助
适用企业/部门
AI 应用开发团队、企业 AI 平台团队、智能体工作流团队、需要做 Human-in-the-Loop 的产品经理与架构师。特别适合:24 小时在线智能助手、需要多步骤任务与分支决策的 AI 客服、需要人工审核的高风险业务流、多智能体协作系统、要求执行失败可恢复的长时间运行任务。
安装教程
前提条件
- Python 3.10 ~ 3.13(PyPI 要求
Requires: Python >=3.10) - pip 或 uv 包管理器
快速安装
# 使用 pip pip install -U langgraph # 或使用 uv(推荐) uv add langgraph # 如需调用 Anthropic 模型 pip install -qU "langchain[anthropic]"
验证安装:Hello World
from langgraph.graph import StateGraph, MessagesState, START, END
def mock_llm(state: MessagesState):
return {"messages": [{"role": "ai", "content": "hello world"}]}
graph = StateGraph(MessagesState)
graph.add_node(mock_llm)
graph.add_edge(START, "mock_llm")
graph.add_edge("mock_llm", END)
graph = graph.compile()
graph.invoke({"messages": [{"role": "user", "content": "hi!"}]})
创建 ReAct 智能体
# pip install -qU "langchain[anthropic]"
from langgraph.prebuilt import create_react_agent
def get_weather(city: str) -> str:
"""获取指定城市的天气"""
return f"It's always sunny in {city}!"
agent = create_react_agent(
model="anthropic:claude-sonnet-4-0",
tools=[get_weather],
)
result = agent.invoke({
"messages": [{"role": "user", "content": "what's the weather in SF?"}]
})
print(result["messages"][-1].content)
启用持久化(Checkpointer)
from langgraph.checkpoint.memory import MemorySaver
# 配置检查点保存器,实现状态持久化与时间旅行
checkpointer = MemorySaver()
graph = graph.compile(checkpointer=checkpointer)
# 通过 thread_id 标识会话,跨请求恢复状态
config = {"configurable": {"thread_id": "session-001"}}
graph.invoke(input_data, config=config)
启用 LangSmith 追踪
# 设置环境变量开启追踪 export LANGSMITH_TRACING=true export LANGSMITH_API_KEY="your-langsmith-api-key"
使用 Ollama 本地模型
from langchain_ollama import OllamaLLM # 将 OllamaLLM 作为模型传入 create_react_agent 即可 # pip install langchain-ollama llm = OllamaLLM(model="llama3.1") agent = create_react_agent(llm, tools=[get_weather])
生产部署提示:如需将 LangGraph 应用部署为托管服务,可使用 LangGraph Platform(提供可扩展基础设施、任务队列、自动扩缩容),但需注意
langgraph-api运行时采用 Elastic License 2.0,自托管进生产需商业授权;框架本体(langgraph 包)始终保持 MIT 免费。
相关导航


OpenAI Agents SDK

LlamaIndex

MAF

LangChain

