本指南概述了 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: createReactAgent → createAgent
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/ 目录导入文件(不推荐这样做),您需要更新导入以使用新的模块系统。