目录
你基于 OpenAI 的 API 把应用搭起来了。后来你想试试 Claude,也想比一比 Gemini。可每家提供商的 SDK、请求结构、错误行为都不一样。每换一次都得重写代码、转换响应、为每家厂商单独维护重试逻辑——不知不觉,"厂商专属的管道代码"已经渗透进应用的每一个角落。而当你被绑死在一家提供商上时,只要那家公司出故障、涨价或者停用某个模型,你的应用就会跟着一起挂掉。
接管这一切管道工作的,就是 LLM 网关(AI 网关),也叫 LLM 代理。它是一个中转层,位于你的应用和各家提供商之间,对外暴露一个统一 API(通常兼容 OpenAI),用它就能触达所有模型,并且把横切性的杂活都处理掉——回退、成本追踪、缓存、限流。本指南将讲清网关替你做了什么、自托管、托管、SDK 三种类型的区别、如何在 LiteLLM、OpenRouter 和 Vercel AI SDK 之间做选择,以及你必须了解、以免踩坑的局限。
30 秒速览
如果你只看一个框
注意:网关并非免费午餐。它会带来一跳延迟、费用,以及部分功能的损失(见 §8)。
1. 为什么你需要 LLM 网关
如果你只通过单一 SDK 调用单一提供商,那你不需要网关。而一旦你想使用不止一个模型,就需要它了。看看这三个经典的痛点。
每家提供商的 SDK、参数名、响应结构、错误码都不同。每换一次,都意味着重写你的应用。
完全依赖一家公司,它的故障或价格变动就会变成你的停机。你需要一条逃生通道(回退)。
最佳模型因任务而异。你想用便宜的模型起草、用聪明的模型润色——可管道代码却横在中间碍事。
它们的共性在于这样一种结构:SDK 的约束反过来决定了本质上属于战略层面的选择——用哪个模型。网关把这些管道从你的应用里剥离出来。你的应用只需知道一个端点;背后该调谁、失败时该切到谁、已经花了多少钱,都是网关的活。由于构建 AI 智能体或智能体框架几乎总是默认要用到多个模型,这种需求只会越来越大。
2. 什么是 LLM 网关
LLM 网关是一个位于你的应用与一个或多个 LLM 提供商之间的代理。大多数网关都对外暴露一个形似 OpenAI chat-completions 端点的统一 API,并在一处集中处理那些原本会散落在代码各处的横切工作——路由、重试与回退、缓存、限流、成本追踪、访问控制。
(兼容 OpenAI)
成本 / 缓存 / 管控
Google / 本地……
关键在于把窗口收成一扇。你的应用代码只需给 model 传一个字符串。写 anthropic/claude-opus-4.8 就得到 Claude;写 openai/gpt-5.5 就得到 GPT——应用里的其它一切都不用改。诸如"这个模型宕机时就切到另一个""同样的问题从缓存里返回"之类的决策,全都在网关一侧解决。想混入一个本地 LLM,做到"敏感数据留在本地、其余都发往云端",写法也是一样的。
3. 它替你处理什么
网关承担的横切工作大致可归为下面六类。工具各有所长,但方向是一致的。
用一种格式(通常兼容 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 上,它非常契合。
一个控制平面,为网关加上生产级的治理、护栏与提示词管理。官方站点称它通过一个 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 套餐 |
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. 不是必需。但仅仅是成本可见性、通过虚拟密钥做访问控制、缓存、可观测性这几点,往往也有价值。如果你以后可能加模型、或者跨团队使用,早点把它塞进来会让迁移更轻松。