主题
LangSmith 数据平面
数据平面由你的 Agent Servers(部署)、其支持基础设施,以及持续轮询 LangSmith 控制平面更新的 “listener” 应用组成。
服务器基础设施
除了 Agent Server 本身之外,每个服务器的以下基础设施组件也包含在 “数据平面” 的广义定义中:
- PostgreSQL:用户、运行和内存数据的持久化层。
- Redis:工作器的通信和临时元数据。
- 密钥存储:环境密钥的安全管理。
- 自动扩缩器:根据负载扩展服务器容器。
“Listener” 应用
数据平面的 “listener” 应用定期调用控制平面 API 以:
- 确定是否应创建新部署。
- 确定是否应更新现有部署(即新修订)。
- 确定是否应删除现有部署。
换句话说,数据平面 “listener” 读取控制平面的最新状态(期望状态),并采取措施将未完成的部署(当前状态)协调为与最新状态一致。
PostgreSQL
PostgreSQL 存储服务器资源(线程、运行、助手、cron)以及保存在长期记忆存储中的项目。它也是检查点(图执行状态)的默认后端。你也可以选择将检查点存储在 MongoDB 中——请参阅配置检查点后端。无论使用哪种检查点后端,PostgreSQL 始终是必需的。
Redis
Redis 在每个 Agent Server 中用于服务器和队列工作器之间的通信,并存储临时元数据。Redis 中不存储任何用户或运行数据。
通信
Agent Server 中的所有运行都由每个部署中的一组后台工作器池执行。为了为这些运行启用某些功能(例如取消和输出流式传输),我们需要服务器与处理特定运行的工作器之间的双向通信通道。我们使用 Redis 来组织这种通信。
- Redis 列表用于在新运行创建后立即唤醒工作器。此列表中仅存储哨兵值,不存储实际运行信息。工作器随后从 PostgreSQL 检索运行信息。
- 服务器使用 Redis 字符串和 Redis PubSub 通道的组合,将运行取消请求传达给相应的工作器。
- 工作器使用 Redis PubSub 通道在运行处理期间广播 agent 的流式输出。服务器中任何打开的
/stream请求都会订阅该通道,并在事件到达时将其转发到响应。任何事件都不会存储在 Redis 中。
临时元数据
Agent Server 中的运行可能因特定失败而重试(目前仅针对运行期间遇到的临时 PostgreSQL 错误)。为了限制重试次数(目前每次运行最多 3 次尝试),我们在运行被拾取时将其尝试次数记录在 Redis 字符串中。除了运行 ID 之外,这不包含任何运行特定信息,并会在短暂延迟后过期。
数据平面功能
本节介绍数据平面的各项功能。有关平台特定行为,请参阅云平台功能或部署到自托管。
自动扩缩容
专用类型部署会自动跨容器扩缩容。扩缩容基于 3 个指标:
- CPU 利用率
- 内存利用率
- 待处理(进行中)运行的数量
对于 CPU 利用率,自动扩缩器的目标利用率为 75%。这意味着自动扩缩器会向上或向下调整容器数量,以确保 CPU 利用率达到或接近 75%。对于内存利用率,自动扩缩器的目标也是 75%。
对于待处理运行数量,自动扩缩器的目标是 10 个待处理运行。例如,如果当前容器数量为 1,但待处理运行数为 20,则自动扩缩器会将部署扩展到 2 个容器(20 个待处理运行 / 2 个容器 = 每个容器 10 个待处理运行)。
每个指标都独立计算,自动扩缩器将根据产生最大容器数量的指标来确定扩缩容操作。
这些指标并非适用于所有容器类型。队列工作器根据待处理运行数扩缩容——当积压增长时,会启动更多工作器来消耗它。API 服务器根据 CPU 和内存扩缩容,响应客户端请求量。这意味着运行提交量的激增不会减慢读取操作(如获取线程状态)。有关自托管配置详情,请参阅为规模配置 Agent Server。
缩容操作会延迟 30 分钟才执行。换句话说,如果自动扩缩器决定缩减部署,它会先等待 30 分钟再缩容。30 分钟后,重新计算指标,如果重新计算的指标导致容器数量低于当前数量,则部署会缩容。否则,部署保持扩缩容状态。这个 “冷却” 期可确保部署不会过于频繁地扩缩容。
MongoDB 检查点
INFO
适用于 Cloud(使用外部管理的 MongoDB 实例)和 Standalone 部署。
你可以使用 MongoDB 作为检查点存储的替代后端。配置后,MongoDB 仅处理检查点数据——所有其他服务器资源仍需要 PostgreSQL。
有关设置说明,请参阅配置检查点后端。
LangSmith 追踪
Agent Server 会自动配置为将追踪发送到 LangSmith。有关每个部署选项的详细信息,请参阅下表。
| Cloud | Hybrid | Self-Hosted |
|---|---|---|
| 必需 追踪到 LangSmith SaaS。 | 可选 禁用追踪或追踪到 LangSmith SaaS。 | 可选 禁用追踪、追踪到 LangSmith SaaS,或追踪到自托管 LangSmith。 |
遥测
Agent Server 会自动配置为报告遥测元数据以用于计费。有关每个部署选项的详细信息,请参阅下表。
| Cloud | Hybrid | Self-Hosted |
|---|---|---|
| 遥测发送到 LangSmith SaaS。 | 遥测发送到 LangSmith SaaS。 | 气隙许可证密钥的自报使用量(审计)。 LangSmith 许可证密钥的遥测发送到 LangSmith SaaS。 |
许可
Agent Server 会自动配置为执行许可证密钥验证。有关每个部署选项的详细信息,请参阅下表。
| Cloud | Hybrid | Self-Hosted |
|---|---|---|
| LangSmith API 密钥针对 LangSmith SaaS 验证。 | LangSmith API 密钥针对 LangSmith SaaS 验证。 | 气隙许可证密钥或平台许可证密钥针对 LangSmith SaaS 验证。 |