文章摘要
LangChain 1.0 与 LangGraph 1.0 的核心区别是什么

在当今快速发展的 AI 领域,两个最受欢迎的 AI 框架正日益壮大并相互竞争:LangChain 1.0 与 LangGraph 1.0。

2025 年 10 月 22 日,LangChain 在其博客上宣布 LangChain 和 LangGraph 智能体框架均已达到 v1.0 里程碑。这一声明将 LangChain 与 LangGraph 1.0 的讨论推向了新的高度。

据红杉资本(Sequoia Capital)消息,LangChain 完成了 1.25 亿美元的 B 轮融资,并同步宣布了 LangChain v1.0,标志着其从原型工具向生产级平台的转型。融资和业务里程碑意味着该生态系统正在通过机构支持实现规模化。

本文将深入剖析这两个新版本,拆解其功能,强调关键差异,并就何时选择其中之一提供切实可行的指导。


目录

  1. 1. LangChain 1.0 与 LangGraph 1.0 的核心区别是什么?
  2. 2. LangChain 1.0 有什么新功能?
  3. 3. LangGraph 1.0 有什么新功能?
  4. 4. 工具对比表:LangChain 1.0 vs LangGraph 1.0
  5. 5. 实战用例:何时使用 LangChain 1.0 vs LangGraph 1.0
  6. 6. 用例对比表
  7. 7. 从 LangChain 迁移到 LangGraph 教程
  8. 8. 常见问题解答 (FAQs)

LangChain 1.0 与 LangGraph 1.0 的核心区别是什么?

LangChain 是一个高层框架,用于快速原型设计和部署基于大语言模型(LLM)的应用程序。它的设计重点在于为模型、工具和智能体(Agents)提供标准化的抽象。这种方法允许开发者构建复杂的 LLM 应用而无需被特定供应商锁定。新的 LangChain 1.0 版本在模块化、性能和生产级支持方面完善了这一愿景。

LangGraph 1.0 是一个底层编排引擎,以支持持久、有状态的智能体工作流而闻名。该工具旨在有效处理生产级、长运行智能体的复杂性。它利用基于图的执行模型(Graph-based execution models)取代了线性链(Linear Chains),并具备流式输出、人机交互(HITL)干预以及数据持久化支持等原生能力。它使 AI 智能体能够循环、分支、重访状态并做出动态决策。LangGraph 非常适合迭代推理、多智能体系统以及长运行、有状态的 AI 应用。

核心差异总结:

虽然两者都能帮助开发者快速构建生产级 LLM 应用,但它们在核心能力、设计理念、抽象层级和用例上有所不同。

  1. • LangChain 1.0 助力于快速、模块化的设置,通常涉及用于构建基础聊天机器人或检索增强生成(RAG)的线性管道。
  2. • LangGraph 1.0 则适用于需要显式状态管理和分支逻辑的非线性、自适应系统。

在工作流设计方面,LangChain 建立在 LCEL (LangChain 表达式语言) 之上,用于声明式链式调用。LangGraph 扩展了这一点,引入了支持循环、重试和条件边的图结构。

二者结合使用效果极佳。LangChain 提供高层易用性(Ergonomics),而 LangGraph 提供底层控制力,LangChain 的新智能体现在后台直接运行在 LangGraph 的运行时(Runtime)上。


LangChain 1.0 有什么新功能?

LangChain 1.0 从一个广泛的工具包演变为一个用于 AI 智能体开发的精简引擎。

2025 年 10 月发布的 LangChain 1.0 版本吸纳了社区反馈,引入了构建在 LangGraph 运行时之上的、经过改进的以智能体为中心的架构。它专注于生产就绪性,提供简洁性、灵活性和长期稳定性,且在 2.0 版本之前没有计划中的破坏性变更。

a) 新特性

向中心化智能体抽象的重大转变

LangChain 1.0 转向统一的智能体对象或模式,构建在 LangGraph 1.0 的运行时之上。

以下是使用 Python 调用天气智能体的示例:

from langchain.agents import create_agent
from langchain.agents.structured_output import ToolStrategy
from pydantic import BaseModel

classWeather(BaseModel):
    temperature: float
    condition: str

defweather_tool(city: str) -> str:
    """获取某城市的天气。"""
    returnf"It's sunny and 70 degrees in {city}"

agent = create_agent(
    "openai:gpt-4o-mini",
    tools=[weather_tool],
    response_format=ToolStrategy(Weather)
)

result = agent.invoke({
    "messages": [{"role": "user", "content": "What's the weather in SF?"}]
})
print(repr(result["structured_response"]))
# 输出: Weather(temperature=70.0, condition='sunny')

通过 Pydantic 模型的结构化输出,确保了跨供应商的响应类型安全。

标准化的消息内容块 (Standard Content Blocks)

LangChain 1.0 引入了标准化的消息内容块,允许跨 LLM 供应商使用结构化数据(如推理轨迹、引用、工具调用)和多模态内容(如图像、音频和 PDF)。

例如:

  1. • 纯文本:message.content_blocks[0].text
  2. • 来源:message.content_blocks[1].citation

在此之前,这被 OpenAI 的 JSON 模式和 Anthropic 的 XML 标签等碎片化处理。新版本提供了统一的、与供应商无关的接口,无需重写代码即可无缝切换模型。

JavaScript 端 API 简化

LangChain 1.0 简化了 API 管理。例如,像 createReactAgent 这样的旧模式已被 createAgent API 取代,简化了智能体的创建流程。

精简的包结构

核心 LangChain 包已被精简,仅保留必要的智能体抽象。JavaScript 中的遗留功能已被移至 @langchain/classic 包中。

改进的集成与向后兼容性

LangChain 1.0 增强了集成并改进了对向后兼容性的支持。例如,它通过标准化消息格式支持主流供应商。此外,内容块等工具也可在遗留消息类型上工作。

b) 设计与开发方法

LangChain 1.0 根据社区反馈,从“多种链或智能体模式”转向更少但更具导向性(Opinionated)的抽象。这种方法引导开发者走向生产就绪,而非仅仅停留在原型模式。

团队识别并剥离了诸如“厚重的抽象”和“过于宽泛的 API 表面积”等痛点。结果是一个更紧凑的命名空间,专注于核心智能体组件,而非详尽的原语。旧的实用工具被移至 langchain-classic。

开发重点转向企业级应用,强调跨 LLM 供应商的稳定性、标准化、可扩展智能体以及多模态工作流。版本控制策略表明,1.0 主版本可能包含破坏性变更和架构改进,并会提供迁移指南。

c) 新文档

LangChain 1.0 的一大更新是重新设计的文档中心,试图解决多年来关于指南分散的反馈。它首次将 Python 和 JavaScript 内容整合在一个统一的体验下。新文档包括概念指南、手把手教程(如构建 RAG 智能体)、统一的 API 参考以及从 v1 之前的版本过渡的迁移指南。

d) 学习曲线

API 更加精简,通过标准化的智能体抽象和简化的 createAgent API,新手可以受益于更一致的工作流。

缺点:如果是从旧的 v0.x 版本升级,会有一些破坏性变更或不同的抽象需要学习。特别是迁移到新的智能体模型、消息内容块,或从旧的链/智能体模式迁移时,存在一定的学习曲线。

e) 社区观点

开发者称赞其经过多年迭代后的成熟度。但也存在批评声音,部分用户认为抽象中存在“非必要的复杂性”,且对于初学者来说,升级类似于 Python 2 到 3 的转变,虽然稳定但门槛较高。


LangGraph 1.0 有什么新功能?

LangGraph 1.0 于 2025 年 10 月 22 日与 LangChain 1.0 同步推出。经过一年的生产环境打磨和社区驱动的改进,这一稳定版本巩固了 LangGraph 作为持久化智能体工作流骨干的地位。

其核心在于,LangGraph 暴露了一个基于图的运行时抽象,用于自定义控制流、分支逻辑、重试和多智能体协调。它允许通过混合确定性逻辑和智能体步骤(Agentic steps)来对执行图进行细粒度控制,从而优化延迟、成本和监督。

a) 新特性

LangGraph 1.0 扩展了其图驱动架构,通过节点(动作)、边(转换)和共享状态对工作流进行建模。这种方法提供了企业级的可靠性和弹性,同时保持实现的简单直观。

一个关键的增加是持久化状态管理 (Durable State Management)。它自动将每个执行步骤通过检查点(Checkpoints)保存到可配置的后端(如内存存储、SQLite 或 PostgreSQL)。因此,工作流可以在崩溃、重启或断开连接后无缝恢复。这使其非常适合处理耗时较长的异步流程,如多日审批。

以下是调用简单持久化图的代码示例:

from langgraph.graph import StateGraph, END
from langgraph.checkpoint.sqlite import SqliteSaver
from typing import TypedDict, Annotated
import operator

classState(TypedDict):
    messages: Annotated[list, operator.add]
    count: int

defincrement(state: State) -> State:
    return {"count": state["count"] + 1}

workflow = StateGraph(State)
workflow.add_node("increment", increment)
workflow.add_edge("increment", END)
workflow.set_entry_point("increment")

memory = SqliteSaver.from_conn_string(":memory:")
app = workflow.compile(checkpointer=memory)

config = {"configurable": {"thread_id": "abc123"}}
result1 = app.invoke({"count": 0}, config)
result2 = app.invoke({"count": 0}, config)  # 从检查点恢复
print(result2["count"])  # 输出: 2

LangGraph 还为短期工作记忆和持久长期状态提供了全面的内存处理,使其非常适合有状态的、多会话智能体。

b) 设计与开发

LangGraph 1.0 的设计旨在解决现有框架“易于开始但难以扩展或定制”的问题。随着 LangChain 1.0 的智能体现在由 LangGraph 运行时驱动,您可以从高层入手,并在需要时下钻进行定制,无需重写成本。

运行时设计将开发者 SDK/API 与执行引擎分离。它放弃了对 Python 3.9 的支持(EOL),并增加了 3.14 兼容性,采用**异步优先(Async-first)**的 API 以实现可扩展性。

新版本允许您混合结构化步骤(如 API 调用)和概率性步骤(如 LLM 决策),并通过边来强制执行确定性。例如,它可以在工具故障时重试,或根据置信度分数进行分支。这与可观测性要求一致,每个节点都会追踪到 LangSmith,确保大规模下的可调试性。

c) 新文档

docs.langchain.com 上的 1.0 文档整合了 LangGraph 和 LangChain 的资源,解决了内容碎片化问题,并提供了关于智能体图论的概念入门。值得注意的是,文档指出 LangGraph 专注于底层编排。如果您只是刚开始接触智能体,使用 LangChain 的高层 API 可能更合适。

d) 学习曲线

LangGraph 是底层且可扩展的,这意味着学习曲线陡峭。它提供了更大的控制权,但也需要更多的理解,因为您需要手动设计图、节点、边和状态流,而不是依赖现成的智能体模板。对于熟悉简单框架的团队来说,理解基于图的编排、状态管理和部署模式需要额外的努力。

e) 社区观点

用户普遍认为“从‘魔法编排’到‘显式状态图’的转变终于来了”,不再有神秘中断的黑盒智能体循环。如果不能画出智能体的状态转换,就无法调试它。但也有用户希望减少类似 AutoGen 的断崖式更新带来的痛苦。


工具对比表:LangChain 1.0 vs LangGraph 1.0

评估维度

LangChain 1.0

LangGraph 1.0

主要定位

用于快速原型设计和生产级 LLM 应用的高层智能体框架

用于持久、有状态和复杂智能体工作流的底层编排引擎

架构

基于 LCEL 的声明式链式调用

基于节点、边和持久状态构建的图运行时

执行控制

抽象化控制,追求简洁

细粒度控制,支持自定义分支、重试和检查点

持久性

短暂(Ephemeral)会话

跨会话的持久状态和可恢复执行

集成层级

即插即用集成(100+ 模型和 API)

与 LangChain 1.0 运行时深度集成以执行图

学习曲线

较低,适合初学者和快速迭代

中等到高,需要理解状态图和运行时逻辑

人机交互 (HITL)

通过高层封装支持

原生支持

暂停/恢复及人工验证

最佳适用场景

构建快速原型、聊天机器人、RAG 管道或工具增强型智能体

部署长运行、多智能体或人机交互系统

何时选择

快速构建并频繁迭代

弹性、生产级智能体编排



实战用例与迁移指南

什么时候使用 LangChain 1.0?

适合需要快速开发、配置最少的情况。

  1. • 用例:聊天机器人、简单的 RAG 管道、客户支持自动化。
  2. • 代码示例:利用 create_agent 和中间件(Middleware)仅需约 20 行代码即可构建支持机器人的系统。

什么时候使用 LangGraph 1.0?

适合需要精确控制编排和弹性的开发者。

  1. • 用例:长运行/有状态智能体(如多阶段审批)、人机交互(HITL)系统、复杂多智能体协作。
  2. • 代码示例:通过 StateGraph 和 add_conditional_edges 构建审批工作流,利用 checkpointer 实现状态持久化。

从 LangChain 迁移到 LangGraph 教程

对于许多开发者来说,从 LangChain 迁移到 LangGraph 并不是必须的,因为 LangChain 1.0 的 create_agent 已经在透明地使用 LangGraph。但是,对于需要循环(Cycles)、持久化或多角色编排的自定义工作流,迁移到 LangGraph 是明智的选择。

架构转变:

  1. • LangChain (旧版):顺序链(Sequential Chains),仅会话内内存,手动重试。
  2. • LangGraph 1.0:节点与边的图,持久化且可恢复的内存,内置检查点。

步骤 1:先决条件与设置

安装依赖:

pip install langchain langgraph langchain-openai langsmith

设置 API Key 并开启 LangSmith 用于调试。

步骤 2:将简单链(Chains)迁移为基本图(Basic Graphs)

旧版的 LCEL 链是线性的。迁移到 StateGraph 意味着数据在步骤间共享。

迁移后 (LangGraph StateGraph):

关键变更:

  1. 1. 定义 State 模式(如 TypedDict)以强制类型安全。
  2. 2. 将逻辑封装在不可变地更新状态的节点函数中。
  3. 3. 编译并调用:API 与链类似,但更具扩展性。
from typing import TypedDict
from langgraph.graph import StateGraph, END
from langchain_openai import ChatOpenAI

classState(TypedDict):
    text: str
    summary: str

defsummarize(state: State) -> State:
    model = ChatOpenAI(model="gpt-4o-mini")
    prompt = f"Summarize the following: {state['text']}"
    response = model.invoke(prompt)
    return {"summary": response.content}

workflow = StateGraph(State)
workflow.add_node("summarize", summarize)
workflow.set_entry_point("summarize")
workflow.add_edge("summarize", END)

app = workflow.compile()
result = app.invoke({"text": "LangChain is a framework for LLM apps."})
print(result["summary"]) 

步骤 3:将智能体迁移为配备工具的图

旧版的 AgentExecutor 是黑盒。LangGraph 将其暴露为用于重试和分支的显式节点。

迁移后 (LangGraph Agent Graph):

关键变更:

  1. 1. 使用 LangGraph 的 create_react_agent(或自定义构建)。
  2. 2. 使用 messages 列表和包含 thread_id 的 config 进行调用。
  3. 3. 添加检查点器(如 MemorySaver),弃用旧的 ConversationBufferMemory。
from langgraph.prebuilt import create_react_agent
from langgraph.checkpoint.memory import MemorySaver

# ... 定义工具和 LLM ...

memory = MemorySaver() # 短期内存
agent_executor = create_react_agent(llm, tools, checkpointer=memory)
config = {"configurable": {"thread_id": "abc123"}}
# 调用方式变为传递 messages

步骤 4:添加持久化和内存

使用 SqliteSaver 替换 MemorySaver 以实现生产级持久化。这允许在重启后通过相同的 thread_id 恢复状态。

步骤 5:集成人机交互 (HITL)

将隐式循环迁移为显式暂停。

# 在自定义图中...
def route_decision(state):
    if "high_risk" in state["messages"][-1].content:
        return "human_review"
    return "continue"

workflow.add_conditional_edges("agent", route_decision, {"human_review": "human_node", "continue": END})

这确保了在高风险任务中的错误减少。


常见问题解答 (FAQs)

Q: LangGraph 现在要取代 LangChain 吗?

A: 不是。LangGraph 不是替代品,而是 LangChain 的运行时扩展。LangChain 1.0 仍然提供构建智能体的高层抽象,而 LangGraph 1.0 在后台处理管理执行图、持久性和控制流的底层编排。

Q: 我需要重写我的 LangChain 项目来使用 LangGraph 1.0 吗?

A: 不一定! 许多现有的 LangChain 工作流无需更改即可继续工作。但是,如果您的项目需要状态持久化、长运行任务或分支逻辑,建议将特定组件迁移到 LangGraph。

Q: LangChain vs LangGraph 1.0:我应该先学哪个?

A: 如果您是 AI 智能体开发的新手,从 LangChain 1.0 开始。它提供了更简单的抽象。随后,您可以转向 LangGraph 1.0 以获得更深层的控制、可扩展性和自定义编排能力。


以上内容不代表本平台立场,仅供读者参考