LangChain 和 LangGraph 是由 LangChain 公司开发的开源框架,专门用于构建基于大语言模型(LLM)的应用程序。它们代表了从简单链式调用到复杂多智能体工作流的演进。
一、LangChain:LLM 应用的"连接器"
核心定位
LangChain 是一个模块化抽象框架,旨在简化 LLM 应用的开发过程。它通过将复杂的 AI 应用开发分解为可重用的组件,让开发者能够像搭积木一样组合各种功能模块。
核心组件
| 组件 | 功能说明 |
|---|---|
| 模型接口 | 标准化不同 LLM(OpenAI、Anthropic、本地模型等)的调用方式 |
| 提示模板 | 管理动态提示词(Prompt Engineering) |
| 工具(Tools) | 封装外部 API、数据库、搜索引擎等能力 |
| 记忆(Memory) | 支持短期对话缓存和长期向量数据库检索 |
| 链(Chain) | 将多个组件串联成固定工作流 |
| 代理(Agent) | 具备自主决策能力的"思考-行动"循环(ReAct 模式) |
演进历程
-
0.x 版本(2023):以 Chain 为核心,强调预定义流程
-
0.1 版本(2024) :模块化拆分,引入
langchain-core等子包 -
0.2/1.0 版本(2025) :彻底聚焦 Agent 能力 ,在 LangGraph 之上重构,仅保留
create_agent核心函数,强调"LLM 循环运行 + 工具调用"的中立运行时
二、LangGraph:复杂工作流的"编排引擎"
核心定位
LangGraph 是 LangChain 团队于 2024 年 10 月 推出的图结构编排框架,专门用于构建有状态、多智能体(Multi-Agent)的复杂应用。它被定位为"智能体运行时",填补了 LangChain 在复杂流程控制上的不足。
核心概念
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 节点 │ ───▶ │ 节点 │ ───▶ │ 节点 │
│ (Agent 1) │ │ (Agent 2) │ │ (工具调用) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└─────────────────────┴─────────────────────┘
│
共享状态 (State)
-
状态(State):跨节点持久化的全局数据,支持断点续跑
-
节点(Nodes):执行任务的基本单元(LLM 调用、工具执行、人工审核)
-
边(Edges) :定义节点间的流转逻辑,支持条件分支和循环
-
检查点(Checkpoint):自动保存执行状态,支持错误恢复和"时间旅行"调试
关键特性
| 特性 | 说明 |
|---|---|
| 循环与分支 | 突破传统 DAG(有向无环图)限制,支持迭代优化和复杂业务逻辑 |
| 持久化 | 自动保存每一步状态,支持暂停/恢复执行,实现错误恢复和人机协作 |
| 人机交互(HIL) | 可在任意节点中断执行,等待人工审批或反馈 |
| 多代理协作 | 支持构建"研究代理+写作代理+审核代理"等分工明确的 AI 团队 |
| 流式输出 | 支持逐 token 实时流式传输,监控代理思考过程 |
三、两者关系与架构对比
LangChain 生态架构
┌─────────────────────────────────────────┐
│ LangChain 1.0 (Agent) │ ← 高层抽象:create_agent
├─────────────────────────────────────────┤
│ LangGraph (运行时) │ ← 编排层:图结构、状态管理
├─────────────────────────────────────────┤
│ LangChain Core │ ← 基础层:模型接口、消息格式
├─────────────────────────────────────────┤
│ OpenAI / Anthropic / 本地模型 / 工具库 │
└─────────────────────────────────────────┘
核心区别
| 维度 | LangChain | LangGraph |
|---|---|---|
| 抽象层级 | 高层封装(链、代理模板) | 底层编排(图节点、状态管理) |
| 流程控制 | 线性链式(Chain)或简单代理循环 | 任意图结构(循环、分支、并行) |
| 状态管理 | 简单内存或外部存储 | 原生状态图,自动持久化 |
| 透明度 | 封装较多,隐藏部分实现细节 | 无隐藏提示词,完全可控 |
| 适用阶段 | 快速原型开发 | 生产级复杂工作流 |
| 人机协作 | 有限支持 | 内置中断、审批、编辑能力 |
协作方式
LangChain 和 LangGraph 并非替代关系,而是互补:
-
LangGraph 复用 LangChain 的模型接口、工具定义和消息格式
-
LangChain 1.0 的 Agent 基于 LangGraph 运行时构建
-
两者共享 LangSmith 调试和可观测性平台
四、典型应用场景
LangChain 适合的场景
-
快速搭建 RAG(检索增强生成)问答系统
-
简单的工具调用 Agent(联网搜索、计算器等)
-
多模态任务链(文本生成→图像生成→语音合成)
LangGraph 适合的场景
-
多智能体协作:研究 Agent 搜集资料 → 写作 Agent 生成报告 → 审核 Agent 校对
-
复杂审批流程:代码生成 → 人工审核 → 自动部署 → 测试反馈循环
-
对话式 AI:支持多轮决策、上下文记忆和人工介入的客服机器人
-
自动驾驶任务流:根据中间结果动态调整执行路径(如数据分析流水线)
总结
-
LangChain 是**"让 LLM 应用开发更简单"**的模块化工具箱,适合快速搭建标准化应用
-
LangGraph 是**"让复杂 AI 流程可控"**的编排引擎,是构建生产级多智能体系统的首选框架
当前社区趋势显示:从探索走向生产时,LangGraph 正成为复杂 Agent 开发的事实标准,而 LangChain 则作为其生态基础设施继续存在。