跳到内容

LangGraph 服务器

概述

LangGraph 服务器提供了一个用于创建和管理基于 agent 的应用的 API。它基于 assistants 的概念构建,assistants 是配置用于特定任务的 agent,并包含内置的 持久化 和一个 任务队列。这个多功能的 API 支持广泛的 agent 应用用例,从后台处理到实时交互。

主要特性

LangGraph 平台集成了 agent 部署的最佳实践,因此您可以专注于构建 agent 逻辑。

  • 流式端点:暴露 多种不同流式模式 的端点。我们已使其即使对于连续流事件之间可能间隔数分钟的长时运行 agent 也能工作。
  • 后台运行:LangGraph 服务器支持在后台启动 assistants,提供了轮询 assistant 运行状态的端点和有效监控运行状态的 webhooks。
  • 支持长时运行:我们用于运行 assistants 的阻塞端点会发送常规心跳信号,从而防止处理耗时请求时出现意外连接关闭。
  • 任务队列:我们添加了一个任务队列,以确保在请求突发时不会丢失任何请求。
  • 水平可扩展基础设施:LangGraph 服务器设计为水平可扩展,允许您根据需要扩大和缩小使用规模。
  • 重复消息支持:很多时候用户可能会以非预期的方式与您的图进行交互。例如,用户可能发送一条消息,而在图完成运行之前又发送了第二条消息。我们将此称为 “重复消息”,并添加了四种不同的处理方法。
  • 优化的 Checkpointer:LangGraph 平台带有一个内置的 checkpointer,针对 LangGraph 应用进行了优化。
  • 人工参与端点:我们已暴露了支持 人工参与 功能所需的所有端点。
  • 记忆:除了线程级别的持久化(由上述 [checkpointers]l(./persistence.md#checkpoints) 涵盖)之外,LangGraph 平台还带有一个内置的 记忆存储
  • Cron 作业:内置的任务调度支持,使您能够自动化应用中的定期操作,如数据清理或批量处理。
  • Webhooks:允许您的应用向外部系统发送实时通知和数据更新,从而方便地集成第三方服务并根据特定事件触发操作。
  • 监控:LangGraph 服务器与 LangSmith 监控平台无缝集成,提供关于应用性能和健康的实时洞察。

您在部署什么?

当您部署 LangGraph 服务器时,您正在部署一个或多个 、一个用于 持久化 的数据库以及一个任务队列。

当您使用 LangGraph 服务器部署图时,您正在部署一个 Assistant 的“蓝图”。

一个 Assistant 是一个与特定配置设置配对的图。您可以为每个图创建多个 assistants,每个 assistant 都有独特的设置,以适应同一个图可以服务的不同用例。

部署后,LangGraph 服务器将使用图的默认配置设置自动为每个图创建一个默认 assistant。

您可以通过 LangGraph 服务器 API 与 assistants 交互。

注意

我们通常认为图实现了 agent,但图不一定需要实现 agent。例如,图可以实现一个仅支持一来一回对话的简单聊天机器人,而无需影响任何应用控制流。实际上,随着应用变得更加复杂,图通常会实现更复杂的流程,可能使用 多个 agent 协同工作。

持久化和任务队列

LangGraph 服务器利用数据库实现 持久化 和任务队列。

目前,LangGraph 服务器仅支持 Postgres 作为数据库,支持 Redis 作为任务队列。

如果您使用 LangGraph Cloud 进行部署,这些组件由我们管理。如果您在自己的基础设施上部署 LangGraph 服务器,则需要自行设置和管理这些组件。

请查阅 部署选项 指南,了解有关如何设置和管理这些组件的更多信息。

应用结构

要部署 LangGraph 服务器应用,您需要指定要部署的图以及任何相关的配置设置,例如依赖项和环境变量。

阅读 应用结构 指南,了解如何为部署构建 LangGraph 应用结构。

LangGraph 服务器 API

LangGraph 服务器 API 允许您创建和管理 assistantsthreadsrunscron 作业 等。

LangGraph Cloud API 参考 提供了有关 API 端点和数据模型的详细信息。

Assistants

一个 Assistant 指的是一个 加上该图特定的 配置 设置。

您可以将 assistant 理解为 agent 的已保存配置。

在构建 agents 时,进行不改变图逻辑的快速修改是相当常见的。例如,仅仅更改提示或 LLM 选择就可以对 agents 的行为产生显著影响。Assistants 提供了一种轻松进行和保存这些类型 agent 配置更改的方法。

Threads

Thread 包含一系列 runs 的累积状态。如果在 thread 上执行 run,则 assistant 的底层图的 状态 将持久化到 thread。

可以检索 thread 的当前和历史状态。为了持久化状态,必须在执行 run 之前创建一个 thread。

thread 在特定时间点的状态称为 checkpoint。Checkpoints 可用于在以后恢复 thread 的状态。

有关 threads 和 checkpoints 的更多信息,请参阅 LangGraph 概念指南 的这一部分。

LangGraph Cloud API 提供了多个用于创建和管理 threads 和 thread 状态的端点。有关详细信息,请参阅 API 参考

Runs

Run 是对 assistant 的调用。每个 run 可以有自己的输入、配置和元数据,这可能会影响底层图的执行和输出。Run 可以选择在 thread 上执行。

LangGraph Cloud API 提供了多个用于创建和管理 runs 的端点。有关详细信息,请参阅 API 参考

Store

Store 是一个用于管理持久化 键值存储 的 API,可用于任何 thread

Store 对于在 LangGraph 应用中实现 记忆 非常有用。

Cron 作业

在许多情况下,按计划运行 assistant 是非常有用的。

例如,假设您正在构建一个每天运行并发送当日新闻电子邮件摘要的 assistant。您可以使用 cron 作业让 assistant 每天晚上 8:00 运行。

LangGraph Cloud 支持 cron 作业,这些作业根据用户定义的计划运行。用户指定计划、assistant 和一些输入。之后,在指定的计划时间,服务器将:

  • 使用指定的 assistant 创建一个新的 thread
  • 将指定的输入发送到该 thread

请注意,这会每次都将相同的输入发送到 thread。请参阅 操作指南,了解如何创建 cron 作业。

LangGraph Cloud API 提供了多个用于创建和管理 cron 作业的端点。有关详细信息,请参阅 API 参考

Webhooks

Webhooks 支持从 LangGraph Cloud 应用到外部服务的事件驱动通信。例如,您可能希望在对 LangGraph Cloud 的 API 调用完成后向独立服务发出更新。

许多 LangGraph Cloud 端点接受一个 webhook 参数。如果可接受 POST 请求的端点指定了此参数,LangGraph Cloud 将在 run 完成时发送请求。

有关更多详细信息,请参阅相应的 操作指南