Files
agcore/design/note/note-langchain-langgraph.md
T
徐涛 28ca43ccb2 chore(docs): 将设计文档从 docs 移至 design 目录
将 note、pdd、prd、roadmap 四类文档分别归入 `design/` 下对应子目录中,并新增 `.gitkeep` 占位文件
2026-07-23 05:45:53 +08:00

7.8 KiB
Raw Blame History

LangChain & LangGraph 功能调研笔记

调研时间:2026-07-06 两者关系:同一公司(LangChain Inc.)维护的堆栈上下两层,不是竞品


两者关系

┌──────────────────────────────────────────┐
│           LangChain (v1.0 GA)            │ ← 高层框架:模型抽象、工具、提示词、600+集成
│   create_agent / LCEL / 组件库           │
├──────────────────────────────────────────┤
│           LangGraph (v1.0 GA)            │ ← 底层运行时:有向图执行引擎
│   StateGraph / Checkpointing / HITL      │
├──────────────────────────────────────────┤
│          LangSmith (可观测性)             │
└──────────────────────────────────────────┘

2025年10月22日同时达到 v1.0 GA,官方分工:

LangChain = agent frameworkabstractions and integrations for models, tools, and agent loops. LangGraph = orchestration runtimedurable execution, streaming, human-in-the-loop, and persistence.

LangChain v1.0 的 create_agent 内部已运行在 LangGraph 引擎上。


LangChain v1.0

定位

高层应用框架,提供 agent 所需的组件抽象集成生态

精简后的核心模块

模块 功能
langchain.agents create_agent, AgentState(取代旧 AgentExecutor
langchain.chat_models init_chat_model, BaseChatModel(统一模型初始化)
langchain.tools @tool, BaseTool
langchain.messages 消息类型、内容块、trim_messages
langchain.embeddings init_embeddings, Embeddings

旧组件(LLMChainConversationChain 等)移入 langchain-classic

七大组件类别

类别 关键组件
Models Chat models, LLMs, Embeddings — 统一接口跨 provider 切换
Tools 600+ provider 集成:API、数据库、搜索引擎等
Agents create_agent, ReAct agents, Tool-calling agents
Memory 消息历史、自定义状态
Retrievers 向量检索器、网络检索器
Document 加载器、分割器、转换器
Vector Stores Chroma, Pinecone, FAISS 等集成

v1.0 关键新特性

1. Middleware 中间件系统create_agent 的钩子系统:

  • before_model — 模型调用前注入/修改
  • after_model — 模型调用后验证/后处理
  • wrap_tool_call — 拦截工具调用错误

2. Standard Message Content — 跨 provider 标准化消息内容格式:

  • 推理/思维链、引用、多模态(图片/音视频/文档)
  • 工具调用、provider 特有工具(web search, code execution
  • 通过 .content_blocks 属性访问,向后兼容

3. create_agent — 取代旧 AgentExecutor,内部运行在 LangGraph 运行时上

成熟度

维度 状态
版本 v1.0 GA2025-10
稳定性 稳定,agent 层经重构后已稳定
生产证明 Replit, Clay, Rippling, Cloudflare, Workday
支持 LTS-style support track
适用场景 RAG、信息提取、单 agent 助手、快速原型

LangGraph v1.0

定位

底层编排运行时,专为有状态、长时间运行、多步骤工作流设计。

核心抽象链

StateGraph → Nodes (纯 Python 函数) → Edges (路由逻辑)
                              ↓
                        Shared State (TypedDict / Pydantic)
                              ↓
                     Checkpointer (每个 super-step 快照)
  • StateGraph: 有状态图,参数化 State 类型
  • Nodes: 纯函数,(State) → updates
  • Edges: add_conditional_edges,支持循环/分支/合并
  • State: TypedDict 或 Pydantic,带 reducer 处理并发更新
  • Reducers: add_messages 等,自动处理追加 vs 覆盖

完整功能矩阵

功能 状态 细节
StateGraph 稳定 循环图(非 DAG),条件边缘,并行 fan-out
Checkpointing v4.1.1 SQLite / PostgreSQL / Redis 后端
Durable Execution 稳定 跨失败自动恢复,从精确断点继续
Human-in-the-loop 一等公民 interrupt() + Command(resume=...)
Time-travel 调试 稳定 回滚任意 checkpointfork 重放
流式输出 稳定 Token 级 + State 级 + Event 级
多 Agent 编排 稳定 Supervisor / Swarm / 层级 / Subgraph
Comprehensive Memory 稳定 短时工作记忆 + 长时持久记忆
增量状态存储 🧪 DeltaChannel beta (v4.1.0+) 长消息列表只存 delta
跨进程状态同步 🧪 RemoteCheckpointer (v4.1.0+) 分布式多 agent 架构
自动 checkpoint 清理 keep_latest TTL (v4.0.2) 避免无限制积累历史
LangGraph Platform 稳定 Agent Server:持久化、任务队列、版本管理
LangGraph Studio 稳定 可视化 agent 工作流

成熟度

维度 状态
版本 v1.0 GA2025-10),checkpointer v4.1.1 (2026-05)
稳定性 高,持久化为架构一等公民
生产证明 Klarna, Replit, Elastic
支持 LTS-style support track
适用场景 多步骤 agent、多 agent 系统、人工审批、长时间运行任务

功能边界对比

维度 LangChain LangGraph
层次 高层应用框架 底层编排运行时
核心抽象 create_agent, LCEL, 组件库 StateGraph, Nodes, Edges, State
思维模型 线性或 DAG 管道 节点 + 边缘的循环有向图
循环/分支 受限 一等公民:任意循环、分支、合并
状态持久化 无原生支持 一等公民Checkpointer
Human-in-loop 需手动编排 一等公民interrupt() + Command
Time-travel 调试 一等公民:回滚 fork 重放
Durable Execution 一等公民:跨故障自动恢复
流式 Token 级 Token + State + Event 每节点流式
多 Agent 编排 需手动组合 原生Supervisor/Swarm/Subgraph
模型抽象 核心优势 复用 LangChain
600+ 集成 核心优势 可复用 LangChain 集成
LCEL 线性链
Middleware v1.0 特有
学习曲线 中等 较陡(需图思维)
部署平台 无独立平台 LangGraph Platform + Studio

决策路线

你的 workflow 需要什么?
│
├─ 线性、始终相同步骤 → LangChain (LCEL / create_agent)
├─ 需要循环/分支/重试 → LangGraph (StateGraph)
├─ 需要持久化/故障恢复 → LangGraph (Checkpointer)
├─ 需要人工审批 → LangGraph (interrupt())
├─ 需要 time-travel 调试 → LangGraph (checkpoint + fork)
├─ 需要多 agent 协作 → LangGraph (Supervisor/Swarm/Subgraph)
└─ 不确定 → 先用 create_agent,遇到瓶颈下钻到 StateGraph

参考来源