langgraph
基于有向图模型构建可持久化 AI Agent 的底层编排框架
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于有向图模型构建可持久化 AI Agent 的底层编排框架
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:LangGraph 项目 Logo
想象你正在指挥一个复杂的工程项目——数十个工人分工协作,有人搬砖,有人砌墙,有人装修,每个环节都要在正确的时机触发,出了问题还要能回滚重来。如果用传统方式,你需要大量胶水代码来管理这些流程的串联和状态。但 LangGraph 换了一种思路:把整个工作流画成一张图,每个节点就是一个独立的工作单元,节点之间的连线定义了数据流向。这样一来,复杂的 Agent 行为就变成了一张清晰可读的流程图,开发者的心智负担大大降低。
LangGraph 由 LangChain 团队推出。LangChain 解决了 AI 应用「怎么调用模型」的问题,但随着开发者构建的 AI 应用越来越复杂——需要多轮对话、需要中途暂停等人确认、需要长时间运行——LangChain 的线性调用模式开始力不从心。
LangGraph 的诞生正是为了填补这个空白。它并不是要取代 LangChain,恰恰相反,它建立在 LangChain 核心库之上(依赖 langchain-core>=1.4.0),为的是解决一个更高级的问题:如何优雅地编排那些需要「状态」和「记忆」的长程 Agent 工作流。
目前 Klarna、Replit、Elastic 等知名公司已将 LangGraph 纳入生产环境,用于构建客服 Agent、代码生成助手、复杂数据提取流水线等场景。
这是 LangGraph 区别于普通 Agent 框架的杀手锏。传统 Agent 在运行中途如果崩溃,所有进度都会丢失。LangGraph 通过内置的 checkpoint(检查点)机制,在每个节点执行完成后自动保存图状态。一旦出现故障,系统可以从上次保存的检查点无缝恢复,而不是从头开始。对于需要运行数小时乃至数天的 Agent 来说,这个能力几乎不可替代。
LangGraph 支持在任意节点插入中断(interrupt),让 AI Agent 暂停执行,等待人类审核、修正数据或做出决策后继续。这个能力对于高风险场景至关重要——比如 Agent 要执行转账、发送邮件、修改数据库时,必须有人把关确认。
LangGraph 提供了双层记忆架构:
开发者可以为 Agent 配置不同的存储后端——目前支持 SQLite、PostgreSQL,以及通用接口供自定义实现。
LangGraph 原生支持 token 级别的流式输出,兼容 LangChain 的 callback 体系,可以实时展示 Agent 的思考过程和中间结果,提升用户交互体验。
LangGraph 采用了经典的 有向状态图(StateGraph) 模型:
项目采用 monorepo 结构,主要子包包括:
| 子包 | 用途 |
|---|---|
libs/langgraph | 核心框架,含 StateGraph、Pregel 运行时 |
libs/sdk-py | Python 客户端 SDK |
libs/sdk-js | JavaScript/TypeScript SDK |
libs/cli | 命令行工具 |
libs/prebuilt | 预构建的常用 Agent 模板 |
libs/checkpoint | 检查点存储抽象层 |
libs/checkpoint-sqlite | SQLite 存储实现 |
libs/checkpoint-postgres | PostgreSQL 存储实现 |
核心依赖:pydantic>=2.7.4(类型定义)、langchain-core>=1.4.0(模型调用抽象)、xxhash>=3.5.0(状态哈希)。
LangGraph 的安装极简,一行命令即可:
pip install -U langgraph
入门代码也相当直观,只需要定义 State 类型和节点函数:
from langgraph.graph import START, StateGraph
from typing_extensions import TypedDict
class State(TypedDict):
text: str
def node_a(state: State) -> dict:
return {"text": state["text"].upper()}
graph = StateGraph(State)
graph.add_node("a", node_a)
graph.add_edge(START, "a")
app = graph.compile()
result = app.invoke({"text": "hello"})
但值得注意的是,LangGraph 是一个底层 SDK,面向的是希望深度定制 Agent 行为的开发者,而非希望开箱即用的终端用户。它没有 Web UI,没有可视化流程编辑器,调试需要依赖 LangSmith(LangChain 的商业监控平台)。如果你的需求是快速搭建一个简单聊天机器人,直接用 LangChain 的 High-Level API 可能更合适;但如果你需要构建复杂、多轮、带状态持久化的 Agent 系统,LangGraph 就是目前最成熟的选择。
LangGraph 的工程化水准相当高:
尽管 LangGraph 已获得广泛采用,仍有一些需要注意的地方:
LangGraph 代表了 AI Agent 框架从「简单调用」向「复杂编排」的演进方向。随着 GPT-4、Claude 等大模型能力不断增强,开发者对 Agent「能做什么」的期待也越来越高——多步骤推理、长程任务、带人工审核的工作流……这些需求都指向同一个技术方向:状态管理 + 图编排。
在这个方向上,LangGraph 目前是开源领域最成熟、star 最高、社区最活跃的选择。它的 checkpoint 设计尤其值得关注——这可能是未来 Agent 框架「可恢复性」标准的基础范式。随着 LangGraph.js(JavaScript 版本)的推出,LangGraph 正在成为一个真正的跨平台 Agent 编排标准。