LangChain and LangGraph Agent Frameworks Reach v1.0 Milestones

LangChain 和 LangGraph 代理框架达到 v1.0 里程碑

7 分钟阅读

作者:Sydney Runkle 和 LangChain OSS 团队

我们发布了 LangChain 1.0 和 LangGraph 1.0——我们开源框架的第一个主要版本!经过多年的反馈,我们更新了 langchain,将其重点放在核心代理循环上,通过新的中间件概念提供灵活性,并升级了模型集成以支持最新的内容类型。

这两个框架服务于不同的目的

  • LangChain 是构建 AI 代理的最快方式——具有标准的工具调用架构、提供商无关的设计以及用于自定义的中间件。
  • LangGraph 是一个更底层的框架和运行时,适用于高度自定义和可控的代理,旨在支持生产级的、长期运行的代理。

这些 1.0 版本标志着我们对开源库稳定性的承诺,直到 2.0 版本之前不会有破坏性更改。与这些版本一同推出的,还有一个全新设计的 文档网站

在下方了解更多关于这些变更的信息,并查看我们与工程师们进行的 幕后对话,获取更多评论。

LangChain 1.0

LangChain 一直提供用于与 LLM 交互和构建代理的高级接口。通过标准化的模型抽象和预构建的代理模式,它帮助开发人员快速发布 AI 功能,并在没有供应商锁定风险的情况下构建复杂的应用程序。在任何任务的最佳模型都在不断变化的空间里,这一点至关重要。

我们一直在倾听。 在过去三年里,我们收到了持续的反馈:LangChain 的抽象有时过于沉重,包的表面积已经变得庞大难用,开发人员希望在不回退到原始 LLM 调用接口的情况下,对代理循环有更多的控制权。当他们的用例偏离了我们的预构建模式时,一些人遇到了自定义方面的困难。我们认真对待这些反馈。LangChain 1.0 是我们的回应——一次周密的 refinement,它保留了有效的部分,同时修复了无效的部分。

“我们严重依赖 LangGraph 在底层提供的持久运行时来支持我们的代理开发,而 LangChain 1.0 中新的代理预构建和中间件使其比以往任何时候都更加灵活。我们对 1.0 感到兴奋,并已经在 Rippling 使用新功能进行开发。”——Ankur Bhatt,Rippling AI 负责人

对于 LangChain 1.0,我们重点关注三件事:

  1. 我们的新 create_agent 抽象: 使用任何模型提供商构建代理的最快方式。
    1. 基于 LangGraph 运行时构建,有助于驱动可靠的代理。
    2. 预构建和用户定义的中间件支持分步控制和自定义。
  2. 标准内容块: 模型输出的提供商无关规范。
  3. 精简的表面积: 我们正在缩减命名空间,以专注于开发人员用于构建代理的内容。

1. create_agent

create_agent 抽象围绕核心代理循环构建,方便快速入门。循环的工作方式如下:

设置: 选择一个模型,为其提供一些工具和一个提示。

执行

  1. 将请求发送到模型
  2. 模型响应以下任一内容:
    1. 工具调用 → 执行工具并将结果添加到对话中
    2. 最终答案 → 返回结果
  3. 从第 1 步重复

新的 create_agent 函数在后台使用 LangGraph 来运行此循环。它的感觉与 langgraph.prebuilts 中的 create_react_agent 函数非常相似,后者已在生产环境中使用了近一年。

langchain 中开始使用代理非常容易。

from langchain.agents import create_agent

weather_agent = create_agent(
    model="openai:gpt-5",
    tools=[get_weather],
    system_prompt="Help the user by fetching the weather in their city.",
)

result = agent.invoke({"role": "user", "what's the weather in SF?"})

大多数代理构建器在不允许在此核心循环之外进行自定义方面存在高度限制。这就是 create_agent 以我们引入的 middleware 而脱颖而出的地方。

中间件 (Middleware)

中间件定义了一组钩子,允许您自定义代理循环中的行为,从而在代理执行的每一步实现精细控制。

我们包含了一些内置中间件,用于常见用例:

  • 人工干预 (Human-in-the-loop): 在工具调用执行之前,暂停代理执行,让用户批准、编辑或拒绝。这对于与外部系统交互、发送通信或执行敏感交易的代理至关重要。
  • 摘要 (Summarization): 当消息历史接近上下文限制时,压缩消息历史,保留最近的消息不变,同时对旧的上下文进行摘要。这可以防止 token 溢出错误,并保持长期运行的代理会话的性能。
  • PII 屏蔽 (PII redaction): 使用模式匹配来识别和屏蔽敏感信息,如电子邮件地址、电话号码和社会安全号码,然后再将内容传递给模型。这有助于遵守隐私法规,并防止用户数据被意外泄露。

LangChain 还支持**自定义中间件**,这些中间件可以挂接到代理循环中的各种点。下图展示了这些钩子。

结构化输出生成

我们还通过将其集成到主要的模型 <–> 工具循环中,改进了代理循环中的结构化输出生成。通过消除一个额外的、过去总是会发生的 LLM 调用(除了主循环之外),这减少了延迟和成本。

开发人员现在可以对结构化输出的生成方式进行精细控制,无论是通过工具调用还是提供商的原生结构化输出。

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

from pydantic import BaseModel

class WeatherReport(BaseModel):
    temperature: float    
    condition: str

agent = create_agent(
    "openai:gpt-4o-mini",
    tools=[weather_tool],
    response_format=ToolStrategy(WeatherReport),
    prompt="Help the user by fetching the weather in their city.",
)

标准内容块

LangChain 的数百个提供商集成(OpenAI、Anthropic 等)在 1.0 版本中基本保持不变。这些抽象使用的接口位于 langchain-core 中,我们将其升级到 1.0,并增加了一个关键功能:**标准内容块**。

LangChain 的大部分价值来自于其提供商无关的接口,允许开发人员在单个应用程序中跨多个提供商使用通用协议。没有标准内容块,切换模型或提供商通常会破坏流、UI 和前端以及内存存储。消息上的新 .content_blocks 属性提供了:

  • 跨提供商的一致内容类型。
  • 支持推理追踪、引用和工具调用——包括服务器端工具调用。
  • 用于复杂响应结构的类型化接口。
  • 完全向后兼容。

这使得 LangChain 的抽象能够与现代 LLM 功能(如推理、引用和服务器端工具执行)保持同步,同时最大限度地减少破坏性更改。

简化包

LangChain 1.0 将包范围缩小到基本抽象。旧功能移至 langchain-classic 以实现向后兼容。随着框架的成熟,我们了解了哪些模式最为重要。这个精简的包去除了多年积累的功能,使 LangChain 既简单又强大。

主要变更

  • LangChain 中引入了 create_agent,弃用了 langgraph.prebuilt 中的 create_react_agent
  • 由于 2025 年 10 月的 EOL(生命周期结束),Python 3.9 支持已删除,v1.0 需要 Python 3.10+。
    • Python 3.14 支持即将推出!
  • 包表面积缩小,专注于核心抽象,旧功能已移至 langchain-classic

安装

# Python
uv pip install --upgrade langchain
uv pip install langchain-classic

# JavaScript
npm install @langchain/langchain@latest
npm install @langchain/langchain-classic

迁移

如果您从 LangChain 的先前版本升级,我们已经创建了详细的资源来指导您完成这些更改。

版本概述: PythonJavaScript

迁移指南PythonJavaScript

LangGraph 1.0

AI 代理正从原型走向生产,但持久性、可观察性和人工干预控制等核心功能一直未得到充分支持。

LangGraph 1.0 通过强大的基于图的执行模型解决了这些差距,并为可靠的代理系统提供了生产级功能。

  • 持久状态 (Durable state) - 您的代理的执行状态会自动持久化,因此如果您的服务器在对话中途重启,或者一个长时间运行的工作流被中断,它将准确地从中断的地方恢复,而不会丢失上下文,也不会强迫用户从头开始。
  • 内置持久化 (Built-in persistence) - 在任何点保存和恢复代理工作流,而无需编写自定义数据库逻辑,从而支持多天审批流程或跨多个会话运行的后台作业等用例。
  • 人工干预模式 (Human-in-the-loop patterns) - 通过一流的 API 支持,暂停代理执行以进行人工审查、修改或批准,从而轻松构建人类能够控制高风险决策的系统。

有关我们设计理念的更深入探讨,请参阅我们关于从头开始构建 LangGraph 的 博客文章

这是持久代理框架领域的第一个稳定主要版本——对于生产就绪的 AI 系统来说,这是一个重要的里程碑。经过一年多的迭代以及 Uber、LinkedIn 和 Klarna 等公司的广泛采用,LangGraph 正式发布 v1。

破坏性更改和迁移

唯一值得注意的更改是弃用了 langgraph.prebuilt 模块,增强的功能已移至 langchain.agents

LangGraph 1.0 保持完全向后兼容。

安装

# Python
uv pip install --upgrade langgraph

# JavaScript
npm install @langchain/langgraph@latest

何时使用每个框架

LangChain 让您能够使用常见模式的高级抽象来快速构建和发布代理,而 LangGraph 则为您提供了对需要自定义的复杂工作流的精细控制。

最棒的是什么?LangChain 代理构建在 LangGraph 之上,因此您不会被锁定。从 LangChain 的高级 API 开始,并在需要更多控制时无缝地回退到 LangGraph。由于图是可组合的,您可以混合两种方法——在自定义 LangGraph 工作流中使用由 create_agent 创建的代理,以适应您的需求演变。

选择 LangChain 1.0 用于

  • 使用标准的代理模式快速发布。
  • 适合默认循环(模型 → 工具 → 响应)的代理。
  • 基于中间件的自定义。
  • 对低级控制的高级抽象。

选择 LangGraph 1.0 用于

  • 包含确定性组件和代理组件混合的工作流。
  • 长期业务流程自动化。
  • 需要更多监督/人工干预的敏感工作流。
  • 高度自定义或复杂的工作流。
  • 需要仔细控制延迟和/或成本的应用。

文档和资源

我们将在 docs.langchain.com 上推出改进的文档网站。首次,所有 LangChain 和 LangGraph 的文档——跨 Python 和 JavaScript——都集中在一个统一的网站上,包含并行示例、共享概念指南和整合的 API 参考。

新文档具有更直观的导航、周到的指南和常见的代理架构的深入教程。

感谢与反馈

我们希望您喜欢这些 1.0 版本。我们非常感谢社区多年来对 LangChain 和 LangGraph 的严格测试,才使它们成为今天的样子。凭借每月 9000 万次的下载量,以及为 Uber、JP Morgan、Blackrock、Cisco 等公司的生产应用程序提供支持,我们有责任不断创新,同时也要成为构建代理最可靠的框架。

虽然这是一个重要的里程碑,但我们仍处于软件重大变革的开端。我们想听听您的意见:请在 LangChain 论坛上发帖,告诉我们您对我们 1.0 版本的看法以及您正在构建的内容。

© . This site is unofficial and not affiliated with LangChain, Inc.