以编程方式使用文档

LangGraph v1 是一个专注于稳定性的智能体运行时版本。 它保持核心图 API 和执行模型不变,同时改进类型安全、文档和开发者体验。

它旨在与 LangChain v1 (其 createAgent 基于 LangGraph 构建)配合使用,因此您可以从高层开始,在需要时深入到细粒度控制。

Stable core APIs

Graph primitives (state, nodes, edges) and the execution/runtime model are unchanged, making upgrades straightforward.

Reliability, by default

持久化执行(包含检查点、持久化、流式输出和人机交互)继续作为核心功能。

Seamless with LangChain v1

LangChain 的 createAgent 运行在 LangGraph 之上。使用 LangChain 快速上手;在需要自定义编排时深入到 LangGraph。

升级方法,

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

完整变更列表请参阅 迁移指南.

弃用 createReactAgent

LangGraph createReactAgent 预构建已被弃用,改用 LangChain 的 createAgent。它提供了更简单的接口,并通过引入中间件提供了更大的定制潜力。

类型化中断

StateGraph 现在在构造函数中接受中断类型映射,以更严格地约束图中可使用的中断类型。

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[] }>, // [!code highlight]
    // Define a complex interrupt with the same signature
    complex: interrupt<{ reason: string }, { messages: string[] }>, // [!code highlight]
  }
}

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);
}

有关中断的更多信息,请参阅 中断 documentation.

前端 SDK 增强

LangGraph v1 在与前端 LangGraph 应用交互时有几项增强。

事件流编码

低级 toLangGraphEventStream 辅助函数已被移除。流式响应现在由 SDK 原生处理,您可以通过传入 encoding 格式到 graph.stream来选择线路格式。这使得在 SSE 和普通 JSON 响应之间切换变得简单,无需更改 UI 逻辑。

请参阅 迁移指南 获取更多信息。

中的自定义传输 useStream

React useStream hook 现在支持可插拔传输,使您可以在不更改 UI 代码的情况下更好地控制网络层。

const stream = useStream({
  transport: new FetchStreamTransport({
    apiUrl: "http://localhost:2024",
  }),
});

了解如何集成和自定义 hook: 将 LangGraph 集成到您的 React 应用.

报告问题

请在 GitHub 上报告发现的任何 1.0 问题, 'v1' 标签.

其他资源

LangGraph 1.0

阅读公告

Overview

LangGraph 是什么及何时使用

Graph API

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

LangChain Agents

基于 LangGraph 构建的高级智能体

Migration guide

如何迁移到 LangGraph v1

GitHub

报告问题或贡献代码

另请参阅