LangGraph 项目介绍
LangGraph 项目介绍
项目定位
LangGraph 是一个低级状态图编排框架,将 Agent 的执行流程建模为有向图,支持 Durable Execution(持久化执行)、Human-in-the-loop(人机协作)和流式输出。
核心能力
- StateGraph 状态图 — 通过定义节点、边、条件分支和共享状态,构建任意复杂的多步工作流
- Durable Execution — 基于 Checkpoint 系统实现故障恢复和时间旅行,Agent 可以从任意检查点恢复
- Human-in-the-loop —
interrupt()机制在执行中途暂停,等待人类审核或注入数据后继续 - Functional API — 通过
@entrypoint和@task装饰器以函数式风格定义工作流,无需显式建图 - 流式输出 — 支持 updates、values、messages、custom 等多种流模式,实时反馈 Agent 状态
- 子图组合 — 将图编译为子图嵌套进父图,实现模块化编排和多 Agent 协作
- CLI + Server —
langgraph-cli提供本地开发服务器,配合 LangSmith 平台进行调试与部署
技术栈
| 维度 | 技术 |
|---|---|
| 语言 | Python 3.10+ |
| 核心引擎 | Pregel 执行模型(灵感来自 Google Pregel 和 Apache Beam) |
| 状态 Schema | TypedDict / Pydantic BaseModel |
| Checkpoint 后端 | 内存(InMemorySaver)、SQLite、PostgreSQL(可插拔) |
| 依赖 | langchain-core(消息类型)、xxhash(checkpoint 哈希) |
| 测试 | pytest + asyncio |
| 包管理 | uv + pyproject.toml,monorepo 结构 |
架构概览
Monorepo 结构
LangGraph 是一个 monorepo,libs/ 目录下包含多个独立的 Python 和 JavaScript 包:
| 包 | 职责 |
|---|---|
checkpoint | Checkpoint 基础接口(BaseCheckpointSaver) |
checkpoint-sqlite | SQLite 持久化实现 |
checkpoint-postgres | PostgreSQL 持久化实现 |
langgraph | 核心框架:StateGraph、Pregel、Channel、Functional API |
prebuilt | 高层封装:create_react_agent、ToolNode、Interrupt 封装 |
cli | 命令行工具与本地开发服务器 |
sdk-py | LangGraph Server REST API 的 Python 客户端 |
sdk-js | LangGraph Server REST API 的 JS/TS 客户端 |
快速体验
pip install langgraphfrom typing import Annotatedfrom typing_extensions import TypedDictfrom langgraph.graph import StateGraph, START, ENDfrom langgraph.graph.message import add_messages
class State(TypedDict): messages: Annotated[list, add_messages]
def chatbot(state): return {"messages": "你好!有什么可以帮你的?"}
graph = StateGraph(state_schema=State)graph.add_node("chatbot", chatbot)graph.add_edge(START, "chatbot")graph.add_edge("chatbot", END)
app = graph.compile()result = app.invoke({"messages": ["你好"]})教程导读
LangGraph 教程分为两个方向:
AI 应用教程(ai/)
从 AI 应用开发者视角,聚焦如何使用 LangGraph 构建 Agent 应用:
- [01] 基于 StateGraph 的状态图 Agent 设计 — 引用 StateGraph Agent 循环
- [02] Checkpoint 系统与 Durable Execution — 引用 Agent 状态序列化
- [03] Human-in-the-loop 中断与审核 — 首次覆盖
- [04] Functional API:以函数式风格定义工作流 — 首次覆盖
- [05] 子图组合与多 Agent 编排 — 引用 多 Agent 路由
- [06] 流式输出与实时状态反馈 — 引用 流式传输架构
- [07] Channel 设计与状态更新语义 — 首次覆盖
- [08] 预构建 Agent 与 ToolNode 集成 — 引用 工具调用协议
Dev 开发教程(dev/)
从框架开发者视角,聚焦 LangGraph 自身的工程实践:
- [01] Monorepo 架构与多包依赖管理
- [02] Pregel 执行引擎的核心实现
- [03] Channel 系统的协议设计与扩展
- [04] Checkpoint 接口抽象与后端可插拔
- [05] 错误处理、重试与超时策略
- [06] 测试策略:从单元测试到大规模集成测试
- [07] CLI 工具与本地开发服务器