LangGraph 服务器¶
概述¶
LangGraph 服务器提供了一个 API,用于创建和管理基于代理的应用程序。它建立在 助手 的概念之上,这些助手是为特定任务配置的代理,并包括内置的 持久化 和一个 任务队列。这个多功能 API 支持各种代理应用场景,从后台处理到实时交互。
关键特性¶
LangGraph 平台融入了最佳实践,以便于代理的部署,让您可以专注于构建代理逻辑。
- 流式端点:揭示 多种不同流式模式 的端点。我们使这些即便对可能在连续流事件之间间隔几分钟的长期运行代理也能正常工作。
- 后台运行:LangGraph 服务器支持在后台启动助手,提供轮询助手运行状态的端点,并通过网络钩子有效监控运行状态。
- 支持长期运行:我们为运行助手的阻塞端点定期发送心跳信号,防止在处理长时间完成请求时意外断开连接。
- 任务队列:我们增加了一个任务队列,以确保在请求以突发方式到达时不丢失任何请求。
- 水平可扩展的基础设施:LangGraph 服务器设计为具备水平可扩展性,允许您根据需要上下调整使用量。
- 双重文本支持:用户可能会以意想不到的方式与您的图进行交互。例如,用户可能发送一条消息,然后在图运行完成之前发送第二条消息。我们称之为 "双重文本",并提供了四种不同的处理方式。
- 优化的检查点:LangGraph 平台提供一个内置的 检查点器,针对 LangGraph 应用优化。
- 人机协作端点:我们公开了支持 人机协作 特性所需的所有端点。
- 内存:除了上述的线程级持久化(由 检查点器 涵盖),LangGraph 平台还带有内置的 内存存储。
- 定时任务:内置支持调度任务,使您能够自动化常规操作,例如数据清理或批处理。
- 网络钩子:允许您的应用程序向外部系统发送实时通知和数据更新,使其易于与第三方服务集成,并根据特定事件触发操作。
- 监控:LangGraph 服务器与 LangSmith 监控平台无缝集成,提供有关您应用程序性能和健康状况的实时洞察。
您要部署什么?¶
当您部署一个 LangGraph 服务器时,您同时部署一个或多个 图、一个用于 持久化 的数据库和一个任务队列。
图¶
当您使用 LangGraph 服务器部署一个图时,您正在部署一个 助手 的“蓝图”。
一个 助手 是一个图,配有特定的配置设置。您可以为每个图创建多个助手,每个助手都有独特的设置,以适应可以由同一图服务的不同用例。
在部署时,LangGraph 服务器会自动为每个图使用图的默认配置设置创建一个默认助手。
您可以通过 LangGraph 服务器 API 与助手进行交互。
Note
我们通常将一个图视为实现一个 代理,但一个图并不一定需要实现代理。例如,一个图可以实现一个简单的聊天机器人,该聊天机器人仅支持双向对话,而无法影响任何应用程序控制流。实际上,随着应用程序变得更加复杂,图通常会实现一个可能使用 多个代理 协同工作的更复杂流程。
持久化与任务队列¶
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 参考。
网络钩子¶
网络钩子启用从您的 LangGraph Cloud 应用程序到外部服务的事件驱动通信。例如,您可能希望在 LangGraph Cloud 的 API 调用完成后向一个单独的服务发送更新。
许多 LangGraph Cloud 端点都接受 webhook 参数。如果这个参数由可以接受 POST 请求的端点指定,LangGraph Cloud 将在运行完成时发送请求。
有关更多详细信息,请参见相应的 操作指南。
相关内容¶
- LangGraph 应用程序结构 指南说明了如何为部署构建您的 LangGraph 应用程序。
- LangGraph 平台的操作指南。
- LangGraph Cloud API 参考 提供了关于 API 端点和数据模型的详细信息。