LangGraph 服务器¶
概述¶
LangGraph 服务器提供用于创建和管理基于代理的应用程序的 API。它建立在助手的概念之上,助手是为特定任务配置的代理,并包含内置的持久化和任务队列。这个多功能的 API 支持广泛的代理应用程序用例,从后台处理到实时交互。
主要功能¶
LangGraph 平台整合了代理部署的最佳实践,因此您可以专注于构建代理逻辑。
- 流式端点:公开多种不同流模式的端点。我们使这些端点甚至适用于长时间运行的代理,这些代理在连续的流事件之间可能间隔数分钟。
- 后台运行:LangGraph 服务器支持在后台启动助手,提供用于轮询助手运行状态的端点以及用于有效监控运行状态的 webhooks。
- 支持长时间运行:我们用于运行助手的阻塞式端点会发送定期心跳信号,从而防止在处理长时间才能完成的请求时发生意外连接关闭。
- 任务队列:我们添加了一个任务队列,以确保在请求突发到达时不会丢失任何请求。
- 横向可伸缩基础设施:LangGraph 服务器设计为可横向伸缩,允许您根据需要扩展或缩减使用量。
- 重复发送消息支持:许多时候,用户可能会以意想不到的方式与您的图表进行交互。例如,用户可能发送一条消息,而在图表完成运行之前又发送了第二条消息。我们称之为“重复发送消息”,并添加了四种不同的处理方式。
- 优化过的检查点器:LangGraph 平台内置了针对 LangGraph 应用程序优化的检查点器。
- 人工干预端点:我们已公开支持人工干预功能所需的所有端点。
- 内存:除了线程级别的持久化(上方由 [检查点器](./persistence.md#checkpoints) 涵盖)之外,LangGraph 平台还内置了内存存储。
- 定时任务:内置支持任务调度,使您能够自动化应用程序中的常规操作,例如数据清理或批处理。
- Webhooks:允许您的应用程序向外部系统发送实时通知和数据更新,从而易于与第三方服务集成并根据特定事件触发操作。
- 监控:LangGraph 服务器与LangSmith 监控平台无缝集成,提供对应用程序性能和健康状况的实时洞察。
您正在部署什么?¶
当您部署 LangGraph 服务器时,您正在部署一个或多个图表,一个用于持久化的数据库,以及一个任务队列。
图¶
当您使用 LangGraph 服务器部署图表时,您正在部署一个助手的“蓝图”。
一个助手是一个与特定配置设置配对的图表。您可以为每个图表创建多个助手,每个助手具有独特的设置,以适应同一图表可以服务的不同用例。
部署后,LangGraph 服务器将自动为每个图表使用其默认配置设置创建一个默认助手。
您可以通过LangGraph 服务器 API 与助手进行交互。
注意
我们通常认为图表实现了一个代理,但图表不一定需要实现一个代理。例如,图表可以实现一个简单的聊天机器人,只支持来回对话,而无需影响任何应用程序控制流。实际上,随着应用程序变得越来越复杂,图表通常会实现更复杂的流程,可能使用多个代理协同工作。
持久化和任务队列¶
LangGraph 服务器利用数据库进行持久化和任务队列。
目前,LangGraph 服务器仅支持 Postgres 作为数据库,Redis 作为任务队列。
如果您正在使用LangGraph Cloud 进行部署,这些组件将由我们管理。如果您在自己的基础设施上部署 LangGraph 服务器,则需要自行设置和管理这些组件。
请查阅部署选项指南,了解有关这些组件如何设置和管理的更多信息。
应用结构¶
要部署 LangGraph 服务器应用程序,您需要指定要部署的一个或多个图表,以及任何相关的配置设置,例如依赖项和环境变量。
阅读应用程序结构指南,了解如何为部署构建 LangGraph 应用程序。
LangGraph 服务器 API¶
LangGraph 服务器 API 允许您创建和管理助手、线程、运行、定时任务等。
LangGraph Cloud API 参考提供了关于 API 端点和数据模型的详细信息。
助手¶
您可以将助手视为代理的已保存配置。
在构建代理时,进行不改变图表逻辑的快速修改是相当常见的。例如,简单地更改提示或 LLM 选择可能会对代理的行为产生重大影响。助手提供了一种简单的方式来对代理配置进行并保存此类更改。
线程¶
线程包含一系列运行的累积状态。如果在线程上执行运行,那么助手的底层图表的状态将持久化到该线程。
可以检索线程的当前和历史状态。为了持久化状态,必须在执行运行之前创建线程。
线程在特定时间点的状态称为检查点。检查点可用于在稍后时间恢复线程的状态。
有关线程和检查点的更多信息,请参阅LangGraph 概念指南的这一部分。
LangGraph Cloud API 提供了用于创建和管理线程及线程状态的多个端点。有关更多详细信息,请参阅API 参考。
运行¶
运行是对助手的一次调用。每次运行可以有自己的输入、配置和元数据,这可能会影响底层图表的执行和输出。运行可以选择在线程上执行。
LangGraph Cloud API 提供了用于创建和管理运行的多个端点。有关更多详细信息,请参阅API 参考。
存储¶
存储是一个 API,用于管理可从任何线程访问的持久化键值存储。
存储对于在 LangGraph 应用程序中实现内存非常有用。
定时任务¶
在许多情况下,按计划运行助手会非常有用。
例如,假设您正在构建一个每天运行并发送当日新闻电子邮件摘要的助手。您可以使用定时任务每天晚上 8:00 运行该助手。
LangGraph Cloud 支持定时任务,这些任务在用户定义的时间表上运行。用户指定一个时间表、一个助手和一些输入。之后,在指定的时间表上,服务器将
- 使用指定的助手创建一个新线程
- 将指定的输入发送到该线程
请注意,这每次都会向线程发送相同的输入。请参阅创建定时任务的操作指南。
LangGraph Cloud API 提供了用于创建和管理定时任务的多个端点。有关更多详细信息,请参阅API 参考。
Webhooks¶
Webhooks 实现了从您的 LangGraph Cloud 应用程序到外部服务的事件驱动通信。例如,一旦对 LangGraph Cloud 的 API 调用完成运行,您可能希望向单独的服务发出更新。
许多 LangGraph Cloud 端点接受一个 webhook
参数。如果此参数由可接受 POST 请求的端点指定,LangGraph Cloud 将在运行完成时发送请求。
有关更多详细信息,请参阅相应的操作指南。
相关¶
- LangGraph 应用程序结构指南解释了如何为部署构建 LangGraph 应用程序。
- LangGraph 平台的操作指南.
- LangGraph Cloud API 参考提供了关于 API 端点和数据模型的详细信息。