以编程方式使用文档

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

要升级,请

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

变更摘要

领域变更内容
React 预构建版本createReactAgent 已弃用;请使用 LangChain createAgent
中断通过 interrupts config
toLangGraphEventStream 已移除使用 graph.stream 并指定所需的 encoding 格式
useStream支持自定义传输

Deprecation: createReactAgentcreateAgent

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

详情请参阅 LangChain v1 文档:

const agent = createAgent({
  model,
  tools,
  systemPrompt: "You are a helpful assistant.", // [!code highlight]
});
const agent = createReactAgent({
  model,
  tools,
  prompt: "You are a helpful assistant.", // [!code highlight]
});

类型化中断

您现在可以在图构建时定义中断类型,以严格类型化传入和传出中断的值。

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" }); // [!code highlight]
    return { foo: value };
  })
  .compile();
const graph = new StateGraph(State)
  .addNode("node", async (state, runtime) => {
    const value = runtime.interrupt.approve({ reason: "review" }); // [!code highlight]
    return state;
  })
  .compile();

参阅 中断 了解更多。

事件流编码

低级 toLangGraphEventStream 辅助工具已移除。流式响应由 SDK 处理;在使用低级客户端时,通过 encoding 选项传递给 graph.stream.

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

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

重大变更

已停止支持 Node 18

所有 LangGraph 包现在需要 **Node.js 22 或更高版本**。Node.js 18 已于 生命周期结束 2025 年 3 月。

新的构建输出

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