首页
看点啥
插画图片
首页 看点啥 一个端点接 290 家 AI 服务商--我拆解了周增 7700 Star 的 OmniRoute

一个端点接 290 家 AI 服务商--我拆解了周增 7700 Star 的 OmniRoute

2026-08-04 0

最近在折腾 AI 编程工具链的时候,我遇到一个很烦的问题:Claude Code 用 Anthropic 的 key,Cursor 用 OpenAI 的 key,Aider 又接的 DeepSeek,每个工具一套配置,免费额度散落在各家手里根本用不顺。

然后我在 GitHub Trending 上看到 OmniRoute--MIT 协议,TypeScript 写的,号称一个端点对接 290 服务商、500 模型,还自带负载均衡和故障回退。周增 7700 Star,38k 总星。

花了一天半把文档和源码结构翻了一遍,这东西确实解决了我遇到的问题,但设计思路比我预期的要深。聊聊我的发现。

一、它到底干了什么事

一句话:把分散的 AI 服务商聚合成一个 OpenAI 兼容的本地端点。

你的编码工具(Claude Code、Cursor、Codex CLI 等)不再需要分别配置不同服务商的 API Key,全部指向 http://localhost:20128/v1 就行。

image.png

其中 90 家提供免费层级,40 家永久免费。文档里说聚合后大约有 15.3 亿免费 Token/月,仪表盘上实时显示剩余额度。

二、核心设计:Combo 路由系统

这是我最想聊的部分。OmniRoute 不只是个"转发袋里",它有一套叫 Combo 的模型链路由机制。

什么是 Combo

Combo 就是一条预配置的模型链。比如你配 Claude -> GPT-4o -> Gemini -> DeepSeek,当 Claude 配额用尽,自动切 GPT-4o;GPT-4o 挂了,切 Gemini--应用层完全无感知。

零配置的 auto 模式

如果你懒得配 Combo,直接把 model 设成 auto,OmniRoute 会从你连接的所有服务商里实时构建虚拟链。它有几种预设:

Model ID干什么
auto平衡模式,粘滞上次成功的服务商
auto/coding代码生成质量优先
auto/fast最低延迟优先
auto/cheap每 Token 最便宜优先
auto/offline优先选剩余配额最多的
auto/smart质量优先 10% 探索更好的模型

auto/smart 那个 10% 探索挺有意思--大部分请求走已知最好的模型,但留 10% 去试别的,万一发现更好的就自动切换。

12 因子评分

auto 模式的背后是一个 12 因子评分引擎。我根据文档和路由策略列表推断,这 12 个因子大致覆盖:健康度、剩余配额、成本、延迟、历史成功率、配额重置时间、上下文匹配度、新鲜度等维度。每个候选模型实时打分,选分最高的路由。

19 种路由策略

除了 auto,还有 18 种可以手动组合的策略。我挑几个实用的说:

image.png

实际用的时候,我最常用的是 fill-first(先把免费额度吃干净再切付费的)和 priority(配 fallback 链保高可用)。

三、三层弹性机制:请求不会断

这个设计我觉得是整个架构里最扎实的部分。OmniRoute 有三层独立的弹性保障:

image.png

第一层处理单次请求的临时故障(网络抖动、瞬时 429),第二层处理模型级别的持续故障(配额耗尽、服务商宕机),第三层处理多账号场景下的配额分配。

配额层的 Quota-Share 支持三种策略:

hard:超配额直接拒绝,严格但不灵活 soft:超了降优先级但不拒绝,平滑过渡 burst:允许借用空闲份额,最大化吞吐

我一般用 soft,既不会突然断流,也不会把某个 Key 榨干。

四、Token 压缩:省钱的关键武器

这是 OmniRoute 和其他网关拉开差距的地方。它在请求到达上游模型之前,先过一遍压缩流水线。

12 引擎流水线

不是简单截断,而是 12 个引擎按顺序处理:

实际效果

模式节省适用场景
Lite~15%永远开启的安全默认
Standard (Caveman)~30%日常编码
Aggressive~50%长工具密集会话
Ultra~75%最大节省
RTK60-90%Shell/测试/构建输出
RTK Caveman 叠加78-95%混合提示 工具日志

RTK 那个对命令输出的压缩效果最让我印象深刻。你跑个 npm install 出来几百行日志,RTK 能压到原来的 10-40%,而且关键信息不丢。这对用 AI 编程工具的人来说太实用了--工具调用的输出经常占掉大半上下文。

有个 inflation guard 机制防止过度压缩导致语义损失,这个设计很务实。

五、实际接入:三步搞定

第一步:安装启动

npm install -g omnirouteomniroute

默认监听 20128 端口,浏览器打开就是仪表盘。

第二步:连免费服务商

仪表盘 -> Providers 页面,点连接。我连了几个永久免费的:

服务商模型特点
Z.AI GLMGLM-4.7 / 4.5-Flash永久免费
SiliconFlowDeepSeek V3.2 / R1免费层级
Cloudflare AI50 模型10K neurons/day
CerebrasGLM 4.7, GPT-OSS1M tokens/day
PollinationsGPT, Llama, Claude无需密钥

连完之后仪表盘上会显示聚合后的免费 Token 总量。

第三步:指向编码工具

# Claude Codeexport ANTHROPIC_BASE_URL=http://localhost:20128/v1export ANTHROPIC_API_KEY=你的OmniRoute密钥# 或者一键配置omniroute setup-claudeomniroute setup-cursoromniroute setup-codex

所有工具指向同一个地址,model 填 auto 就行。

验证一下:

curl http://localhost:20128/v1/chat/completions -H "Content-Type: application/json" -d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'

响应头里有 X-OmniRoute-Decision,能看到这次请求实际路由到了哪个服务商、延迟多少、成本多少。这个透明度我非常喜欢。

六、协议支持:不只是 REST

除了 OpenAI 兼容的 REST API,OmniRoute 还支持:

MCP(stdio / HTTP / SSE)--104 个工具,31 个作用域,可以直接接 Claude Desktop、Cursor A2A(JSON-RPC 2.0 SSE)--Agent 间通信,6 个技能 WebSocket bridge(/v1/ws)--实时流式

接 Claude Code 的 MCP 非常简单:

claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream

七、我的判断

值得用的三个理由:

免费额度聚合确实解决了实际问题。以前 Gemini 的免费额度用不完,DeepSeek 的额度也用不完,但分散在各家 SDK 里很难统一调度。OmniRoute 把它们拢到一个池子里,fill-first 策略自动轮转,利用率高很多。

Token 压缩是实打实的成本节省。RTK 对工具输出的压缩效果太明显了,长会话场景下省的不只是钱,更是上下文窗口。

三层弹性让编码工作流不会因为某个服务商抽风就断了。这对依赖 AI 编程的开发者来说是刚需。

但也要说几个问题:

项目标注 prototype 成熟度,版本迭代很快(v3.8.49),API 可能有变动 压缩的 aggressive 模式对代码生成质量有明显影响,建议编码场景用 conservative Fusion 策略(多模型并发 判官合成)成本会翻几倍,慎用 需要常驻一个本地服务,对环境有一定要求 290 家服务商里有不少是"薅羊毛"性质的免费资源,稳定性参差不齐

结语

OmniRoute 的核心洞察是:AI 服务商太多太碎,开发者不该为每个工具单独管理一套配置。 它用一个本地网关 智能路由 压缩省钱的组合拳把这件事做透了。

如果你同时在用多个 AI 编程工具、对成本敏感、又不想被单一服务商锁定,值得试试。

喜欢(0)

上一篇

大刀客三大职业详细说明 大刀客三大职业强度与玩法全面分析

大刀客三大职业详细说明 大刀客三大职业强度与玩法全面分析

下一篇

多台 ECS 流量分开计费太贵?试试阿里云CDT云数据传输统一流量计费,免费220GB流量

多台 ECS 流量分开计费太贵?试试阿里云CDT云数据传输统一流量计费,免费220GB流量
猜你喜欢