你基于 OpenAI 的 API 把应用搭起来了。后来你想试试 Claude,也想比一比 Gemini。可每家提供商的 SDK、请求结构、错误行为都不一样。每换一次都得重写代码、转换响应、为每家厂商单独维护重试逻辑——不知不觉,"厂商专属的管道代码"已经渗透进应用的每一个角落。而当你被绑死在一家提供商上时,只要那家公司出故障、涨价或者停用某个模型,你的应用就会跟着一起挂掉

接管这一切管道工作的,就是 LLM 网关(AI 网关),也叫 LLM 代理。它是一个中转层,位于你的应用和各家提供商之间,对外暴露一个统一 API(通常兼容 OpenAI),用它就能触达所有模型,并且把横切性的杂活都处理掉——回退、成本追踪、缓存、限流。本指南将讲清网关替你做了什么自托管、托管、SDK 三种类型的区别、如何在 LiteLLM、OpenRouter 和 Vercel AI SDK 之间做选择,以及你必须了解、以免踩坑的局限

30 秒速览

如果你只看一个框

它是什么
一个位于应用与各提供商之间的中转层通过一个 API 触达所有模型
好处在哪
自由地切换、对比、回退。在一处统一管理成本与限流。
先选哪个
自托管 = LiteLLM / 即开即用的托管 = OpenRouter / TS 应用 = Vercel AI SDK

注意:网关并非免费午餐。它会带来一跳延迟、费用,以及部分功能的损失(见 §8)。

1. 为什么你需要 LLM 网关

如果你只通过单一 SDK 调用单一提供商,那你不需要网关。而一旦你想使用不止一个模型,就需要它了。看看这三个经典的痛点。

🔗 厂商锁定与代码散落

每家提供商的 SDK、参数名、响应结构、错误码都不同。每换一次,都意味着重写你的应用

⚡ 故障、涨价、停用

完全依赖一家公司,它的故障或价格变动就会变成你的停机。你需要一条逃生通道(回退)

🔀 对比、切换、自由组合

最佳模型因任务而异。你想用便宜的模型起草、用聪明的模型润色——可管道代码却横在中间碍事。

它们的共性在于这样一种结构:SDK 的约束反过来决定了本质上属于战略层面的选择——用哪个模型。网关把这些管道从你的应用里剥离出来。你的应用只需知道一个端点;背后该调谁、失败时该切到谁、已经花了多少钱,都是网关的活。由于构建 AI 智能体智能体框架几乎总是默认要用到多个模型,这种需求只会越来越大。

2. 什么是 LLM 网关

LLM 网关是一个位于你的应用与一个或多个 LLM 提供商之间的代理。大多数网关都对外暴露一个形似 OpenAI chat-completions 端点的统一 API,并在一处集中处理那些原本会散落在代码各处的横切工作——路由、重试与回退、缓存、限流、成本追踪、访问控制。

你的应用
只需知道一个 API
(兼容 OpenAI)
LLM 网关
路由 / 回退
成本 / 缓存 / 管控
各提供商
OpenAI / Anthropic
Google / 本地……
你的应用只看到一扇窗——网关。它背后调用谁,都在幕后切换。

关键在于把窗口收成一扇。你的应用代码只需给 model 传一个字符串。写 anthropic/claude-opus-4.8 就得到 Claude;写 openai/gpt-5.5 就得到 GPT——应用里的其它一切都不用改。诸如"这个模型宕机时就切到另一个""同样的问题从缓存里返回"之类的决策,全都在网关一侧解决。想混入一个本地 LLM,做到"敏感数据留在本地、其余都发往云端",写法也是一样的。

3. 它替你处理什么

网关承担的横切工作大致可归为下面六类。工具各有所长,但方向是一致的。

🔌 统一 API

一种格式(通常兼容 OpenAI)调用所有提供商。把厂商差异从应用中抹去,是它的核心能力。

🔁 回退与重试

当主模型报错、过载或超时时,自动切换到另一个。这是业务连续性的核心。

💰 成本追踪与虚拟密钥

按用户、团队或项目查看花费。发放受限范围的虚拟密钥,把真实密钥藏起来。

⚡ 缓存

对相同或相似的请求记住并即时返回。既省 API 账单,又降低延迟。

🚦 限流与负载均衡

按密钥设置 token 与请求上限,并在多把密钥、多个实例之间做负载均衡

📊 可观测性与护栏

跨所有请求度量日志、延迟与成功率。部分工具还允许你插入输入/输出护栏

💡 "回退"不等于"安全"。你切过去的那个模型,输出习性、token 计数、支持的功能都各不相同。回退并不会在你配置好的那一刻就变得安全——只有当你真正触发过它、测试过它,它才算能用。切换后你的提示词会不会崩,一定要提前验证。

4. 三种类型:自托管、托管、SDK

"LLM 网关"常被当成一个统一标签来用,但按它运行在哪里,可以分成三种相当不同的性格。搞混了就会选错。

类型 运行在哪里 示例 适合谁
① 自托管代理 你自己的服务器(独立进程) LiteLLM / Portkey(开源) 数据留在内部、受治理
② 托管(SaaS) 提供商的云上 OpenRouter / Cloudflare 即开即用、零运维
③ SDK / 库 你的应用代码内部 Vercel AI SDK 在 TS/JS 里快速抽象

① 自托管是你在自有基础设施上跑起来的一个独立进程(一台代理服务器)。由于提示词不经过外部 SaaS,它在治理与审计方面很强——但要你自己来运维。② 托管由提供商来运行这个代理,所以上手最快,但请求要经过第三方。③ SDK不额外起进程;它在你的应用代码内部吸收各提供商的差异——不是网络中转,而是一层"抽象层",并且可以与 ① 或 ② 组合使用。

5. 主流工具对比

下面按推荐顺序列出三大主角,另加两个值得了解的。数据以各厂商 2026 年 7 月的官方页面为准(供给会变,请务必对照原始来源确认最新情况)。

LiteLLM——自托管代理的标杆

LiteLLM(出自 BerriAI)是一个开源的 Python 库兼自托管网关。它让你通过单一的兼容 OpenAI 的 API,调用100+ 家提供商、2,500+ 模型(据官方仓库)。把它作为代理跑起来,你就获得了成本追踪、虚拟密钥、限流、回退、负载均衡、Redis 缓存,以及可观测性(Langfuse/Prometheus/Datadog 集成)。对于想把提示词留在内部的组织,它是首选。

OpenRouter——一把密钥,即刻用上多提供商

OpenRouter是一个零运维的托管网关。凭单一的兼容 OpenAI 的 API一把 API 密钥,据官方站点即可访问 400+ 模型。它的定价设计很有特点:官方站点声明"我们不对推理 token 加价(目录价等于各提供商公布的价格)",同时对充值时收取 5.5% 平台手续费(据 openrouter.ai/pricing)。要"先跑起来"、要"用一把密钥试遍所有厂商",它的速度压倒性地快。

Vercel AI SDK——在 TypeScript 里从代码层抽象

Vercel AI SDK(2026 年简称"AI SDK")是一个开源的 TypeScript 工具包。它不是一个独立的代理进程,而是一层在你的应用代码内部吸收提供商差异的抽象层。文档所称的"架构核心"就是提供商抽象:从 OpenAI 切到 Anthropic,只需改一个 import 和一个模型字符串——你的生成、流式、工具调用代码完全保持不变。搭配托管的 Vercel AI Gateway,你就能触达 100+ 模型。实现细节与代码,请看我们的 Vercel AI SDK 完全指南

另外两个值得了解的

一个托管的、在边缘运行的选项。只要把你现有的提供商调用改道经过它,几乎不用改代码就能获得缓存、限流、分析、日志与回退(据文档)。如果你本来就跑在 Cloudflare 上,它非常契合。

🛡️ Portkey

一个控制平面,为网关加上生产级的治理、护栏与提示词管理。官方站点称它通过一个 API 连接 1,600+ LLM。开源版也可自托管。

工具 类型 窗口 侧重 定价思路
LiteLLM ① 自托管 兼容 OpenAI 的 API 治理、虚拟密钥、可观测性 开源免费 + 你的运维成本
OpenRouter ② 托管 兼容 OpenAI 的 API 即刻上手,一把密钥用 400+ 模型 推理不加价;充值收 5.5%
Vercel AI SDK ③ SDK TS 函数 从代码切换,类型安全 SDK 免费 + 各厂商各自计费
Cloudflare AI Gateway ② 托管(边缘) 透传 缓存、可观测性 Cloudflare 定价
Portkey ① / ② 皆可 统一 API 治理、护栏 开源 + SaaS 套餐
数据与定价以各厂商 2026 年 7 月的官方页面为准。它们会变——采用时请重新对照原始来源确认。

6. 最小配置(代码)

看起来吓人,但切换的关键其实只有一处——换掉端点(或模型字符串)。下面给出三种类型各自的最小示例。

② 托管:OpenRouter(只换端点)

照旧用你惯用的 OpenAI SDK;只改 base_url 和密钥,就能触达 400+ 模型。

from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",  # 唯一需要改的地方
    api_key="sk-or-...",                       # 你的 OpenRouter 密钥
)

resp = client.chat.completions.create(
    model="anthropic/claude-opus-4.8",  # 改成 "openai/gpt-5.5" 就切换了
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

① 自托管:LiteLLM(自己搭一个代理)

在配置文件里列出你的模型,一条命令就能在 localhost:4000 上搭起一个兼容 OpenAI 的网关。你的应用只需指向那里。

# config.yaml
model_list:
  - model_name: claude
    litellm_params:
      model: anthropic/claude-opus-4-8
      api_key: os.environ/ANTHROPIC_API_KEY
  - model_name: gpt
    litellm_params:
      model: openai/gpt-5.5
      api_key: os.environ/OPENAI_API_KEY
# 启动(在 http://localhost:4000 提供兼容 OpenAI 的 API)
litellm --config config.yaml

③ SDK:Vercel AI SDK(在代码里改模型字符串)

保留 import 和函数;只换 model 字符串即可切换。

import { generateText } from 'ai';

const { text } = await generateText({
  model: 'anthropic/claude-opus-4.8',  // 改成 'openai/gpt-5.5'
  prompt: '你好',
});
console.log(text);

无论哪种情况,你都没有动过应用逻辑的一行代码。这就是网关/抽象带来的效果。回退与缓存是在此之上通过配置追加的(想知道确切语法,各厂商文档是最快的路径)。

7. 如何选择

选择的标准不是"哪个最好",而是哪个契合你的约束。按下面的顺序套用,你就很少会卡住。

先跑起来 / 个人、PoC、小团队OpenRouter。一把密钥、零运维,把各厂商的模型都试个遍。把 5.5% 的手续费当作"不用自己运维"的代价。

用 TypeScript / Next.js 构建Vercel AI SDK。从代码层做类型安全的抽象,还附带一整套流式 UI 套件。具体实现请前往完全指南

不想让数据外流 / 需要全组织范围的治理 → 自托管 LiteLLM(或 Portkey 开源版)。把虚拟密钥发给各团队,把成本与日志握在一处。

已经建在 Cloudflare 上Cloudflare AI Gateway:把你现有的调用改道经过它,加上缓存与可观测性。

在实践中,组合用法很常见。例如"用 Vercel AI SDK 写应用,但把它的后门指向一个 LiteLLM 代理,以集中管理全公司的成本与密钥",这是一种双层配置——正因为 SDK 型与代理型是两个分开的层,它才行得通。作为对依赖风险的保险,把一个本地 LLM 塞进来作为回退目标之一,也正在成为标配。

8. 注意事项与局限——并非免费

网关很方便,但由于它加了一层,总是有代价的。在采用之前,把下面这四点考虑进去。

⏱️ 一跳延迟

中间多了一个中转,延迟会略微上升。托管型尤其会感受到地理距离。缓存往往能抵消一部分,但对于超低延迟的场景,请实测。

🎯 新增的单点故障

你对提供商故障变得有韧性了,但如果网关本身宕机,一切都会跟着挂。要内建冗余、健康检查,以及一条直连的逃生通道。

💸 费用与运维成本

托管型会加一笔手续费(OpenRouter 是充值的 5.5%);自托管则增加服务器运维成本。盈亏平衡点随规模而移动。

🧩 功能损失

收敛到兼容 OpenAI 的最大公约数,意味着各厂商的独有功能(扩展思考、特殊工具格式)可能透传不了,或者到得晚。

还有一点常被忽视:隐私。经由托管网关路由,意味着你的提示词和响应会经过第三方的基础设施。如果你处理敏感数据,请核查中间方的数据处理政策,或者干脆一开始就用自托管型(如 LiteLLM)把提示词留在内部。在组织内做生产部署时,把网关自身的密钥与日志也当作最小权限与隔离的对象——这才是稳妥的一侧。

总结

  • LLM 网关是应用与各提供商之间的中转层。它让你通过一个 API 触达所有模型。
  • 它承担六项杂活:统一 API、回退、成本追踪、缓存、限流、可观测性
  • 共有三种类型——① 自托管(LiteLLM)/ ② 托管(OpenRouter)/ ③ SDK(Vercel AI SDK)。按约束来选。
  • 怎么选:即刻上手 = OpenRouter / TS 构建 = Vercel AI SDK / 治理 = LiteLLM。组合使用很常见。
  • 别忘了代价:一跳延迟、网关自身的故障点、费用、功能损失、隐私
  • 回退不会因为配好了就能用——真正触发它,验证你的提示词不会崩。

如果你在跟多个模型打交道,网关正在从"锦上添花"变成把管道收拢到一处的基础装备。先从用 OpenRouter 换掉 base_url,或用 Vercel AI SDK 改一个模型字符串开始——这一小步就能瓦解对单一厂商的锁定,让对比和回退一下子变得现实起来。要获取确切、最新的规格,请对照各厂商的原始来源确认(LiteLLM / OpenRouter / AI SDK)。

常见问题

Q. LLM 网关和 LLM 代理是不同的东西吗?

A. 两者几乎可以互换使用。它们都指站在你的应用与各提供商之间的中转层。硬要区分的话,"代理"更偏向机制(中转流量),而"网关"更偏向角色(包含成本管理与治理)。

Q. OpenRouter 号称"不加价",为什么最后反而可能更贵?

A. 按 token 的推理费率是各提供商公布的价格(不加价),但据官方站点,充值时有 5.5% 的平台手续费。充值金额越小,这一份额咬得越狠,所以把有效成本估算为"模型价格 + 百分之几"。请到 openrouter.ai/pricing 确认最新情况。

Q. Vercel AI SDK 和 LiteLLM——我该用哪个?

A. 它们是不同的层,所以并不冲突。Vercel AI SDK 是代码内抽象(面向 TS/JS)LiteLLM 是独立进程的代理(与语言无关、面向治理)。用前者快速构建 TS 应用;用后者把全公司的成本、密钥与日志握在一处。两者叠用很常见。

Q. 加了网关会变慢吗?

A. 多加一个中转确实会增加一点延迟。但在缓存生效的地方,往往反而更快。如果超低延迟是硬性要求,就把自托管型部署在近处、依赖缓存,并为关键路径保留一条直连逃生通道,把影响控制住。

Q. 即便只用一家提供商,也需要网关吗?

A. 不是必需。但仅仅是成本可见性、通过虚拟密钥做访问控制、缓存、可观测性这几点,往往也有价值。如果你以后可能加模型、或者跨团队使用,早点把它塞进来会让迁移更轻松。