Skip to content

本指南概述了 LangGraph v1 中的变更以及如何从先前版本迁移。关于新功能的高层概述,请参阅发布说明

升级方法:

bash
npm install @langchain/langgraph@latest @langchain/core@latest
bash
pnpm add @langchain/langgraph@latest @langchain/core@latest
bash
yarn add @langchain/langgraph@latest @langchain/core@latest
bash
bun add @langchain/langgraph@latest @langchain/core@latest

变更摘要

领域变更内容
React 预构建createReactAgent 已弃用;请使用 LangChain 的 createAgent
中断 (Interrupts)通过 interrupts 配置支持类型化中断
toLangGraphEventStream 已移除使用 graph.stream 并指定所需的 encoding 格式
useStream支持自定义传输方式

弃用:createReactAgentcreateAgent

LangGraph v1 弃用了 createReactAgent 预构建功能。请使用 LangChain 的 createAgent,它运行在 LangGraph 上并增加了灵活的中间件系统。

详情请参阅 LangChain v1 文档:

typescript
import { createAgent } from "langchain";

const agent = createAgent({
  model,
  tools,
  systemPrompt: "You are a helpful assistant.", 
});
typescript
import { createReactAgent } from "@langchain/langgraph/prebuilts";

const agent = createReactAgent({
  model,
  tools,
  prompt: "You are a helpful assistant.", 
});

类型化中断 (Typed interrupts)

现在可以在图构建时定义中断类型,以严格类型化传递给中断和从中断接收的值。

typescript
import { StateGraph, interrupt } from "@langchain/langgraph";
import * as z from "zod";

const State = z.object({ foo: z.string() });

const graphConfig = {
  interrupts: {
    approve: interrupt<{ reason: string }, { messages: string[] }>(),
  },
}

const graph = new StateGraph(State, graphConfig)
  .addNode("node", async (state, runtime) => {
    const value = runtime.interrupt.approve({ reason: "review" }); 
    return { foo: value };
  })
  .compile();
typescript
import { StateGraph } from "@langchain/langgraph";

const graph = new StateGraph(State)
  .addNode("node", async (state, runtime) => {
    const value = runtime.interrupt.approve({ reason: "review" }); 
    return state;
  })
  .compile();

了解更多,请参阅中断


事件流编码 (Event stream encoding)

底层的 toLangGraphEventStream 辅助函数已被移除。流式响应由 SDK 处理;当使用底层客户端时,通过传递给 graph.streamencoding 选项选择线格式。

typescript
const stream = await graph.stream(input, {
  encoding: "text/event-stream",
  streamMode: ["values", "messages"],
});

return new Response(stream, {
  headers: { "Content-Type": "text/event-stream" }, 
});
typescript
return toLangGraphEventStreamResponse({
  stream: graph.streamEvents(input, {
    version: "v2",
    streamMode: ["values", "messages"],
  }),
});

破坏性变更

放弃对 Node 18 的支持

所有 LangGraph 包现在要求 Node.js 20 或更高版本。Node.js 18 已于 2025 年 3 月终止支持

新的构建输出

所有 langgraph 包的构建现在采用基于打包器的方法,而不是使用原始的 TypeScript 输出。如果您之前从 dist/ 目录导入文件(这不推荐),则需要更新导入以使用新的模块系统。

LangChain 中文文档