LangGraph v1 是一个以稳定性为核心的 agent 运行时版本。 它保持了核心图 API 和执行模型不变,同时改进了类型安全、文档和开发者体验。 它与 LangChain v1(其 createAgent 基于 LangGraph 构建)紧密协作,让你可以从高层入手,并在需要时下沉到精细化控制。

Stable core APIs

图原语(状态、节点、边)以及执行/运行时模型保持不变,使升级变得简单直接。

Reliability, by default

持久化执行,包括检查点、持久化存储、流式传输以及人机协同,仍然是一等公民。

Seamless with LangChain v1

LangChain 的 createAgent 运行在 LangGraph 上。用 LangChain 快速起步;需要自定义编排时则下沉到 LangGraph。
要升级,
npm install @langchain/langgraph @langchain/core
完整的变更列表请参阅迁移指南

createReactAgent 的弃用

LangGraph 的 createReactAgent 预构建方法已被弃用,推荐使用 LangChain 的 createAgent。后者提供更简洁的接口,并通过引入中间件提供了更大的自定义潜力。

类型化中断

StateGraph 现在在构造函数中接受一个中断类型映射,以更严格地限制图中可使用的中断类型。
import { StateGraph, MemorySaver, interrupt } from "@langchain/langgraph";
import * as z from "zod";

const stateSchema = z.object({
  foo: z.string(),
})

const graphConfig = {
  interrupts: {
    // Define a simple interrupt that accepts a reason and returns messages
    simple: interrupt<{ reason: string }, { messages: string[] }>,
    // Define a complex interrupt with the same signature
    complex: interrupt<{ reason: string }, { messages: string[] }>,
  }
}

const checkpointer = new MemorySaver();

const graph = new StateGraph(stateSchema, graphConfig)
  .addNode("node", async (state, runtime) => {
    // Trigger the simple interrupt with a reason
    const response = runtime.interrupt.simple({ reason: "test" });
    // Return the interrupt response as the new state
    return { foo: response };
  })
  // Compile the graph with the checkpointer
  .compile({ checkpointer });

// Invoke the graph with initial state
const result = await graph.invoke({ foo: "test" });

// Access the interrupt data
if (graph.isInterrupted(result)) {
  console.log(result.__interrupt__.messages);
}
有关中断的更多信息,请参阅中断文档。

前端 SDK 增强

LangGraph v1 针对从前端与 LangGraph 应用交互提供了一些增强。

事件流编码

低级辅助函数 toLangGraphEventStream 已被移除。现在 SDK 原生处理流式响应,你可以通过向 graph.stream 传入 encoding 参数来选择传输格式。这使得在 SSE 和普通 JSON 响应之间切换变得简单,无需更改 UI 逻辑。 更多信息请参阅迁移指南

useStream 中的自定义传输

React 的 useStream Hook 现在支持可插拔的传输层,让你无需更改 UI 代码即可更好地控制网络层。
const stream = useStream({
  transport: new FetchStreamTransport({
    apiUrl: "http://localhost:2024",
  }),
});
了解如何集成和自定义该 Hook:将 LangGraph 集成到你的 React 应用

报告问题

请在 GitHub 上使用 'v1' 标签 报告发现的任何 1.0 问题。

其他资源

LangGraph 1.0

阅读公告

Overview

LangGraph 是什么以及何时使用它

Graph API

使用状态、节点和边构建图

LangChain Agents

基于 LangGraph 构建的高层 agent

Migration guide

如何迁移到 LangGraph v1

GitHub

报告问题或贡献代码

另见