_数据平面_由你的 Agent Server(部署)、其支持基础设施,以及持续从 LangSmith 控制平面 轮询更新的“监听器”应用组成。

服务器基础设施

除了 Agent Server 本身之外,以下每个服务器的基础设施组件也属于“数据平面”的广义定义:
  • PostgreSQL:用于持久化用户、运行和记忆数据。
  • Redis:用于工作器之间的通信以及存储临时元数据。
  • 密钥存储:用于安全管理环境密钥。
  • 自动扩缩容器:根据负载扩缩服务器容器。

“监听器”应用

数据平面的“监听器”应用会定期调用控制平面 API,以:
  • 确定是否应创建新的部署。
  • 确定是否应更新现有部署(即创建新版本)。
  • 确定是否应删除现有部署。
换句话说,数据平面的“监听器”会读取控制平面的最新状态(期望状态),并采取行动,将未完成的部署(当前状态)调整为与最新状态一致。

PostgreSQL

PostgreSQL 用于存储服务器资源(线程、运行、助手和定时任务),以及保存在长期记忆存储中的项目。它也是检查点(图执行状态)的默认后端。你也可以选择将检查点存储在 MongoDB 中,详见配置检查点后端。无论使用哪种检查点后端,都始终需要 PostgreSQL。

Redis

每个 Agent Server 都使用 Redis 作为服务器与队列工作器之间的通信方式,并用于存储临时元数据。Redis 中不会存储任何用户数据或运行数据。

通信

Agent Server 中的所有运行都由属于各个部署的后台工作器池执行。为了支持这些运行的某些功能(例如取消运行和流式传输输出),我们需要一个用于服务器与处理特定运行的工作器之间双向通信的通道。我们使用 Redis 来组织这种通信。
  1. Redis 列表用于在创建新运行后立即唤醒工作器。此列表中只存储一个哨兵值,不存储实际的运行信息。工作器随后会从 PostgreSQL 中获取运行信息。
  2. Redis 字符串与 Redis PubSub 通道结合使用,使服务器能够向相应的工作器发送运行取消请求。
  3. 工作器使用 Redis PubSub 通道广播代理在处理运行期间产生的流式输出。服务器中任何打开的 /stream 请求都会订阅该通道,并在事件到达时将其转发到响应中。Redis 中不会在任何时候存储事件。

临时元数据

Agent Server 中的运行可能会因特定故障而重试(目前仅针对运行期间遇到的临时 PostgreSQL 错误)。为了限制重试次数(目前每次运行最多重试 3 次),我们会在运行被取出处理时,将尝试次数记录在 Redis 字符串中。该字符串除运行 ID 外不包含任何运行特定信息,并会在短暂延迟后过期。

数据平面功能

本节介绍数据平面的各种功能。有关特定平台的行为,请参阅云平台功能或部署到自托管环境。

自动扩缩容

专用类型的部署会自动在多个容器之间进行扩缩容。扩缩容基于 3 项指标:
  1. CPU 利用率
  2. 内存利用率
  3. 待处理(进行中)运行的数量
对于 CPU 利用率,自动扩缩容器的目标是 75%。这意味着自动扩缩容器会增加或减少容器数量,以确保 CPU 利用率保持在 75% 附近。对于内存利用率,自动扩缩容器的目标同样是 75%。 对于待处理运行数量,自动扩缩容器的目标是 10 个待处理运行。例如,如果当前容器数量为 1,但待处理运行数量为 20,自动扩缩容器会将部署扩展到 2 个容器(20 个待处理运行 / 2 个容器 = 每个容器 10 个待处理运行)。 每项指标都会独立计算,自动扩缩容器将根据导致容器数量最大值的指标确定扩缩容操作。 这些指标并不适用于所有容器类型。队列工作器根据待处理运行数量进行扩缩容——当积压任务增加时,会启动更多工作器来处理这些任务。API 服务器则根据 CPU 和内存进行扩缩容,以响应客户端请求量。这意味着运行提交量激增不会减慢获取线程状态等读取操作。有关自托管配置的详细信息,请参阅配置 Agent Server 以实现扩缩容。 缩容操作会延迟 30 分钟,之后才会执行。换句话说,如果自动扩缩容器决定缩小某个部署,它会先等待 30 分钟,然后再执行缩容。30 分钟后,系统会重新计算指标;如果重新计算出的指标对应的容器数量低于当前数量,部署就会缩容。否则,部署会保持扩容状态。这个“冷却”阶段可以确保部署不会过于频繁地扩容和缩容。

MongoDB 检查点

适用于 Cloud(使用外部管理的 MongoDB 实例)和 Standalone 部署。
你可以使用 MongoDB 作为检查点存储的替代后端。配置后,MongoDB 仅处理检查点数据——其他所有服务器资源仍然需要 PostgreSQL。 有关设置说明,请参阅配置检查点后端。

LangSmith 跟踪

Agent Server 已自动配置为向 LangSmith 发送跟踪信息。有关各部署选项的详细信息,请参阅下表。

遥测

Agent Server 已自动配置为报告用于计费的遥测元数据。有关各部署选项的详细信息,请参阅下表。

许可

Agent Server 已自动配置为执行许可证密钥验证。有关各部署选项的详细信息,请参阅下表。