博客
文章系列日历
归档关于搜索

鄂ICP备19019526号

© 2026 博客

  1. 文章
  2. LLM 网关与多模型路由的工程化 2026:从语义缓存到成本感知的统一架构

LLM 网关与多模型路由的工程化 2026:从语义缓存到成本感知的统一架构

2026年8月23日·约 37 分钟·11017 字·1 次阅读
AI 原生架构
LLM 网关与多模型路由的工程化 2026:从语义缓存到成本感知的统一架构

目录

  • 一、问题的提出:LLM 调用从函数调用升级为系统工程
  • 二、形式化:四类决策面与三维 Pareto 前沿
  • 三、多模型路由:从静态配置到在线 Pareto 选择
  • 四、语义缓存:从字符串匹配到嵌入空间决策
  • 五、可观测性回放:把每次决策都写成可审计的事件
  • 六、降级与熔断:把可用性工程做到 LLM 层
  • 七、对工程实践的七条推论
  • 八、与 AI Gateway 开源生态的边界
  • 九、给架构师的最终选型建议
  • 参考文献

LLM 网关与多模型路由的工程化 2026:从语义缓存到成本感知的统一架构

一句话摘要:把 LLM 网关视为四类决策面(接入、路由、缓存、审计)的统一协调器,把多模型路由抽象为成本/质量/延迟三维 Pareto 前沿上的在线选择,把语义缓存、prompt 模板版本化、跨供应商 schema 翻译、降级熔断、可观测性回放一并装进一个可横向扩展的代理层,2026 年生产级 AI 应用的稳定性与单位经济学都取决于这条网关是否足够厚实。

一、问题的提出:LLM 调用从函数调用升级为系统工程

把一次 LLM 调用视为一个函数调用是 2023 年的视角;2026 年的视角必须升级为一次跨供应商、跨模型、跨缓存、跨预算、跨审计的系统工程。原因是 LLM 推理的"输入-输出"形态本身已经从单轮问答转向多阶段流水线:检索增强、工具调用、多模态编码、长上下文摘要、思维链展开、结构化抽取、流式输出、并行采样。这些阶段每一步都可能跨越不同模型供应商(OpenAI / Anthropic / 自托管 vLLM / 内部小模型),跨越不同部署形态(同步 API / 流式 SSE / WebSocket / 异步批处理),跨越不同成本结构(按 token 计费 / 按请求计费 / 按 GPU 时长计费 / 按上下文长度阶梯计费),跨越不同 SLA(首 token 延迟 200ms / 流式完成 2s / 长任务 30s+)。

在这种异构背景下,让业务方直接对接每一个模型供应商是反工程的——业务方会陷入四种负面耦合:第一,与供应商的 API schema 耦合(OpenAI 的 tool_calls / Anthropic 的 tool_use / Gemini 的 function_calling 形态各异,每次换模型都要重写适配层);第二,与计费模型的耦合(按输入 vs 按输出 vs 按缓存命中 vs 按并发数,业务方难以做全局成本优化);第三,与故障域的耦合(任何一家供应商限流、宕机、模型下架都会直接波及业务方);第四,与可观测性语义的耦合(不同供应商的 trace ID 体系不同,业务方难以做端到端 SLA 分析)。

LLM 网关(LLM Gateway / AI Gateway)就是为这四种解耦而生的中间层。它在业务方与模型供应商之间架设一个语义稳定的协议层,把多模型路由、语义缓存、prompt 模板版本化、跨供应商 schema 翻译、降级熔断、配额限流、可观测性回放、token 预算管理一并封装为可声明的策略(policy)。业务方只需写一次"我要调用一个名为 summarize-doc 的能力,期望成本 ≤ 0.002 USD、延迟 ≤ 1.5s、质量 ≥ 阈值 0.85",网关负责把这条策略翻译为对若干候选供应商的具体调用序列,并在执行过程中实时调整(命中率低则降级、超时则熔断、配额耗尽则切换、成本超支则回退到小模型)。

但网关并不是简单的反向代理。普通反向代理(nginx / Envoy)的语义层只到 HTTP / gRPC,不会理解 prompt 的语义、不会做基于嵌入相似度的缓存命中决策、不会按 token 成本做 Pareto 选择、不会跨供应商做 schema 对齐、不会在响应中携带可观测性标签。LLM 网关必须自带一个 LLM-aware 的控制平面:把每个请求解析为语义结构(角色、消息、内容、工具声明、参数、上下文窗口),把每次响应抽取为可观测字段(首 token 延迟、总 token 数、缓存命中、成本、错误码、模型版本、降级路径),再把这些字段喂给路由策略、缓存策略、配额策略、降级策略、可观测性策略。这条网关的"厚度"决定了 AI 应用工程化的天花板——它太薄就只是个反向代理,无法承接 2026 年 AI 应用的复杂度;它太厚则会演化为一个不可维护的巨石,所有策略耦合在一个服务里。

本文要回答的核心问题是:如何在"薄"与"厚"之间找到那个恰好的厚度,使得 LLM 网关可以横向扩展(多个无状态 worker 共享策略状态)、可观测(每个决策都可回放)、可降级(任何单点失败都不影响核心业务)、可演进(新增供应商只需接入一个 adapter 而不需要改网关核心逻辑)。我们将以四层结构来拆解这条架构:第一节给出问题域与目标函数,第三节给出形式化(路由决策、缓存命中、成本归因、降级图),第四到第六节给出三组主体机制(多模型路由、语义缓存、可观测性回放),第七节给出对工程实践的七条可执行推论,第八节讨论与 AI Gateway 开源生态(LiteLLM / Portkey / OpenRouter)的边界,第九节给架构师的最终选型建议。

二、形式化:四类决策面与三维 Pareto 前沿

LLM 网关的决策空间可以拆解为四个正交面:

接入面(ingress plane):负责把业务方的请求归一化为内部 schema。无论上游是 RESTful HTTP、SSE 流式、WebSocket、gRPC 还是消息队列,网关都要在边缘层把它翻译为内部统一协议。这一层的关键设计是"流式优先"——流式请求的连接保持时间从 100ms 到 30s+ 跨度极大,网关必须为流式连接单独维护一个连接池,避免长连接占用 worker 的同步 IO 槽位。

路由面(routing plane):负责把每个请求映射到一个或多个候选模型供应商的执行序列。决策变量是四元组 <candidate_models, fallback_chain, parallel_fanout, aggregation_strategy>。我们形式化路由目标为最小化期望损失: L(r)=α⋅E[cost(r)]+β⋅E[latency(r)]+γ⋅(1−E[quality(r)])L(r) = \alpha \cdot \mathbb{E}[\text{cost}(r)] + \beta \cdot \mathbb{E}[\text{latency}(r)] + \gamma \cdot (1 - \mathbb{E}[\text{quality}(r)])L(r)=α⋅E[cost(r)]+β⋅E[latency(r)]+γ⋅(1−E[quality(r)]) 其中 α+β+γ=1\alpha + \beta + \gamma = 1α+β+γ=1 是业务方声明的预算分配,cost\text{cost}cost 是按 USD 计价的单次成本,latency\text{latency}latency 是 P95 首 token 延迟,quality\text{quality}quality 是离线 golden set 上评估的通过率。候选模型集合 M={m1,m2,...,mk}M = \{m_1, m_2, ..., m_k\}M={m1​,m2​,...,mk​} 中每个模型有自己的 (cm,lm,qm)(c_m, l_m, q_m)(cm​,lm​,qm​) 三元组,路由算法在每次请求时挑选一个 m∗∈Mm^* \in Mm∗∈M 使得 LLL 最小,并预留若干 fallback 节点。

缓存面(caching plane):负责对请求的"语义等价"做近似匹配,避免重复调用昂贵模型。语义缓存的命中决策是一个相似度阈值问题:给定请求 rrr 与缓存中条目 r′r'r′,若 sim(e(r),e(r′))>θ\text{sim}(e(r), e(r')) > \thetasim(e(r),e(r′))>θ 则命中,否则未命中。这里 e(⋅)e(\cdot)e(⋅) 是嵌入模型(通常比目标 LLM 便宜 1-2 个数量级),θ\thetaθ 是业务方声明的保守度。语义缓存的失效(invalidation)比 HTTP 缓存更微妙——它不能简单地用 TTL 失效,因为语义相似的请求可能在不同时间窗口内有不同正确性要求(比如股票价格查询、新闻摘要),需要把语义相似度、时间窗口、上下文变量(用户 ID / 业务场景)联合起来做决策。

审计面(observability plane):负责把每次决策、每次调用、每次降级都记录为可回放的事件流。审计事件 schema 至少包含:trace_id、span_id、parent_span_id、模型版本、prompt 模板版本、prompt hash、response hash、输入 token 数、输出 token 数、缓存命中标志、降级路径、成本、首 token 延迟、总延迟、错误码、SLA 标签(critical / non-critical)、业务标签(user_id / scenario / tenant)。所有事件写入可流式订阅的 trace backend(OpenTelemetry collector / ClickHouse / Loki),并由网关异步消费做实时监控(cost dashboard / latency heatmap / fallback rate alert / cache hit rate trend)。

四类决策面之间是正交的——任意一面都可以独立演进。接入面的新协议支持不影响路由面的策略;缓存层的命中率提升不影响审计层的字段;这种正交性是 LLM 网关可演进的根因。错把决策耦合在一个组件里(例如把缓存逻辑写在路由代码里)会让网关僵化为不可重构的巨石。

三、多模型路由:从静态配置到在线 Pareto 选择

多模型路由是网关的核心智能化能力。早期的 LLM 网关(2024 年的 LiteLLM / OpenRouter 早期版本)只支持静态配置:"所有 summarize-doc 请求都路由到 Claude Sonnet,所有 code-gen 请求都路由到 GPT-4o"——这是简单的关键字路由,本质上和 nginx 的 location 块没有区别。2026 年的多模型路由必须升级为在线 Pareto 选择:在每次请求时根据当前候选模型的实时状态(成本、延迟、错误率、配额剩余)、请求的语义特征(输入长度、任务类型、上下文敏感度)、业务方声明的预算分配(α,β,γ\alpha, \beta, \gammaα,β,γ)共同决定路由目标。

路由算法的核心是一个在线学习的"模型-场景"映射矩阵 W∈R∣M∣×∣S∣W \in \mathbb{R}^{|M| \times |S|}W∈R∣M∣×∣S∣,其中 SSS 是任务场景集合(reasoning / chat / code / extraction / multimodal / long-context 等),Wm,sW_{m,s}Wm,s​ 表示模型 mmm 在场景 sss 上的质量权重。每次请求时,路由算法读取请求的场景分类 srs_rsr​,读取每个候选模型 mmm 的实时 (cm,lm,qm,quotam,error_ratem)(c_m, l_m, q_m, \text{quota}_m, \text{error\_rate}_m)(cm​,lm​,qm​,quotam​,error_ratem​),构造一个 Pareto 前沿,挑选最小化 LLL 的模型 m∗m^*m∗。这一决策的关键工程问题是反馈闭环:如何把每次调用的真实质量结果回流到 WWW 矩阵以持续优化?典型做法是双层反馈:

  • 离线反馈:从生产流量中按 1% 比例采样请求,同时用候选模型集合 MMM 中的多个模型做并行推理,用"裁判模型"(judge LLM)打分,选出实际最优模型作为 ground truth,更新 Wm,sW_{m,s}Wm,s​。
  • 在线反馈:业务方在响应中给出显式反馈(点赞 / 点踩 / 重生成),把"用户实际偏好"作为质量权重的一部分加进 Wm,sW_{m,s}Wm,s​。

这条双层反馈机制让路由算法可以从"工程师手调的静态映射"演化为"自学习的在线选择"。但在线学习的工程风险是反馈循环被污染(如果用户点赞了低质量但讨喜的输出,路由会倾向于把更多请求送到那个模型),因此反馈机制必须带显式的回滚闸门——任何 W 矩阵的更新都要先在影子流量(shadow traffic)上验证 1 小时,再切到真实流量。

多模型路由的另一个工程深度是并行采样 + 聚合。对于高价值请求(业务方愿意为质量付额外成本),网关可以让多个候选模型并行推理,然后用一个轻量级的聚合模型(GPT-3.5 级或自托管的小模型)选出最优响应,或者用"自一致性"(self-consistency)多数投票。这条路径把单次请求成本放大 kkk 倍(kkk 是并行模型数),但通过聚合提升质量上限。生产中典型配置是:90% 的请求走单模型路由(成本优先),8% 的请求走双模型对比(质量优先),2% 的请求走三模型以上并行聚合(关键决策场景)。

四、语义缓存:从字符串匹配到嵌入空间决策

LLM 网关的缓存层是单位经济学优化的核心杠杆。一个 LLM 调用的成本结构是"固定成本 + 边际成本":固定成本是网络往返、TCP/TLS 握手、认证 token 校验、prompt 解析、KV cache 复用检查,约 50-200ms;边际成本是模型推理本身的 GPU 时长,按 token 数阶梯计价。缓存命中意味着这两个成本都被免除,因此缓存命中率每提升 10 个百分点,单次平均成本下降约 8-15%(取决于 prompt 长度分布)。

但 LLM 调用的"等价性"远比 HTTP 缓存复杂。HTTP 缓存可以按 URL + query string 做精确匹配;LLM 调用不能,因为同一意图的 prompt 可能有无数种 token 序列表达。例如 "总结这篇文章" 和 "用三句话概括下文" 在语义上等价,但字符串完全不同。因此 LLM 网关的缓存必须用嵌入空间相似度做近似匹配:

  1. 嵌入生成:对每次请求的 prompt rrr 跑一个轻量级嵌入模型(text-embedding-3-small / bge-m3 / e5-mistral-7b),生成 ddd 维向量 e(r)e(r)e(r)。
  2. 相似度检索:在向量数据库(Qdrant / Milvus / pgvector / RedisVL)中按余弦相似度检索 top-kkk 候选,保留 sim(e(r),e(ri))>θ\text{sim}(e(r), e(r_i)) > \thetasim(e(r),e(ri​))>θ 的最高相似度条目。
  3. 响应回放:若 sim>θ\text{sim} > \thetasim>θ 且时间窗口未失效(按业务场景设置的 TTL),则直接复用缓存的响应。

这条管线的工程陷阱是阈值 θ\thetaθ 的选择。θ\thetaθ 过高(如 0.98)命中率低,缓存价值有限;θ\thetaθ 过低(如 0.85)会误命中——看似相似但实际差异显著的请求会得到错误响应。2026 年的生产经验是:θ\thetaθ 必须按业务场景分级设置,对结构化抽取场景用 0.95(高门槛避免误判),对开放式生成用 0.88(容忍更多变化),对闲聊场景用 0.80(高命中率优先)。这条分级策略必须以业务方的质量损失函数 LLL 为约束——任何使期望质量下降超过 1% 的阈值都不允许。

语义缓存的另一个工程深度是上下文变量过滤。一次 LLM 调用 r=(rstatic,rdynamic)r = (r_{\text{static}}, r_{\text{dynamic}})r=(rstatic​,rdynamic​) 由静态部分(系统 prompt、模板、tools 声明)和动态部分(用户输入、当前时间戳、检索到的文档片段)组成。缓存键必须只基于静态部分和归一化后的动态部分(剔除时间戳、随机 session ID 等),否则任何动态扰动都会让缓存键漂移、命中率崩塌。

语义缓存的失效(invalidation)比 HTTP 缓存复杂得多。LLM 调用的响应可能因为以下原因失效:模型版本升级(同一 prompt 在 GPT-4o-2024-08 vs GPT-4o-2025-01 可能产出不同);prompt 模板版本变更(v1 和 v2 模板下的相同输入应有不同缓存);业务场景变更(股票价格查询超过 1 分钟就应失效)。因此语义缓存必须支持三类失效:被动失效(TTL 到期)、主动失效(业务方手动 invalidate)、语义失效(嵌入相似度高于阈值但 prompt 模板版本号不一致时强制失效)。生产中通常用版本号 + TTL + 相似度三重门槛做联合判断。

五、可观测性回放:把每次决策都写成可审计的事件

LLM 网关的可观测性不是"把日志写到 ELK"那么简单。可观测性的真正价值在于决策回放——当一次 LLM 调用出了质量问题(比如生成的内容有事实错误),运营方必须能精确还原那一刻的路由决策、缓存命中、降级路径、模型版本、prompt 模板版本、温度参数、最大输出长度等所有决策变量,并基于此做根因分析。普通日志只记录"输入是什么、输出是什么",无法回答"为什么是这个模型响应这个 prompt 而不是那个模型"——这正是网关可观测性要补的洞。

可观测性回放的工程基础是全链路 trace。每次 LLM 调用都生成一个 trace_id,从业务方的入口开始,穿过网关的接入面、路由面、缓存面、审计面,最后落到模型供应商的响应。整个 trace 用 OpenTelemetry 的 W3C Trace Context 标准序列化(traceparent header),并按 span 嵌套记录每个子决策:路由决策 span 记录 candidate_models / fallback_chain / chosen_model / cost_estimate / latency_estimate / quality_estimate,缓存决策 span 记录 cache_key / cache_hit / similarity_score / threshold / cache_version / invalidation_reason,降级决策 span 记录 primary_failed / fallback_triggered / fallback_reason / fallback_chain_depth。所有 span 都关联到一个公共的 trace_id,可以通过 Jaeger / Tempo / Honeycomb 等后端做时间线可视化。

可观测性的第二个维度是实时指标。每次调用都要把以下指标实时推送到监控系统(Prometheus / VictoriaMetrics / Datadog):

  • llm_gateway_cost_total{model, scenario, tenant}:成本累计
  • llm_gateway_latency_seconds{model, scenario, percentile}:延迟分布
  • llm_gateway_cache_hit_rate{scenario, similarity_threshold}:缓存命中率
  • llm_gateway_fallback_rate{model, scenario}:降级率
  • llm_gateway_error_rate{model, error_code}:错误率
  • llm_gateway_token_total{model, direction}:token 用量(输入 vs 输出)

这些指标共同构成运营 dashboard 的核心。关键设计是标签(label)必须足够细(按模型 + 场景 + 租户)才能做下钻分析,但又要避免高基数(cardinality explosion)让 Prometheus 崩溃——典型做法是限制标签组合最多 4 个键,每个键的值域 ≤ 100。租户这种天然高基数维度应该走 trace 后端而不是 metric 后端。

可观测性的第三个维度是成本归因。LLM 网关是 AI 应用的"成本咽喉",所有 token 用量、所有模型调用、所有降级路径都从这里过。因此网关必须把每次调用的成本按四维度归因:模型(哪个模型产生了成本)、场景(哪个业务场景触发了调用)、租户(哪个客户承担成本)、功能(哪个产品功能消耗了 token)。归因结果写入 ClickHouse / BigQuery / Snowflake 做离线分析,运营方据此做定价(按 token 包月、按调用次数、按场景阶梯)和成本优化(识别高消耗场景、推动 prompt 压缩、推动缓存命中率提升)。

六、降级与熔断:把可用性工程做到 LLM 层

LLM 网关的降级机制是 AI 应用 SLO 工程的最后一道防线。任何模型供应商都可能限流、宕机、模型下架、响应异常;任何业务场景都可能因流量突增、prompt 长度超标、上下文窗口溢出而失败。LLM 网关必须在这些异常下仍保证核心业务可用。降级机制分四级:

L1:同模型重试。遇到 5xx 错误、网络超时、限流响应(429)时,对同一模型重试 1-3 次,指数退避(100ms / 300ms / 1s)。这条降级解决的是"瞬时抖动",对模型供应商的硬故障无能为力。

L2:跨供应商 fallback。当 L1 重试耗尽,切换到预先声明的 fallback_chain 中的下一个候选模型。例如 Claude Sonnet 失败 → 切换到 GPT-4o → 切换到自托管的 Llama 3.1 70B。每个 fallback 都要重新走一遍 L1 重试逻辑。fallback 链的深度通常为 3-5,过深会增加 P99 延迟。

L3:降级到小模型。当所有 fallback 失败或成本超支,降级到一个轻量级模型(GPT-3.5 / Llama 3.1 8B / 自托管小模型),用更短的 prompt 和更少的工具调用换取可用性。降级响应必须带上 degraded: true 标签,让业务方知道这条响应是"低质量但可用"的。

L4:缓存兜底。当所有实时路径失败,回退到语义缓存里最近一次有效响应(即使已超过 TTL,也优先于"无可用响应")。这条兜底对闲聊、FAQ 类场景效果显著——业务方宁可接受"5 分钟前的旧答案"也不愿看到错误页。

熔断器(circuit breaker)模式嵌入在 L1-L4 之间。当某模型的错误率超过阈值(如 50% 错误率持续 30 秒),自动跳过后续请求直接降级,避免雪崩。熔断器分三态:CLOSED(正常请求)、OPEN(熔断中,直接降级)、HALF_OPEN(试探性放行少量请求探测恢复)。生产中熔断阈值需要按模型供应商历史稳定性调优——OpenAI / Anthropic 这类成熟供应商阈值可以放到 60% 错误率才熔断(容忍偶发限流),自托管模型阈值要放到 30% 错误率就熔断(快速失败保护 GPU 集群)。

七、对工程实践的七条推论

推论一:网关必须从第一天就是独立服务。把 LLM 网关逻辑耦合在业务应用里是常见反模式——业务方会陷入"每个业务都自己实现一遍多模型路由、语义缓存、降级逻辑"的重复造轮子。生产经验是任何超过 100 QPS 的 LLM 调用都应该在第一天就引入独立网关,初期可以是 LiteLLM 这类轻量级方案,后期再演进为自研。

推论二:嵌入模型与目标模型必须解耦部署。语义缓存的嵌入模型(text-embedding-3-small / bge-m3)和目标 LLM(GPT-4o / Claude Sonnet)的 SLA、成本、扩容周期完全不同。嵌入模型可以放在 CPU 集群,目标 LLM 必须放 GPU 集群,两者通过向量数据库解耦。混部会导致嵌入模型的 CPU 抢占影响 LLM 推理的延迟,反之亦然。

推论三:路由策略必须有显式的回滚闸门。在线学习的路由算法在生产中可能因为反馈数据漂移、模型供应商临时变更、prompt 模板升级而走偏。每次 W 矩阵更新都要先在影子流量(1% 流量)上验证 1 小时,无质量下降再切到真实流量;任何质量下降超过 1% 的更新必须回滚。这条闸门是路由系统稳定性的保险绳。

推论四:缓存命中率是单位经济学的第一杠杆。从工程经济学角度,缓存命中率每提升 10 个百分点,单次平均成本下降 8-15%。但缓存命中率的优化不能盲目堆向量数据库规模——必须有配套的失效策略、相似度阈值分级、上下文变量归一化。生产中典型命中率是 30-50%(开放式生成场景)到 70-85%(结构化抽取场景),超过这个区间需要警惕"过度缓存导致质量下降"。

推论五:可观测性必须支持决策回放而非仅仅日志聚合。把 trace_id / span_id 全链路打通是第一步;更重要的是路由决策 span、缓存决策 span、降级决策 span 必须记录足够字段,让运营方在 30 分钟内还原"为什么这次请求走到了这个模型"。做不到决策回放的可观测性等于没有可观测性。

推论六:降级链必须显式声明而非依赖默认值。每个业务方应该在自己的 prompt 配置里显式声明 fallback_chain(如 ["claude-sonnet-4.5", "gpt-4o", "llama-3.1-70b-local"])和 max_fallback_depth(如 3)。默认值("由网关自动选 fallback")会让业务方在故障时无法预期行为,且难以做 SLO 分析。

推论七:网关本身必须是无状态可横向扩展的。所有策略(路由表、缓存索引、配额状态、降级阈值)都应该外部化到 Redis / etcd / ClickHouse 等共享存储,网关 worker 本身只负责执行逻辑。这条架构原则让网关可以无感扩缩容应对流量峰值,也让 worker 的滚动升级不影响在线请求。

八、与 AI Gateway 开源生态的边界

2026 年的 AI Gateway 开源生态已经相当成熟——LiteLLM(Berkeley 团队)、Portkey(前 Hyperloop 团队)、OpenRouter、Cloudflare AI Gateway、AWS Bedrock Gateway 都在生产环境大规模使用。自研 LLM 网关的成本通常是 3-6 个工程师 6 个月起步,而开源方案可以在一周内上线。选择自研 vs 开源的边界由三个因素决定:

第一个因素是定制深度。如果业务方需要高度定制化的路由策略(如基于业务指标的多模型决策、跨场景的成本归因、复杂的 schema 翻译),开源方案的策略引擎可能不够灵活。如果业务方的需求是"标准的 fallback + 限流 + 缓存",开源方案完全够用。

第二个因素是合规与数据驻留。金融、医疗、政企客户对数据出云有强约束,必须走私有部署 + 自托管网关 + 自托管模型。这条场景下开源方案(LiteLLM 自托管版、Portkey 自托管版)比云厂商方案(Cloudflare AI Gateway、AWS Bedrock Gateway)更合适。

第三个因素是研发资源与时间窗口。3-6 个月的研发窗口对应的 ROI 需要仔细评估——如果业务方的 LLM 调用量还不到 100 万次/月,自研网关的人力成本远超收益,应该先用开源方案把业务跑起来,规模化后再考虑自研。

实践中 2026 年的主流做法是双层架构:底层用 LiteLLM / Portkey 这类成熟开源方案做"标准化网关",上层自研一个轻量级"策略网关"做业务定制逻辑(成本归因、租户隔离、业务级 prompt 模板版本化)。这条架构既享受开源方案的稳定性,又保留业务定制深度,是大多数 AI 应用团队的务实选择。

九、给架构师的最终选型建议

如果你正在评估或自研 LLM 网关,请按以下顺序做决策:

  1. 第一周:评估 LiteLLM / Portkey 的能力是否能覆盖 80% 的需求。如果能,直接用开源方案,把精力放在业务逻辑而非网关基础设施。
  2. 第一个月:跑通 1 万次 LLM 调用的影子流量,收集真实的成本、延迟、错误率数据,建立基线 dashboard。这一步的关键产出是"真实的 Pareto 前沿"——不是理论模型而是实测数据的可视化。
  3. 第三个月:基于影子数据设计路由策略,引入第一个 fallback 链和第一个语义缓存层。优先做高价值场景(如客服、文档抽取),不要一上来就全量铺开。
  4. 第六个月:评估是否需要自研。判断标准是:(a) 业务定制需求是否超出开源方案的策略引擎能力;(b) LLM 调用规模是否达到自研人力成本的 ROI 临界点(粗算:每月 100 万次调用、每次平均节省 0.0005、每月节省0.0005、每月节省 0.0005、每月节省500,自研人力成本应低于此);(c) 数据合规要求是否强制需要私有部署。
  5. 持续:建立 LLM 网关的 SLO 体系(P95 延迟 / P99 成本 / 缓存命中率 / 降级率),让网关本身成为可观测、可演进、可降级的"一等公民"服务而非业务应用的附属品。

LLM 网关不是 2026 年的"可选项"——它是 AI 应用工程化的"必选项"。任何跳过网关、直接让业务方对接模型供应商的架构,在调用规模超过 1000 QPS 后都会撞上成本失控、可用性雪崩、可观测性黑洞这面墙。把网关做厚做稳,让业务方专注在产品逻辑而非基础设施,是 2026 年 AI 应用架构师的核心职责。

参考文献

  1. LiteLLM documentation, Berkeley LLM Gateway team, https://litellm.vercel.app, accessed 2026-08.
  2. Portkey AI Gateway: A unified interface for LLM applications, Portkey docs, https://portkey.ai/docs, 2025-11.
  3. OpenRouter: Unified API for LLMs, OpenRouter team, https://openrouter.ai, 2026-06.
  4. Cloudflare AI Gateway: Observability and caching for AI apps, Cloudflare blog, https://blog.cloudflare.com/ai-gateway, 2025-10.
  5. AWS Bedrock Gateway: Multi-model orchestration for enterprise AI, AWS documentation, https://aws.amazon.com/bedrock, 2026-04.
  6. OpenTelemetry GenAI Semantic Conventions, CNCF Observability working group, https://opentelemetry.io/docs/specs/semconv/gen-ai, 2026-02.
  7. Anthropic prompt caching best practices, Anthropic engineering blog, https://www.anthropic.com/engineering/prompt-caching, 2025-09.
  8. W3C Trace Context specification, W3C Recommendation, https://www.w3.org/TR/trace-context, 2024-11.
  9. Qdrant vector database: Production patterns for semantic caching, Qdrant engineering, https://qdrant.tech/articles/semantic-caching, 2025-12.
  10. bge-m3 embedding model: Multi-functionality, multi-linguality, multi-granularity embeddings, Chen et al., arXiv:2402.03216, 2024.
  11. text-embedding-3 model card, OpenAI, https://platform.openai.com/docs/guides/embeddings, 2024-01.
  12. Circuit breaker pattern in distributed systems, Nygard, Release It! 2nd Edition, Pragmatic Bookshelf, 2018.
  13. Pareto optimality in multi-objective optimization, Miettinen, Nonlinear Multiobjective Optimization, Springer, 1998.
  14. OpenTelemetry Collector: Production deployment guide, CNCF Observability, https://opentelemetry.io/docs/collector, 2026-03.
  15. RedisVL: Vector search in Redis for LLM applications, Redis Labs, https://redis.io/docs/latest/develop/interfaces/redisvl, 2025-08.

相关文章

  • LLM 推理的显存碎片化与 OOM 预测工程 2026:从被动驱逐到主动重分配8月21日
  • GPU Kernel 调度:大模型推理的拐点 20268月20日
  • LLM 推测解码的工程化 2026:从 Draft 到生产加速8月19日

评论

加载评论中…

发表评论

返回文章列表