28ca43ccb2
将 note、pdd、prd、roadmap 四类文档分别归入 `design/` 下对应子目录中,并新增 `.gitkeep` 占位文件
7.8 KiB
7.8 KiB
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 framework:abstractions and integrations for models, tools, and agent loops. LangGraph = orchestration runtime:durable 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 |
旧组件(LLMChain、ConversationChain 等)移入 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 GA(2025-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 调试 | ✅ 稳定 | 回滚任意 checkpoint,fork 重放 |
| 流式输出 | ✅ 稳定 | 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 GA(2025-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