Skip to main content
LangChain v1 是一个专注的、生产就绪的构建智能体的基础。 我们已经围绕三个核心改进精简了框架:

createAgent

在 LangChain 中构建智能体的新标准方式,用更简洁、更强大的 API 替换来自 LangGraph 的 createReactAgent

Standard content blocks

新的 contentBlocks 属性,为所有提供商提供对现代 LLM 功能的统一访问。

Simplified package

langchain 包已精简,专注于智能体的核心构建块,遗留功能已移至 @langchain/classic
要升级,
npm install langchain @langchain/core
有关完整的变更列表,请参阅迁移指南

createAgent

createAgent 是在 LangChain 1.0 中构建智能体的标准方式。与从 LangGraph 导出的预构建 createReactAgent 相比,它提供了一个更简单的接口,同时通过使用中间件提供了更大的定制潜力。
import { createAgent } from "langchain";

const agent = createAgent({
  model: "anthropic:claude-sonnet-4-5",
  tools: [getWeather],
  systemPrompt: "You are a helpful assistant.",
});

const result = await agent.invoke({
  messages: [
    { role: "user", content: "What is the weather in Tokyo?" },
  ],
});

console.log(result.content);
在底层,createAgent 基于基本的智能体循环构建——调用模型,让它选择要执行的工具,然后在不再调用工具时结束:
核心智能体循环图
欲了解更多信息,请参阅 智能体

中间件

中间件是 createAgent 的核心特性。它让 createAgent 高度可定制,提升了你所能构建的上限。 优秀的智能体需要 上下文工程:在正确的时间将正确的信息提供给模型。中间件通过可组合的抽象,帮助你控制动态提示、对话摘要、选择性工具访问、状态管理和护栏。

预构建中间件

LangChain 提供了一些 预构建中间件 用于常见模式,包括:
  • summarizationMiddleware: 精简过长的对话历史
  • humanInTheLoopMiddleware: 要求批准敏感的工具调用
  • piiRedactionMiddleware: 在发送给模型前编辑敏感信息
import {
  createAgent,
  summarizationMiddleware,
  humanInTheLoopMiddleware,
  piiRedactionMiddleware,
} from "langchain";

const agent = createAgent({
  model: "anthropic:claude-sonnet-4-5",
  tools: [readEmail, sendEmail],
  middleware: [
    piiRedactionMiddleware({ patterns: ["email", "phone", "ssn"] }),
    summarizationMiddleware({
      model: "anthropic:claude-sonnet-4-5",
      maxTokensBeforeSummary: 500,
    }),
    humanInTheLoopMiddleware({
      interruptOn: {
        sendEmail: {
          allowedDecisions: ["approve", "edit", "reject"],
        },
      },
    }),
  ] as const,
});

自定义中间件

您也可以构建自定义中间件来满足您的特定需求。 使用 createMiddleware 函数实现这些钩子中的任意一个来构建自定义中间件:
钩子运行时机用例
beforeAgent调用智能体之前加载记忆,验证输入
beforeModel每次 LLM 调用之前更新提示词,裁剪消息
wrapModelCall围绕每次 LLM 调用拦截并修改请求/响应
wrapToolCall围绕每次工具调用拦截并修改工具执行
afterModel每次 LLM 响应之后验证输出,应用防护措施
afterAgent智能体完成后保存结果,清理资源
中间件流程图
示例自定义中间件:
import { createMiddleware } from "langchain";

const contextSchema = z.object({
  userExpertise: z.enum(["beginner", "expert"]).default("beginner"),
})

const expertiseBasedToolMiddleware = createMiddleware({
  wrapModelCall: async (request, handler) => {
    const userLevel = request.runtime.context.userExpertise;
    if (userLevel === "expert") {
      const tools = [advancedSearch, dataAnalysis];
      return handler(
        request.replace("openai:gpt-5", tools)
      );
    }
    const tools = [simpleSearch, basicCalculator];
    return handler(
      request.replace("openai:gpt-5-nano", tools)
    );
  },
});

const agent = createAgent({
  model: "anthropic:claude-sonnet-4-5",
  tools: [simpleSearch, advancedSearch, basicCalculator, dataAnalysis],
  middleware: [expertiseBasedToolMiddleware],
  contextSchema,
});
欲了解更多信息,请参阅完整的中间件指南

基于 LangGraph 构建

由于 createAgent 基于 LangGraph 构建,你将自动获得对长时间运行和可靠的智能体的内置支持,通过:

Persistence

对话通过内置检查点在会话间自动持久化

Streaming

实时流式传输令牌、工具调用和推理轨迹

Human-in-the-loop

在敏感操作前暂停智能体执行以等待人工批准

Time travel

回滚对话到任意点,并探索替代路径和提示
你不需要学习 LangGraph 来使用这些功能——它们开箱即用。

结构化输出

createAgent 改进了结构化输出生成:
  • 主循环集成:结构化输出现在在主循环中生成,无需额外的 LLM 调用
  • 结构化输出策略:模型可以选择调用工具或使用提供商端的结构化输出生成
  • 成本降低:消除了额外 LLM 调用带来的额外开销
import { createAgent } from "langchain";
import * as z from "zod";

const weatherSchema = z.object({
  temperature: z.number(),
  condition: z.string(),
});

const agent = createAgent({
  model: "openai:gpt-4o-mini",
  tools: [getWeather],
  responseFormat: weatherSchema,
});

const result = await agent.invoke({
  messages: [
    { role: "user", content: "What is the weather in Tokyo?" },
  ],
});

console.log(result.structuredResponse);
错误处理:通过 ToolStrategyhandleErrors 参数来控制错误处理:
  • 解析错误:模型生成的数据与所需结构不匹配
  • 多次工具调用:模型为结构化输出模式生成 2+ 次工具调用

标准内容块

大多数软件包都有 1.0 版本可用。目前只有以下内容支持新的内容块:
  • langchain
    • @langchain/core
    • @langchain/anthropic
    • @langchain/openai
计划为内容块提供更广泛的支持。

优势

  • 与提供商无关:无论使用哪个提供商,都可以通过相同的 API 访问推理轨迹、引用、内置工具(如网络搜索、代码解释器等)以及其他功能
  • 类型安全:为所有内容块类型提供完整的类型提示
  • 向后兼容:标准内容可以延迟加载,因此没有相关的破坏性变更
欲了解更多信息,请参阅我们的内容块指南

简化软件包

LangChain v1 精简了 langchain 包命名空间,专注于智能体的核心构建模块。该包仅提供最有用和最相关的功能: 其中大部分是从 @langchain/core 重新导出的,为方便起见,这为您提供了一个用于构建智能体的专注 API 界面。

@langchain/classic

遗留功能已移至 @langchain/classic 以保持核心包的精简和专注。

@langchain/classic 中包含什么

如果您使用任何此功能,安装 @langchain/classic
npm install @langchain/classic
然后更新你的导入:
import { ... } from "langchain"; 
import { ... } from "@langchain/classic"; 

import { ... } from "langchain/chains"; 
import { ... } from "@langchain/classic/chains"; 

报告问题

请将在 1.0 版本中发现的任何问题,在 GitHub 上使用 'v1' 标签 进行报告。

其他资源

LangChain 1.0

阅读公告

Middleware Guide

深入探索中间件

Agents Documentation

完整的智能体文档

Message Content

新的内容块 API

Migration guide

如何迁移到 LangChain v1

GitHub

报告问题或贡献代码

另请参阅


以编程方式连接这些文档 到 Claude、VSCode 等更多应用,通过 MCP 获取实时答案。