Skip to main content
LangGraph 提供了两种不同的 API 来构建智能体工作流:图 API函数式 API。这两种 API 共享相同的底层运行时,可以在同一个应用程序中混合使用,但它们针对不同的用例和开发偏好而设计。 本指南将帮助您根据具体需求理解何时使用每种 API。

快速决策指南

在以下情况下使用 图 API
  • 用于调试和文档的复杂工作流可视化
  • 跨多个节点共享数据的显式状态管理
  • 具有多个决策点的条件分支
  • 需要后期合并的并行执行路径
  • 视觉呈现有助于理解的团队协作
在以下情况下使用 函数式 API
  • 对现有过程式代码进行最小的代码改动
  • 使用标准控制流(if/else、循环、函数调用)
  • 函数作用域的状态管理,无需显式状态管理
  • 使用更少样板代码进行快速原型设计
  • 具有简单分支逻辑的线性工作流

详细比较

何时使用图 API

图 API 采用声明式方法,您需要定义节点、边和共享状态来创建可视化的图结构。 1. 复杂的决策树和分支逻辑 当您的工作流具有多个依赖于各种条件的决策点时,图 API 使这些分支变得明确且易于可视化。
2. 跨多个组件的状态管理 当您需要在工作流的不同部分之间共享和协调状态时,图 API 的显式状态管理非常有益。
3. 带同步的并行处理 当您需要并行运行多个操作然后合并其结果时,图 API 可以自然地处理这种情况。
4. 团队开发和文档 图 API 的可视化特性使团队更容易理解、记录和维护复杂的工作流。

何时使用函数式 API

函数式 API 采用命令式方法,将 LangGraph 功能集成到标准的过程式代码中。 1. 现有的过程式代码 当您已有使用标准控制流的代码,并希望以最小的重构添加 LangGraph 功能时。
2. 具有简单逻辑的线性工作流 当您的工作流主要是顺序性的,具有简单的条件逻辑时。
3. 快速原型设计 当您希望快速测试想法,而无需定义状态模式和图形结构的开销时。
4. 函数作用域的状态管理 当您的状态自然地限定在单个函数内,不需要广泛共享时。

结合使用两种 API

您可以在同一个应用程序中同时使用两种 API。这在系统的不同部分有不同需求时非常有用。

API 之间的迁移

从函数式 API 迁移到图 API

当您的函数式工作流变得复杂时,可以迁移到图 API:

从图 API 迁移到函数式 API

当您的图对于简单的线性过程变得过于复杂时:

总结

当您需要对工作流结构、复杂分支、并行处理或团队协作优势进行显式控制时,选择 图 API 当您希望以最小的改动将 LangGraph 功能添加到现有代码中、拥有简单的线性工作流或需要快速原型设计能力时,选择 函数式 API 两种 API 都提供相同的核心 LangGraph 功能(持久化、流式传输、人在回路、记忆),但以不同的范式打包,以适应不同的开发风格和用例。