🤖 AI 跟我学 新手入门

LangChain vs LangGraph 怎么选:开发者实战对比

LangChain vs LangGraph 怎么选?这篇用 12 维度横评两套框架的定位差异、上手难度、生产可用度,给 4 类典型用户明确推荐,含真实代码片段和踩坑记录

发布 2026/05/20

一句话先给结论

LangChain vs LangGraph 不是「二选一」,而是「先用谁、再加谁」的关系。按用户画像直接给推荐:

  • 第一次写 LLM 应用 / 只做单轮问答 → 选 LangChain(生态最大、文档最全、上手最快)
  • 要做多步骤 Agent + 工具调用 + 中途分支 → 选 LangGraph(专为 stateful agent loop 设计)
  • 要做 multi-agent 协作 + 人类介入审批 → 选 LangGraph(节点 + 状态机模型天然适合)
  • 生产环境跑 Agent + 要可观测 + 要重放LangGraph + LangSmith 组合(同公司一套)

下面给详细对比和推荐理由。两个框架都是 LangChain 公司出的,但定位不同——选错会让你后期不得不重写

12 大维度横评

维度LangChainLangGraph
发布时间2022-102024-01
核心抽象Chain / RunnableGraph + State
适合场景单轮 / 线性流程多步循环 / 分支
Agent 支持AgentExecutor(被标 deprecated)原生 ⭐
状态管理弱(靠 Memory 模块)强 ⭐(State Schema)
工具调用循环隐式,黑盒显式节点 ⭐
中断 / 人审难实现原生 interrupt ⭐
可观测性配 LangSmith配 LangSmith ⭐
学习曲线平 ⭐稍陡
中文资料极丰富 ⭐中等(增长快)
生态插件上千个 ⭐复用 LangChain
适合人群入门 / 原型生产 / 复杂 Agent

关键差异行(⭐):

  • Agent 支持:LangChain 原来的 AgentExecutor 在 2024 年起被官方标 deprecated,新项目官方明确推荐用 LangGraph
  • 状态管理:LangChain 靠 ConversationBufferMemory 拼接 prompt,复杂场景容易超 token;LangGraph 用 TypedDict 定义 State Schema,每步只取需要的字段
  • 中断 + 人审:金融、医疗、法务场景要求 Agent 关键决策时停下来等人批准——LangGraph 一个 interrupt_before 参数搞定,LangChain 几乎做不到

怎么选:4 种典型用户画像

画像 1:第一次写 LLM 应用 / 学生 / 个人玩家

「我刚开始学,就想做个能调 OpenAI 总结文档的小工具。」

直接上 LangChain。它的 RunnableSequence 模型 5 行代码就能跑通「输入 → prompt → LLM → parser → 输出」。教程多到看不完,遇到坑随手 Google 就能解决。

入门建议先看 OpenAI Agents SDK 指南 理解一下 Agent 的基本概念,再回头看 LangChain 的 Quickstart 就特别顺。

典型 5 行代码

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_template("用 3 句话总结:\{text\}")
llm = ChatOpenAI(model="gpt-4o-mini")
chain = prompt | llm

result = chain.invoke(\{"text": "..."\})

画像 2:要做带工具调用的 Agent / 创业团队 MVP

「我要做一个能查数据库、查 API、自动写报告的 AI 助手,用户问一个问题,AI 自己决定查哪些工具。」

直接用 LangGraph。这种「LLM 自己决定下一步」就是 stateful agent loop 的典型场景,LangChain 的 AgentExecutor 跑这种 case 很难调试——出错你不知道在哪一步。

LangGraph 的核心模型是「节点 + 边 + 状态」:每个节点是一个 Python 函数,边定义跳转条件,状态是 TypedDict。整个 agent 是一张有向图,每一步都看得见

工具调用底层看 Function Calling 是什么,多步骤工作流概念看 Agent Workflow 基础

画像 3:要做 multi-agent 协作 / 中大型团队

「我要 3 个 Agent 配合干活:一个查资料、一个写初稿、一个审稿。」

LangGraph + 它的子项目 LangGraph Multi-Agent。multi-agent 协作的核心难点是:

  1. Agent 之间消息怎么路由
  2. 哪个 Agent 该接管下一步
  3. 谁来仲裁分歧

LangGraph 的「Supervisor + Worker」「Hierarchical」「Network」三种 multi-agent 模式都有官方模板,直接抄。多 Agent 概念先看 Multi-Agent 是什么AI Agent 类型 打底。

画像 4:生产环境要可观测 / 中大企业

「我们 Agent 已经上线了,每天跑 10 万次,我得知道哪些 case 失败、哪些花了过多 token、怎么回放调试。」

LangGraph + LangSmith(同公司,配置一行环境变量就接上)。LangSmith 给你:

  • 每次 agent 运行的完整 trace(每个节点输入 / 输出 / 耗时 / token)
  • 失败 case 一键 replay 重跑
  • A/B test 不同 prompt 版本的效果
  • 数据集 + 自动评测

LangChain 也能配 LangSmith,但 trace 粒度没 LangGraph 细——因为 LangChain 的 chain 是「黑盒函数」,LangGraph 的图是「节点序列」,后者天然适合观测。

各框架的核心优势 + 劣势

LangChain

优势

  1. 生态全宇宙第一:上千个 Document Loader、Vector Store、LLM Provider 集成,几乎不用自己写适配代码
  2. 文档和教程最丰富:B 站 / YouTube 中文教程几百小时
  3. 上手最快:3 行代码出第一个 demo

劣势

  1. Agent 能力弱:AgentExecutor 已废弃,复杂 agent 跑起来像黑盒
  2. 状态管理原始:Memory 模块设计偏老,复杂场景容易爆 context

LangGraph

优势

  1. 专为 stateful agent 设计:节点 + 边 + 状态的模型一旦理解,多步骤 agent 写起来非常顺
  2. 可中断可恢复:interrupt + checkpoint 让 Agent 能停下等人审批,再从断点继续
  3. 可观测性顶级:LangSmith trace 能看到每个节点的输入输出

劣势

  1. 学习曲线略陡:先要理解状态机概念,比 LangChain 多花 1-2 天
  2. 中文资料相对少:英文文档为主,但 2026 年起涨得很快

真实使用感受:我用两套都写过一个翻译 Agent

我用 LangChain 写第一版翻译 Agent:用户传 PDF → 切片 → 调 GPT-4 翻译 → 合并 → 返回 Markdown。

代码极快,当天就跑通。但 3 个问题暴露:

  1. 切片后某个分块翻译失败,没法只重试那一块,整个 chain 重跑 → 浪费 token
  2. 想加「翻译完让用户预览 + 修改后再继续」,发现 LangChain 几乎没机制
  3. 出错时只看到「chain failed at step 3」,不知道是哪个分块的 prompt 出问题

重写成 LangGraph 后:每个分块是一个节点,state 里存「已翻译块」和「失败块」,失败的可以单独重试;加「人工审核」节点用 interrupt_before 一行搞定;LangSmith 上每个节点 trace 一清二楚。多花了 2 天,但生产用了半年没出大问题。

教训:原型 / 试水用 LangChain 快真要做 Agent 一开始就用 LangGraph 省事

一段能直接抄的 LangGraph Agent

下面是一个最简 LangGraph Agent 模板:用户问问题 → LLM 决定调工具 → 执行工具 → LLM 综合 → 回答。

from typing import TypedDict, Annotated
from langgraph.graph import StateGraph, END
from langgraph.graph.message import add_messages
from langchain_openai import ChatOpenAI
from langchain_core.tools import tool
from langchain_core.messages import HumanMessage

@tool
def get_weather(city: str) -> str:
    """查城市当前天气"""
    return f"\{city\} 当前 24 度,晴"

class AgentState(TypedDict):
    messages: Annotated[list, add_messages]

llm = ChatOpenAI(model="gpt-4o").bind_tools([get_weather])

def call_llm(state: AgentState):
    return \{"messages": [llm.invoke(state["messages"])]\}

def should_continue(state: AgentState):
    last = state["messages"][-1]
    if last.tool_calls:
        return "tools"
    return END

workflow = StateGraph(AgentState)
workflow.add_node("llm", call_llm)
workflow.add_node("tools", ToolNode([get_weather]))
workflow.set_entry_point("llm")
workflow.add_conditional_edges("llm", should_continue)
workflow.add_edge("tools", "llm")

app = workflow.compile()
result = app.invoke(\{"messages": [HumanMessage(content="上海天气怎样")]\})

把它跑起来你就能感受到 LangGraph 和 LangChain 的本质区别——Agent 的每一步都看得到、改得动、断点回得来

一个能直接套的选型 Prompt

不确定选哪个?把你的需求贴给 Claude / ChatGPT 让它推荐:

📋 Prompt 模板

你是一位资深 AI 工程师,帮我判断在 LangChain 和 LangGraph 之间该选哪个。

我的项目情况:

  • 业务场景:[一句话描述要做什么]
  • 团队规模:[人数 + 是否有 Python 老手]
  • 是否生产环境:[原型 / MVP / 正式生产]
  • 是否需要工具调用:[是 / 否,调用哪些工具]
  • 是否需要多步骤 / 分支判断:[是 / 否]
  • 是否需要 multi-agent 协作:[是 / 否]
  • 是否需要人类审批介入:[是 / 否]
  • 是否需要可观测 / 重放:[是 / 否]
  • 预算约束:[只要免费的 / 可付费 LangSmith]

请按以下格式输出:

  1. 推荐框架:LangChain / LangGraph / 两者结合
  2. 理由:3 个核心理由
  3. 第一步该学什么:3 个具体动作
  4. 风险提示:1-2 个值得警惕的坑
  5. 备选方案:如果 6 个月后需求升级,怎么迁移

约束:

  • 不要骑墙派,必须给明确推荐
  • 不要堆术语,每条理由要能让懂 Python 但不懂 LangChain 的人看懂

最终建议 + FAQ

总结一句话:原型用 LangChain,生产 Agent 用 LangGraph;如果团队学习能力强,新项目直接上 LangGraph 一步到位,未来不用重写。

Q1:LangChain 会被 LangGraph 取代吗?

短期内不会。LangChain 的「集成层」(Document Loader、Vector Store、Provider)是 LangGraph 的基础组件,LangGraph 还需要它。可以理解为「LangChain 是工具箱,LangGraph 是装配车间」。

Q2:LlamaIndex 和这俩什么关系?

LlamaIndex 偏 RAG(RAG 是什么),LangChain/LangGraph 偏 Agent。做知识库问答用 LlamaIndex;做 Agent 用 LangChain/LangGraph。两套可以同时用。

Q3:CrewAI、AutoGen 跟 LangGraph 比?

CrewAI、AutoGen 是更高阶的 multi-agent 框架,「角色 + 协作模式」是一等公民。LangGraph 更底层灵活。简单团队任务用 CrewAI 上手快要精细控制每一步用 LangGraph

Q4:国产平台扣子、Dify 跟这两个对比呢?

扣子和 Dify 是「无代码 Agent 平台」(扣子 vs Dify 对比),适合产品经理 / 运营自己搭。LangChain/LangGraph 是「代码框架」,给开发者用。前者上限低但门槛低,后者反之。

Q5:要学多久?

LangChain 入门 1 天能写第一个 demo,1 周能上线一个 RAG 问答;LangGraph 多花 2-3 天理解状态机概念,1 周能写一个完整 agent loop。前提你会 Python

Q6:哪里有靠谱中文教程?

LangChain 官方文档有中文版(python.langchain.com/zh),LangGraph 中文教程相对少,建议直接看英文文档 + GitHub examples。

下一步学什么

学完选型,建议按这条路径深入:

选完框架不是终点。真正决定 Agent 好坏的是 prompt 质量、工具设计、错误处理——框架只是脚手架。