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 构建于基础的智能体循环之上 —— 调用模型,让其选择要执行的工具,并在其不再调用任何工具时结束:
Core agent loop diagram
更多信息,请参阅智能体

中间件

中间件是 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在智能体完成之后保存结果,清理
Middleware flow diagram
自定义中间件示例:
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"; 

报告问题

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

额外资源

LangChain 1.0

阅读公告

Middleware Guide

深入探讨中间件

Agents Documentation

完整的智能体文档

Message Content

新的内容块 API

Migration guide

如何迁移到 LangChain v1

GitHub

报告问题或贡献代码

另请参阅


Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.