LangGraph 数据平面¶
术语“数据平面”广义上指的是 LangGraph 服务器(部署)、每个服务器对应的基础设施以及不断轮询 LangGraph 控制平面以获取更新的“监听器”应用程序。
服务器基础设施¶
除了 LangGraph 服务器本身,每个服务器的以下基础设施也包含在“数据平面”的广义定义中
详情请参阅 LangGraph 平台架构。
“监听器”应用程序¶
数据平面“监听器”应用程序定期调用 控制平面 API 来
- 确定是否应创建新的部署。
- 确定是否应更新现有部署(即新版本)。
- 确定是否应删除现有部署。
换句话说,数据平面“监听器”读取控制平面的最新状态(期望状态),并采取行动协调未决的部署(当前状态)以匹配最新状态。
数据平面特性¶
本节介绍数据平面的各种特性。
精简版 vs 企业版¶
LangGraph Server 有两个版本:Lite
(精简版)和 Enterprise
(企业版)。
Lite
(精简版)是 LangGraph Server 的一个受限版本,您可以在本地或以自托管方式运行(每年最多执行 100 万个节点)。Lite
仅适用于 独立容器 部署选项。
Enterprise
(企业版)是 LangGraph Server 的完整版本。要使用 Enterprise
版本,您必须获取许可证密钥,并在运行 Docker 镜像时指定该密钥。要获取许可证密钥,请发送电子邮件至 sales@langchain.dev。Enterprise
适用于 云 SaaS、自托管数据平面和 自托管控制平面 部署选项。
功能差异
精简版 | 企业版 | |
---|---|---|
Cron 作业 | ❌ | ✅ |
自定义认证 | ❌ | ✅ |
自动扩缩容¶
生产型
部署会自动扩容至 10 个容器。扩缩容基于 3 个指标
- CPU 利用率
- 内存利用率
- 待处理(进行中)的运行数量
对于 CPU 利用率,自动扩缩器目标是 75%。这意味着自动扩缩器将增加或减少容器数量,以确保 CPU 利用率达到或接近 75%。对于内存利用率,自动扩缩器目标也是 75%。
对于待处理运行数量,自动扩缩器目标是 10 个待处理运行。例如,如果当前容器数量是 1 个,但待处理运行数量是 20 个,自动扩缩器会将部署扩容到 2 个容器(20 个待处理运行 / 2 个容器 = 每个容器 10 个待处理运行)。
每个指标独立计算,自动扩缩器将根据导致容器数量最多的指标来确定扩缩容操作。
缩容操作会延迟 30 分钟才会执行。换句话说,如果自动扩缩器决定缩容部署,它会先等待 30 分钟再进行缩容。30 分钟后,指标会重新计算,如果重新计算的指标导致容器数量低于当前数量,则部署将缩容。否则,部署将保持扩容状态。这个“冷却”期确保部署不会过于频繁地进行扩缩容。
静态 IP 地址¶
仅适用于云 SaaS
静态 IP 地址仅适用于 云 SaaS 部署。
所有在 2025 年 1 月 6日之后创建的部署流量将通过 NAT 网关。此 NAT 网关将根据数据区域拥有多个静态 IP 地址。请参阅下表获取静态 IP 地址列表
美国 | 欧盟 |
---|---|
35.197.29.146 | 34.13.192.67 |
34.145.102.123 | 34.147.105.64 |
34.169.45.153 | 34.90.22.166 |
34.82.222.17 | 34.147.36.213 |
35.227.171.135 | 34.32.137.113 |
34.169.88.30 | 34.91.238.184 |
34.19.93.202 | 35.204.101.241 |
34.19.34.50 | 35.204.48.32 |
自定义 Postgres¶
可以使用自定义 Postgres 实例,而不是由控制平面自动创建的实例。指定 POSTGRES_URI_CUSTOM
环境变量即可使用自定义 Postgres 实例。
多个部署可以共享同一个 Postgres 实例。例如,对于 部署 A
,可以将 POSTGRES_URI_CUSTOM
设置为 postgres://<user>:<password>@/<database_name_1>?host=<hostname_1>
;对于 部署 B
,可以将 POSTGRES_URI_CUSTOM
设置为 postgres://<user>:<password>@/<database_name_2>?host=<hostname_1>
。<database_name_1>
和 database_name_2
是同一实例中的不同数据库,但 <hostname_1>
是共享的。同一个数据库不能用于不同的部署。
自定义 Redis¶
可以使用自定义 Redis 实例,而不是由控制平面自动创建的实例。指定 REDIS_URI_CUSTOM 环境变量即可使用自定义 Redis 实例。
多个部署可以共享同一个 Redis 实例。例如,对于 部署 A
,可以将 REDIS_URI_CUSTOM
设置为 redis://<hostname_1>:<port>/1
;对于 部署 B
,可以将 REDIS_URI_CUSTOM
设置为 redis://<hostname_1>:<port>/2
。1
和 2
是同一实例中的不同数据库编号,但 <hostname_1>
是共享的。同一个数据库编号不能用于不同的部署。
LangSmith 追踪¶
LangGraph Server 已自动配置为向 LangSmith 发送追踪数据。请参阅下表了解每个部署选项的详细信息。
云 SaaS | 自托管数据平面 | 自托管控制平面 | 独立容器 |
---|---|---|---|
必需 追踪到 LangSmith SaaS。 |
可选 禁用追踪或追踪到 LangSmith SaaS。 |
可选 禁用追踪或追踪到自托管 LangSmith。 |
可选 禁用追踪、追踪到 LangSmith SaaS 或追踪到自托管 LangSmith。 |
遥测¶
LangGraph Server 已自动配置为报告遥测元数据用于计费目的。请参阅下表了解每个部署选项的详细信息。
云 SaaS | 自托管数据平面 | 自托管控制平面 | 独立容器 |
---|---|---|---|
遥测数据发送到 LangSmith SaaS。 | 遥测数据发送到 LangSmith SaaS。 | 空隙网络许可证密钥的自我报告使用情况(审计)。 对于 LangGraph Platform 许可证密钥,遥测数据发送到 LangSmith SaaS。 |
空隙网络许可证密钥的自我报告使用情况(审计)。 对于 LangGraph Platform 许可证密钥,遥测数据发送到 LangSmith SaaS。 |
许可¶
LangGraph Server 已自动配置为执行许可证密钥验证。请参阅下表了解每个部署选项的详细信息。
云 SaaS | 自托管数据平面 | 自托管控制平面 | 独立容器 |
---|---|---|---|
LangSmith API 密钥根据 LangSmith SaaS 进行验证。 | LangSmith API 密钥根据 LangSmith SaaS 进行验证。 | 空隙网络许可证密钥或 LangGraph Platform 许可证密钥根据 LangSmith SaaS 进行验证。 | 空隙网络许可证密钥或 LangGraph Platform 许可证密钥根据 LangSmith SaaS 进行验证。 |