主题
LangGraph v1 是一个专注于稳定性的智能体运行时版本。 它保持了核心的图 API 和执行模型不变,同时改进了类型安全性、文档和开发者体验。
它旨在与 LangChain v1(其 createAgent 构建于 LangGraph 之上)无缝协作,因此您可以快速上手,并在需要时深入进行细粒度控制。
稳定的核心 API
图的基本元素(状态、节点、边)以及执行/运行时模型保持不变,使得升级过程简单明了。
默认具备可靠性
具备检查点、持久化、流式处理和人工干预的持久化执行(Durable execution)继续是一等公民。
与 LangChain v1 无缝集成
LangChain 的 createAgent 运行在 LangGraph 之上。使用 LangChain 快速启动;切换到 LangGraph 进行自定义编排。
要升级,请执行:
bash
npm install @langchain/langgraph @langchain/corebash
pnpm add @langchain/langgraph @langchain/corebash
yarn add @langchain/langgraph @langchain/corebash
bun add @langchain/langgraph @langchain/core有关完整的变更列表,请参阅 迁移指南。
createReactAgent 的弃用
LangGraph 的预构建 createReactAgent 已被弃用,转而推荐使用 LangChain 的 createAgent。后者提供了更简单的接口,并通过引入中间件提供了更大的自定义潜力。
- 有关新的
createAgentAPI 的信息,请参阅 LangChain v1 发布说明。 - 有关从
createReactAgent迁移到createAgent的信息,请参阅 LangChain v1 迁移指南。
类型化的中断(Typed interrupts)
StateGraph 现在在构造函数中接受一个中断类型映射,以便更严格地约束图中可使用的中断类型。
typescript
import { StateGraph, MemorySaver, interrupt } from "@langchain/langgraph";
import * as z from "zod";
const stateSchema = z.object({
foo: z.string(),
})
const graphConfig = {
interrupts: {
// 定义一个简单中断,接受原因并返回消息
simple: interrupt<{ reason: string }, { messages: string[] }>,
// 定义一个具有相同签名的复杂中断
complex: interrupt<{ reason: string }, { messages: string[] }>,
}
}
const checkpointer = new MemorySaver();
const graph = new StateGraph(stateSchema, graphConfig)
.addNode("node", async (state, runtime) => {
// 触发简单中断并附带原因
const response = runtime.interrupt.simple({ reason: "test" });
// 将中断响应作为新状态返回
return { foo: response };
})
// 使用检查点器编译图
.compile({ checkpointer });
// 使用初始状态调用图
const result = await graph.invoke({ foo: "test" });
// 访问中断数据
if (graph.isInterrupted(result)) {
console.log(result.__interrupt__.messages);
}有关中断的更多信息,请参阅 中断 文档。
前端 SDK 增强
LangGraph v1 在前端与 LangGraph 应用程序交互方面带来了一些增强。
事件流编码
底层的 toLangGraphEventStream 辅助函数已被移除。流式响应现在由 SDK 原生处理,您可以通过向 graph.stream 传入 encoding 格式来选择传输格式。这使得在 SSE 和普通 JSON 响应之间切换变得简单,而无需更改 UI 逻辑。
更多信息请参阅 迁移指南。
useStream 中的自定义传输器
React 的 useStream 钩子现在支持可插拔的传输器,因此您可以在不更改 UI 代码的情况下更好地控制网络层。
typescript
const stream = useStream({
transport: new FetchStreamTransport({
apiUrl: "http://localhost:2024",
}),
});了解如何集成和自定义此钩子:将 LangGraph 集成到您的 React 应用程序中。
报告问题
请在 GitHub 上使用 'v1' 标签 报告在 1.0 版本中发现的任何问题。
其他资源
LangGraph 1.0
阅读公告
概述
LangGraph 是什么以及何时使用它
图 API
使用状态、节点和边构建图
LangChain 智能体
构建在 LangGraph 之上的高级智能体
迁移指南
如何迁移到 LangGraph v1
GitHub
报告问题或参与贡献