阅读视图

发现新文章,点击刷新页面。

LangChain 1.0 发布:agent 框架正式迈入生产级

最近在使用 NestJs 和 NextJs 在做一个协同文档 DocFlow,如果感兴趣,欢迎 star,有任何疑问,欢迎加我微信进行咨询 yunmz777

随着大型语言模型(LLM)逐渐从「实验」走向「生产可用」,越来越多开发团队意识到:模型本身已不是唯一挑战,更关键的是 agent、流程编排、工具调用、人机  in‑the‑loop 及持久状态管理等机制的落地。 在这样的背景下,开源框架  LangChain 和 LangGraph 同步迈入  v1.0  版本——这不只是版本号的更新,而是“从实验架构迈向生产级 agent 系统”的关键一步。

核心更新概览

LangChain 1.0

  • LangChain 一直定位于“与 LLM  交互 + 构建 agent” 的高层框架。它通过标准的模型抽象、预构建的 agent 模式,帮助开发者快速上线 AI  能力。

  • 在过去几年里,社区反馈主要集中在:抽象过重、包的 surface area(命名空间、模块)过大、希望对 agent loop 有更多控制但又不想回归调用原始 LLM。

  • 为此,1.0  版重点做了:

    1. 新的 create_agent(或在 JS  里 createAgent)抽象 — 最快构建 agent 的方法。
    2. “标准内容块”(standard content blocks) — 提供跨模型/提供商的一致输出规范。
    3. 精简包的内容(streamlined surface area) — 将不常用或遗留功能移到 langchain‑classic(或类似)以简化主包。

LangGraph 1.0

  • LangGraph 定位较低层,主要用于"状态持久化 + 可控流程 + 人机介入"的场景。换句话说,当 agent 不只是"输入 → 模型 → 工具 → 输出"那么简单,而是需要"多节点、可暂停、可恢复、多人协作"的复杂流程时,LangGraph 在背后支撑底层运行。

  • 核心特性包括:

    • 可耐久状态(durable state)– agent 执行状态自动保存、服务器中断后可恢复。
    • 内置持久化机制 – 无需开发者为数据库状态管理写很多 boilerplate。
    • 图(graph)执行模型 – 支持复杂流程、分支、循环,而不是简单线性流程。
  • 值得注意的是:LangChain 1.0 的 agent 实际上是构建在 LangGraph 的运行时之上。这意味着从高层使用 LangChain  时,确实获得了底层更强的支持。

Node.js 示例

下面以 Node.js 演示两种场景:

  1. 快速构建一个天气 agent(使用  LangChain  高层抽象)
  2. 增强为结构化输出 + 工具调用示例

安装

npm install @langchain/langchain@latest
npm install @langchain/langgraph@latest

注:请根据实际包名/版本确认,因为官方可能更新命名空间或路径。

示例  1:快速 agent

import { createAgent } from "@langchain/langchain/agents";

async function runWeatherAgent() {
  // 定义一个工具函数,假设已实现
  const getWeatherTool = {
    name: "getWeather",
    description: "获取指定城市天气",
    async call(input) {
      // 这里是工具调用逻辑,例如调用天气 API
      const { city } = input;
      // 模拟返回
      return { temperature: 26, condition: "Sunny", city };
    },
  };

  const weatherAgent = createAgent({
    model: "openai:gpt‑5", // 根据实际模型提供者调整
    tools: [getWeatherTool],
    systemPrompt: "Help the user by fetching the weather in their city.",
  });

  const result = await weatherAgent.invoke({
    role: "user",
    content: "What's the weather in San Francisco?",
  });

  console.log("Result:", result);
}

runWeatherAgent().catch(console.error);

示例  2:结构化输出 + 工具调用

import { createAgent } from "@langchain/langchain/agents";
import { ToolStrategy } from "@langchain/langchain/agents/structured_output";

// 定义结构化输出类型(用 TypeScript 更佳)
class WeatherReport {
  constructor(temperature, condition) {
    this.temperature = temperature;
    this.condition = condition;
  }
}

async function runStructuredWeatherAgent() {
  const weatherTool = {
    name: "weatherTool",
    description: "Fetch the weather for a city",
    async call({ city }) {
      // 调用外部天气API
      return { temperature: 20.5, condition: "Cloudy", city };
    },
  };

  const agent = createAgent({
    model: "openai:gpt‑4o‑mini",
    tools: [weatherTool],
    responseFormat: ToolStrategy(WeatherReport),
    prompt: "Help the user by fetching the weather in their city.",
  });

  const output = await agent.invoke({
    role: "user",
    content: "What’s the weather in Tokyo today?",
  });

  console.log("Structured output:", output);
}

runStructuredWeatherAgent().catch(console.error);

实践注意事项

  • 模型提供者(如  OpenAI、Anthropic、Azure  等)具体接入方式、身份认证、费用控制,需要在项目中自行配置。
  • 工具(tools)需要自行定义:名称、描述、调用逻辑、输入/输出格式。务必做好错误处理与超时控制。
  • 结构化输出(如  ToolStrategy)可提升模型结果的一致性、安全性,但需定义好对应的类/接口/类型。上面示例仅为简化版。
  • 当流程更复杂(例如多步、环节审核、人机交互、长期挂起)时,建议使用  LangGraph  底层能力。

何时选用  LangChain vs LangGraph?

虽然二者紧密相关,但从实用视角来看,有以下建议:

场景 推荐框架 理由
快速构建、标准 agent 流程(模型 → 工具 → 响应)、不需要复杂流程控制 LangChain 1.0 高层抽象快上手,已封装常用模式。
需要流程编排、状态持久化、长流程运行、人工介入、分支逻辑 LangGraph 1.0 支持图执行、持久状态、人机互动,适合生产级 agent。

换句话说,如果你需要“快速构建一个 agent”去实验或上线 MVP,用  LangChain  足够。如果你要做“真正可用、需运维、需被监控、流程可暂停可恢复”的 agent 系统,那  LangGraph  是更合适的底层框架。官方也指出,LangChain 的 agent 是构建在 LangGraph 之上的。

总结

LangChain 1.0 标志着 agent 框架从实验阶段正式迈入生产级应用。本次更新重点解决了抽象过重、包体积过大等问题,推出了 createAgent 这一快速构建 agent 的核心 API,并引入标准内容块以实现跨模型的一致输出。更重要的是,LangChain 1.0 的 agent 运行在 LangGraph 运行时之上,为开发者提供了更强的底层支持。对于需要快速构建标准 agent 流程的场景,LangChain 1.0 提供了简洁的高层抽象;而当需求涉及复杂流程编排、状态持久化时,可以深入使用底层的 LangGraph 能力。

❌