LangChain 和 LangGraph 是什么关系?
很多人搞混,因为它们是同一个公司(LangChain Inc)出的,名字也像,文档还互相引用。
有人说是升级版——LangGraph 是 LangChain 的替代品。有人说是互补版——LangChain 做链,LangGraph 做图。
都不对。LangChain 的官方文档有一句非常清楚的描述:
这意味着:LangGraph 是地基,LangChain 是上层建筑。它们不是竞品,是上下层关系。
LangChain 官网把自己家的产品分成三个层级:
| 产品 | 层级 | 一句话定位 |
|---|---|---|
| Deep Agents | 高层 | 开箱即用的 Agent,带上下文压缩、虚拟文件系统、子代理 |
| LangChain | 中层 | create_agent——最小可配的 Harness(缰绳) |
| LangGraph | 底层 | 有状态、长运行 Agent 的完整编排框架 |
选择指南也很清晰:想快速上手用 Deep Agents;想高度定制自己的 Agent 用 LangChain;需要高级编排用 LangGraph。
LangGraph 的官方定义:低阶编排框架,用于构建、管理和部署长运行、有状态的 Agent。
关键词:
它的核心模型是 StateGraph(状态图):
节点(Node) → 执行一个函数
边(Edge) → 控制执行流向
状态(State) → 在节点间传递和持久化 这更像 Pregel(Google 的大规模图处理框架)和 NetworkX(Python 图论库),而不是传统的 Agent 框架。LangGraph 自己也承认受这两者启发。
LangGraph 解决的核心问题: 当 Agent 逻辑不是"调用工具→返回结果"这么简单时——比如需要多步决策、条件分支、人机协作、失败恢复——你需要一个图来建模执行流,而不是一条链。
LangChain 在 2026 年的定位已经非常清晰:
create_agent: a minimal, highly configurable harness.
它的核心就是 create_agent——模型 + 工具 + 提示词的最小组合:
from langchain.agents import create_agent
agent = create_agent(
model="openai:gpt-5.5",
tools=[get_weather],
system_prompt="You are a helpful assistant",
) 简单、直接。
LangChain 本质上是对 LangGraph 的封装——它用 LangGraph 的 StateGraph 实现了一个预配置的 Agent 循环,让开发者不需要跟图打交道。
| 维度 | LangChain | LangGraph |
|---|---|---|
| 层级 | 中层抽象 | 底层框架 |
| 核心模型 | create_agent + 中间件 | StateGraph(节点+边+状态) |
| 抽象程度 | Harness——围绕模型循环的配置层 | 编排引擎——控制执行流程 |
| 状态管理 | 有(基于 LangGraph) | 核心特性(持久化/恢复) |
| 学习曲线 | 低(几行代码) | 中高(需理解图模型) |
| 与对方关系 | 建立在 LangGraph 之上 | 可被 LangChain 调用,也可独立使用 |
一个简单的决策树:
你的 Agent 逻辑是不是"调用工具→返回结果"?
├── 是 → LangChain 就够了
└── 否 → 你需要:
├── 多步决策?→ LangGraph
├── 条件分支?→ LangGraph
├── 人机协作?→ LangGraph
├── 失败恢复?→ LangGraph
└── 多 Agent 协作?→ LangGraph 更直白地说:如果你的 Agent 逻辑能写在一段代码里,LangChain 就够了。如果需要画一张图才能说清楚执行逻辑,你需要 LangGraph。
LangGraph 给了我们一个系统的方案来建模多 Agent 编排。但有一个关键的取舍:目前用 Hermes 的 delegate_task 对我们更实际——不需要引入新语言、新框架,就能跑通流水线。等流水线复杂到"用语言描述不清楚"的时候,再考虑 LangGraph 不迟。
💬 评论