一、1.0版本的重大意义
2025 年 10 月 22 日,LangChain 官方团队宣布,LangChain 与 LangGraph 两大核心框架同步发布 1.0 版本。
LangGraph 是一款底层智能体编排框架,其内置智能体运行时(具备可靠执行、短期记忆、人机协同模式、流式传输等能力),能为开发者提供可靠的执行能力与精细化控制,助力其在生产环境中运行复杂的智能体系统,可用于构建任意工作流及智能体模式;LangChain则包含创建智能体的高层级接口,其通过标准化的模型抽象层与智能体抽象,让开发者轻松快速上手创建不同的智能体,帮助开发者快速交付人工智能(AI)功能,无需受限于特定服务商(vendor lock-in),即可轻松构建复杂应用。
在 LangChain 1.0 中, langchain包的重心围绕智能体这一抽象概念展开,并推出了新的 create_agent 实现。 新的create_agent接口保持相同的高层级接口,但底层支撑有所不同。新的实现在 LangGraph 的基础上构建,以充分利用其底层的智能体运行时能力。尽管这对 langchain 包而言是新功能,但在 LangChain 生态系统中并非首次出现。过去一年里,它作为 langgraph.prebuilts 的一部分已历经实战检验。
1.0 版本的发布意义重大。它不仅是框架迭代的里程碑,更是对过去数年社区反馈的集中回应。
LangChain与LangGraph 1.0 版本的发布为AI智能体从原型开发走向生产落地提供了更稳定、更灵活的技术底座。
二、LangChain 1.0的核心变化
LangChain 1.0 版本作为一款专注于构建智能体(Agents)的、可用于生产环境的基础框架。主要围绕三项核心改进对该框架进行了精简优化,具体如下:
1、create_agent
create_agent 是 LangChain 1.0 中构建智能体的标准方式。相较于 langgraph.prebuilt.create_react_agent,它提供了更简洁的接口,同时通过使用中间件(middleware),还具备了更强的自定义潜力。
from langchain.agents import create_agent
agent = create_agent(
model="claude-sonnet-4-5-20250929",
tools=[search_web, analyze_data, send_email],
system_prompt="You are a helpful research assistant."
)
result = agent.invoke({
"messages": [
{"role": "user", "content": "Research AI safety trends"}
]
})
- 中间件(Middleware)
中间件(Middleware)是 create_agent 函数的标志性功能。它提供了一个高度可自定义的入口,大幅提升了开发上限,让你能构建更复杂的智能体功能。优秀的智能体需要 “上下文工程”(context engineering)支持:即在恰当的时机为模型提供准确的信息。通过一种可组合的抽象层,中间件可帮助你实现以下功能的控制:动态提示词(dynamic prompts)、对话摘要生成(conversation summarization)、工具选择性调用(selective tool access)、状态管理(state management)以及安全护栏(guardrails)。 LangChain 为一些常见场景提供了若干预构建中间件,具体包括:- PIIMiddleware(个人身份信息中间件):在将信息发送至模型前,对敏感信息进行脱敏处理
- SummarizationMiddleware(摘要生成中间件):当对话历史过长时,对其进行精简压缩
- HumanInTheLoopMiddleware(人工介入中间件):对于敏感工具的调用,需经过人工审批方可执行
from langchain.agents import create_agent
from langchain.agents.middleware import (
PIIMiddleware,
SummarizationMiddleware,
HumanInTheLoopMiddleware
)
agent = create_agent(
model="claude-sonnet-4-5-20250929",
tools=[read_email, send_email],
middleware=[
PIIMiddleware("email", strategy="redact", apply_to_input=True),
PIIMiddleware(
"phone_number",
detector=(
r"(?:\+?\d{1,3}[\s.-]?)?"
r"(?:\(?\d{2,4}\)?[\s.-]?)?"
r"\d{3,4}[\s.-]?\d{4}"
),
strategy="block"
),
SummarizationMiddleware(
model="claude-sonnet-4-5-20250929",
max_tokens_before_summary=500
),
HumanInTheLoopMiddleware(
interrupt_on={
"send_email": {
"allowed_decisions": ["approve", "edit", "reject"]
}
}
),
]
)
用户也可以根据自身需求构建自定义中间件。中间件会在智能体执行流程的每一个步骤中暴露钩子(hooks),以便进行功能扩展。通过在 AgentMiddleware 类的子类上实现以下任一钩子(hooks),即可构建自定义中间件:
| 钩子(Hook) | 运行时机(When it runs) | 适用场景(Use cases) |
|---|---|---|
| before_agent | 调用智能体之前 | 加载内存(Load memory)、验证输入(Validate input) |
| before_model | 每次调用大语言模型(LLM)之前 | 更新提示词(Update prompts)、精简消息(Trim messages) |
| wrap_model_call | 围绕每次大语言模型(LLM)调用 | 拦截并修改请求 / 响应(Intercept and modify requests/responses) |
| wrap_tool_call | 围绕每次工具调用 | 拦截并修改工具执行过程(Intercept and modify tool execution) |
| after_model | 每次大语言模型(LLM)返回响应后 | 验证输出(Validate output)、应用安全护栏(Apply guardrails) |
| after_agent | 智能体完成执行后 | 保存结果(Save results)、清理资源(Cleanup) |
- 基于 LangGraph 构建
由于 create_agent 是基于 LangGraph 构建的,因此它自动内置了对长期运行且可靠的智能体的支持,具体体现在:- Persistence(持久化) 借助内置的检查点功能(built-in checkpointing),对话可在不同会话(sessions)间自动保持连续性(即对话状态不丢失)。
- Streaming(流式传输) 实时流式传输令牌(tokens)、工具调用信息及推理轨迹(reasoning traces)。
- Human-in-the-loop(人工介入) 在执行敏感操作前暂停智能体运行,等待人工审批后再继续。
- Time travel(时间回溯) 可将对话回溯到任意节点,并探索其他可能的路径(alternate paths,如不同决策步骤)与提示词(alternate prompts)。
用户无需学习 LangGraph 即可使用这些功能 —— 它们是开箱即用的。
-
结构化输出
create_agent在结构化输出生成方面进行了优化,具体如下:- 主循环集成:结构化输出现在直接在主循环中生成,无需额外调用大语言模型(LLM)。
- 结构化输出策略:模型可在两种方式间选择 —— 调用工具,或使用服务提供商端的结构化输出生成功能。
- 成本降低:去除了因额外调用大语言模型而产生的附加费用。
-
错误处理
可通过ToolStrategy(工具策略)的handle_errors(处理错误)参数来控制错误处理流程,具体涉及以下两类错误:- 解析错误:模型生成的数据与期望的结构不匹配。
- 多工具调用错误:对于结构化输出模式,模型生成了 2 次及以上的工具调用请求。
2、标准内容块
新的 content_blocks 属性为消息内容引入了一种可跨服务提供商使用的标准表示形式:
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic(model="claude-sonnet-4-5-20250929")
response = model.invoke("What's the capital of France?")
# Unified access to content blocks
for block in response.content_blocks:
if block["type"] == "reasoning":
print(f"Model reasoning: {block['reasoning']}")
elif block["type"] == "text":
print(f"Response: {block['text']}")
elif block["type"] == "tool_call":
print(f"Tool call: {block['name']}({block['args']})")
它带来的好处是:
- 跨服务提供商兼容性:无论使用哪个服务提供商,都能通过相同的编程接口(API)获取推理轨迹、引用来源、内置工具(网络搜索、代码解释器等)及其他功能。
- 类型安全:为所有内容块类型提供完整的类型提示。
- 向后兼容:标准内容可延迟加载,因此不会产生相关的破坏性变更。
3、简化包(Simplified Package)
LangChain 1.0 对 langchain 包的命名空间(namespace)进行了精简,使其聚焦于智能体(agents)的核心构建模块。优化后的命名空间仅开放最实用、最相关的功能,具体如下:
| 模块(Module) | 可用内容(What’s available) | 说明(Notes) |
|---|---|---|
| langchain.agents | create_agent、AgentState | 智能体创建核心功能 |
| langchain.messages | 消息类型、内容块、trim_messages | 从 @[langchain-core] 重新导出 |
| langchain.tools | @tool(工具装饰器)、BaseTool(基础工具类)、注入辅助工具(injection helpers) | 从 @[langchain-core] 重新导出 |
| langchain.chat_models | init_chat_model(聊天模型初始化函数)、BaseChatModel(基础聊天模型类) | 统一模型初始化 |
| langchain.embeddings | Embeddings(嵌入模型类)、init_embeddings(嵌入模型初始化函数) | 嵌入模型(用于将文本转换为向量表示) |
这些内容中的大部分是为方便使用而从 langchain-core(LangChain 核心模块)重新导出的,这能为你提供一个聚焦于智能体构建的 API 接口集合。
langchain-classic(旧版 LangChain 包) 旧版功能已迁移至 langchain-classic,以保持核心包的精简性与聚焦性。 langchain-classic 包含的内容:
- 旧版链路(Legacy chains)及链路实现
- 检索器(例如 MultiQueryRetriever,或原 langchain.retrievers 模块中的所有检索器)
- 索引 API(The indexing API)
- 中心模块(用于通过编程方式管理提示词)
- langchain-community 包的导出内容
- 其他已废弃功能
若你使用了上述任一功能,请安装 langchain-classic 包,然后更新你的导入语句。
三、LangGraph1.0的核心变化
LangGraph v1 是针对智能体运行时(agent runtime)推出的、以稳定性为核心的版本。该版本保持核心图 API(graph APIs)与执行模型不变,同时优化了类型安全(type safety)、文档(docs)以及开发者易用性(developer ergonomics)。
LangGraph v1 设计为与 LangChain v1 协同工作(LangChain v1 的 create_agent 函数基于 LangGraph 构建),因此你可从高层级功能入手,在需要时再深入到精细化控制层面。
- 稳定的核心 API
图元(状态、节点、边)及执行 / 运行时模型保持不变,让升级过程简单直接。
- 默认具备可靠性
带有检查点、持久化、流式传输及人机协同功能的可靠执行,仍是核心特性。
- 与 LangChain v1 无缝衔接
LangChain 的 create_agent(智能体创建函数)运行于 LangGraph 之上。若需快速上手,可使用 LangChain;若需自定义编排,则可深入使用 LangGraph。
四、总结
LangChain&LangGraph 1.0 版本的发布标志着作为生产级智能体开发框架的成熟。
从LangChain&LangGraph 1.0 开始,LangChain&LangGraph的定位更加明确、设计更加成熟、架构更加可靠。
LangChain聚焦于生产级智能体的开发,提供统一的智能体抽象,方便开发者上手;
LangGraph定位于智能体底层编排框架与运行时环境,提供智能体更精细的底层编排能力和底层运行环境。
LangChain&LangGraph框架有可能成为生产级智能体开发的行业标准。