LLM网关:AI智能体的路由、认证和成本控制
LLM网关是一个HTTP反向代理,位于AI智能体进程和上游模型提供商端点之间,作为所有出站推理流量的数据平面运行。它在转发前在线路层解析不透明的密钥句柄,使用滑动窗口计数器执行每租户的节流配额,每请求发出OpenTelemetry支出遥测,并在上游P99延迟超过配置阈值时打开断路器——无需对智能体应用代码进行任何更改。任何运行三个或更多并发推理消费者的机群都应部署一个。
LLM网关是一个HTTP反向代理,位于AI智能体进程和模型提供商端点之间的数据平面,提供线路层的不透明密钥解析、通过滑动窗口计数器的每租户配额执行、每请求的OpenTelemetry支出遥测,以及断路器故障转移——所有这些都作为对应用代码不可见的基础设施原语。
多智能体推理中的数据平面问题
没有专用的推理数据平面,每个智能体进程都管理自己的上游连接:从环境状态解析密钥、无每进程配额、无每请求遥测、无法了解上游端点是否降级。有两个智能体时可以管理。有二十个时,会产生四种不同的故障模式。
通过环境内省进行密钥泄露
每个在环境中持有明文提供商密钥的智能体进程,只需一条对抗性指令就可能泄露它。攻击面就是进程环境本身:os.environ,Linux主机上的/proc/self/environ,序列化进程状态的详细错误追踪,以及捕获包括Authorization字段的出站HTTP标头的调试日志配置。
导致智能体回显环境状态的提示注入攻击是针对持有明文密钥的智能体的一类有据可查的攻击(OWASP LLM01:2025)。结构性修复不是更好的输入验证:而是完全从智能体进程中删除明文密钥。LLM网关在Authorization标头被写入之前在线路层解析不透明句柄($CRED{openai}),意味着智能体进程永远不会持有可以被泄露的材料。
OpenLegion的网格在基础设施级别实现这一点:$CRED{}句柄在网格主机边界解析。智能体容器在结构上无法到达解析的值——不是因为它们被指示不这样做,而是因为解析发生在它们的地址空间之外。
共享密钥节流导致配额耗尽
上游模型提供商在API密钥级别进行节流。在二十个智能体进程共享一个密钥的机群中,单个进程以预期速率10倍发出请求——无论是通过重试风暴、失控循环还是导致无限推理调用的提示注入有效载荷——都可能将密钥推入其他十九个的速率限制区域。
网关使用以智能体标识符为键的滑动窗口计数器执行每租户配额。当智能体的计数器达到配置的上限时,网关在网关层以HTTP 429响应:不分发上游请求,不消耗提供商配额,兄弟智能体不受影响。
每智能体配额也是OWASP LLM10:2025(无限消费)的结构性缓解措施——对抗性指令导致智能体发出无限推理调用的模式。
缺少上游可观察性
没有推理数据平面,每请求遥测需要在每个智能体进程内部进行仪器化。这既是重复的又是不一致的。网关在线路层每请求发出OpenTelemetry OTLP日志记录,捕获:智能体标识符、上游端点、模型名称、输入令牌计数、输出令牌计数、缓存命中令牌、HTTP响应状态和请求持续时间。
每请求的支出记录(输入令牌 × 每1k输入价格 + 输出令牌 × 每1k输出价格)累积到每智能体的支出账本中。该账本支持每日和每月的支出上限以及支出异常警报。
不可见的上游降级
提供商端点会降级。容量事件期间GPT-4o的P99尾延迟可达12秒(OpenLegion基础设施基准测试,2026年6月)。没有数据平面中的断路器,机群中的每个智能体都会在每次请求时吸收这种降级。
具有断路器的网关跟踪每端点的错误率和P99延迟。当可配置的故障阈值被超越时——例如五个连续的5xx响应,或30秒窗口内P99超过8秒——电路打开:后续请求立即被分发到配置的备用端点,无需等待降级的主端点超时。
OpenLegion 2026年6月基准测试测量了GPT-4o主端 → Claude 3.5 Sonnet备用拓扑:P99从12秒降至3.1秒(3.9倍),无需对智能体代码进行任何修改。
网关架构:数据平面与控制平面
数据平面:每请求执行
每个推理请求按顺序通过数据平面:
-
TLS终止:智能体进程通过TLS连接到网关。对于mTLS部署,智能体也提供证书。mTLS消除了智能体和网关之间每请求认证令牌的需求。
-
工作负载身份解析:网关将连接工作负载映射到租户身份。在mTLS部署中,客户端证书中嵌入的SPIFFE SVID携带工作负载身份。
-
不透明句柄解析:网关检查出站Authorization标头中的
$CRED{}句柄模式。匹配的句柄根据网关的支持密钥存储解析。 -
配额检查:网关递增租户的滑动窗口计数器并与配置上限比较。如果计数器超过上限,网关返回带有
Retry-After标头的429。不打开上游连接。 -
断路器检查:网关评估目标端点的电路状态。如果电路打开,请求立即重定向到备用端点,无需尝试主端点。
-
上游分发:网关从自己的连接池打开到上游端点的连接,并将响应流式传输回来。
-
遥测发射:响应完成时,网关将OTLP日志记录写入遥测管道。
暖路径(缓存中已解析的句柄、内存中的配额计数器、关闭的电路、池化的连接)的总开销:0.7-2.1ms。冷路径(需要出站密钥存储查找的缓存未命中):2.6-6.6ms。在500ms-30s的提供商推理延迟下,暖路径开销低于总往返时间的0.5%。
控制平面:配置和策略
控制平面管理数据平面的行为。主要职责:
租户身份和配额配置、端点拓扑、句柄权限范围:哪些工作负载身份被允许解析哪些句柄。具有openai:read范围的租户可以解析$CRED{openai}但不能解析$CRED{anthropic}。这防止了租户之间的横向移动。
审计策略:OTLP日志记录中显示哪些字段。
控制平面API不应从智能体侧网络访问。GHSA-53mr-6c8q-9789(LiteLLM,CVE-2026-35029,在v1.83.0中修补)展示了当控制平面的配置写入路径在没有足够授权的情况下可通过网络访问时会发生什么。
部署拓扑
集中式入口
单个网关集群处理智能体机群的所有出站推理流量。适合最多约50个智能体的机群,此时操作简单性优先。
边车模式
每个智能体容器在其回环接口上运行网关进程。故障域是一个智能体容器。适合大型机群(50+智能体),此时每智能体故障隔离是优先级。
网格原生代理
在OpenLegion中,推理代理是一个网格服务。网格原生模型原生处理工作负载身份:每个智能体容器在生成时接收网格发布的身份。
OpenLegion的观点
LLM网关功能集——mTLS、滑动窗口配额执行、OTLP支出遥测、断路器故障转移——不是多智能体机群的可选基础设施。它是最小可行数据平面。
OpenLegion 2026年6月基础设施测试的三个测量值量化了风险:
无故障转移的P99尾延迟:在提供商容量事件期间,纯GPT-4o部署上12秒。在网关层配置Claude 3.5 Sonnet作为断路器备用时:3.1秒。3.9倍的改进不需要对智能体应用代码进行任何更改。
密钥泄露攻击面:在所有智能体在其环境中持有明文密钥的20智能体机群中,被提示注入(OWASP LLM01:2025)侵害的单个智能体可以泄露对其他每个智能体上游连接有效的密钥。在具有不透明句柄解析的网关中介机群中,相同的受侵害智能体没有可以泄露的材料。
OWASP LLM覆盖率:网关的每租户配额执行解决了LLM10:2025(无限消费)。句柄范围执行解决了LLM06:2025(过度代理)。
对于评估AI智能体凭证管理模式的团队,网关的不透明句柄解析是那里描述的保险库代理模式的部署级实现。
LLM网关比较
| 功能 | 自托管 (LiteLLM) | OpenAI原生 | OpenLegion网格代理 |
|---|---|---|---|
| 密钥解析模型 | Postgres支持的密钥存储 | 托管服务 | 不透明句柄 → 线路层的保险库 |
| mTLS工作负载身份 | 不支持 | 不支持 | 每智能体容器的SPIFFE SVID |
| 配额执行 | 基于配置,每密钥 | 每组织限制 | 滑动窗口计数器,每租户 |
| 断路器故障转移 | 基于插件 | 不可用 | 原生,带半开探测 |
| OTLP支出遥测 | 部分 | 不导出 | 每请求,所有字段 |
| 控制平面隔离 | 手动;默认暴露 | 托管 | 仅私有网格子网 |
| CVE历史 (2024-2026) | GHSA-53mr-6c8q-9789 + 其他 | 无公开 | 无 |
为您的机群选择网关
mTLS与Bearer令牌认证
mTLS(mutual TLS)在任何HTTP有效载荷交换之前,在TLS握手层同时认证客户端(智能体)和服务器(网关)。客户端证书携带SPIFFE SVID——一个可加密验证的工作负载身份。标头中不传输Bearer令牌;不需要发行、分发或轮换令牌。
对于生产多智能体机群,带有SPIFFE发行SVID的mTLS是正确的认证模型。它完全消除了令牌管理面。
滑动窗口与固定窗口配额计数器
固定窗口计数器在时钟边界重置。智能体可以通过在一个窗口最后几秒和下一个窗口前几秒以最大速度请求来以名义速率两倍进行突发。滑动窗口计数器在没有可利用时钟边界的连续时间间隔内维护滚动计数。对于推理工作负载,滑动窗口执行是正确的模型。
遥测粒度要求
每请求OTLP记录是有用机群可观察性的最低要求。评估网关是否在每条记录上提供这些字段:agent_id、model_id、input_tokens、output_tokens、cache_tokens、upstream_latency_ms、upstream_status。聚合遥测的网关无法支持每智能体支出异常检测或准确的断路器校准。
开始使用
使用mTLS工作负载身份、滑动窗口配额执行和每请求OTLP支出遥测部署多智能体推理机群。
常见问题
什么是LLM网关?
LLM网关是位于AI智能体进程和上游模型提供商端点之间数据平面的HTTP反向代理。它在线路层解析不透明密钥句柄(智能体进程从不持有明文密钥),在分发到上游前执行每租户滑动窗口配额限制,每请求发出OpenTelemetry支出遥测,并在上游端点超过配置阈值时打开断路器。这些功能作为不需要对智能体应用代码进行更改的基础设施原语运行。
如果我只使用一个模型提供商,我需要LLM网关吗?
单提供商机群仍然受益于三个网关功能:不透明句柄解析、每租户配额执行和每请求OTLP支出遥测。暖路径开销为0.7-2.1ms——相对于提供商500ms到30秒的推理延迟可以忽略不计。
LLM网关中的断路器故障转移如何工作?
网关在滚动观察窗口内跟踪每端点的错误率和P99延迟。当可配置的故障阈值被超越时——例如五个连续5xx响应,或30秒窗口内P99超过8秒——电路打开:所有后续请求立即转发到配置的备用端点,无需等待降级的主端点超时。冷却期后,网关向主端点分发一个半开探测。成功的探测关闭电路;失败的探测重启冷却计时器。OpenLegion 2026年6月基准测试测量到在GPT-4o → Claude 3.5 Sonnet拓扑上P99从12秒降至3.1秒。
什么是mTLS,为什么它对LLM网关很重要?
mTLS(mutual TLS)在任何HTTP有效载荷交换之前,在TLS握手层同时认证连接的智能体进程和网关。智能体提供携带SPIFFE SVID(加密可验证的工作负载身份)的客户端证书。HTTP标头中不传输Bearer令牌;不需要发行、分发或轮换任何令牌。从SVID派生的工作负载身份驱动句柄范围执行:网关允许连接工作负载只解析其SPIFFE身份有权范围的不透明句柄,即使一个智能体容器被攻陷也能防止租户间横向移动。
滑动窗口和固定窗口配额执行有什么区别?
固定窗口计数器在时钟边界重置。智能体可以通过在一个窗口最后几秒和下一个窗口前几秒以最大速度请求来以名义速率两倍进行突发——每分钟60个请求在边界处20秒内变成120个请求。滑动窗口计数器在没有可利用时钟边界的连续时间间隔内维护滚动计数。对于突发可能触发上游提供商节流的推理工作负载,滑动窗口执行是正确的模型。
每请求OTLP遥测与聚合支出报告有何不同?
每请求OpenTelemetry OTLP记录在每次推理调用时捕获个别字段:智能体标识符、模型变体、输入令牌、输出令牌、缓存命中令牌、上游延迟和HTTP状态。这些记录积累到每智能体支出账本中,支持每日和每月预算上限(智能体达到上限时网关阻止)、支出异常检测(当智能体每请求成本是其滚动基线的N倍时标记)和跨模型成本基准测试。聚合支出报告无法支持异常检测,因为信号在每请求方差中。
网关控制平面不应向智能体侧网络暴露什么?
控制平面管理配额配置、端点拓扑、句柄权限范围和审计策略。应部署在没有外部访问路径的私有子网中。GHSA-53mr-6c8q-9789(LiteLLM,CVE-2026-35029,在v1.83.0中修补)记录了管理API上的授权不足。智能体侧网络只应到达网关的数据平面端口。
如何为我的机群校准断路器阈值?
在两到四周的生产流量中收集每提供商端点的P50、P95和P99延迟直方图。断路器打开阈值应设置在相对于提供商正常SLA明显降级的P99值——通常是中位P99的2-3倍。半开探测前的冷却期应超过提供商的典型恢复时间——30-60秒是合理的基线。