当前位置: 首页 > news >正文

不想数据过第三方服务器?本地开源 AI 网关 OmniRoute,自动调度大模型API

如果你同时用 Claude Code、Cursor 和 Copilot,你可能已经习惯了每隔几天切换 API 配置的琐碎流程。一个用完了切另一个,一个挂了切第三个。然后月底收到账单,发现三分之一的花费是配额过期浪费的。

OmniRoute 做的事情就是把这种痛苦一次性解决掉。

它在本机跑一个代理,对外暴露一个http://localhost:20128/v1的 OpenAI 兼容端点,背后聚合了 231+ 个 LLM 提供商。你的 Claude Code 指向这个地址,Copilot 也指向这个地址,所有编码工具共享一套路由和回退策略。哪个提供商的配额用完了,它自动切到下一个;哪个模型太贵了,它自动切到便宜的同类;API 挂了,它在毫秒级时间内换到备用线路。整个过程对你是透明的。

它的核心机制叫combo——你可以把它理解为一个有优先级的模型队列。比如设一个 “永远在线” 的 combo:先烧 Claude Code Pro 的订阅配额,用完切到 Codex 的订阅,再切到 GLM-5 的廉价 API($0.5/百万 token),最后落到 Kiro 的免费 Claude 接口。四层回退,零停机。OmniRoute 提供了 17 种路由策略:优先级、加权轮询、成本优化、上下文接力、融合(并行调用多个模型再由评委模型合成结果)、配额感知等,基本覆盖了你能想到的所有路由场景。

但这个项目的真正杀器不是路由,是压缩。

RTK + Caveman 双层压缩能把 token 消耗砍掉 15% 到 95%。

原理是这样的:编码工具产生的上下文——git diff、grep 结果、构建日志——里面充斥着大量重复和冗余信息。RTK(Rust Token Killer,一个独立开源项目)专门压缩命令行输出,识别同构 JSON 数组、重复行、固定格式日志,用标记替代完整内容。Caveman(一个病毒式项目,口号是 “why use many token when few token do trick”)则用 30 多条语言规则压缩自然语言输出——保留技术实质、删除填充词。

两者堆叠使用(Stacked 模式),效果可以叠加到 78% 到 95%。代码块、URL、JSON 等结构化数据永远不被压缩,保证代码生成的准确性不受影响。OmniRoute 还提供了 9 个可组合的压缩引擎:Session-Dedup(跨轮去重)、CCR(大块归档)、headroom(同构数组压缩)、LLMLingua-2(MobileBERT ONNX 语义剪枝,代码安全)、Lite(空白符和图片 URL 裁剪)、Aggressive(摘要+老化)、Ultra(启发式+可选 SLM 小模型二次压缩)。

安装使用
只需npm install -g omniroute,浏览器打开http://localhost:20128进入仪表板,连接一个免费提供商——比如 Kiro AI(免费 Claude,约 50 个信用点/月/账号)或 Qoder(免费 Kimi-K2 和 DeepSeek,无限制)。然后在 Claude Code 或 Cursor 里把 API base URL 设成http://localhost:20128/v1,Model 填auto——自动路由模式会根据你连接的所有提供商,实时计算 9 个维度的评分(健康度、配额、成本、延迟、成功率、新鲜度等),选出当前最优模型。

有意思的是 OmniRoute 对"免费"的定义很诚实。它的免费额度仪表板不会把每个提供商的速率上限简单相加——那是竞品常用的虚标套路。它按池去重:同一个免费池只算一次,速率限制天花板不算入总额。首页写着 “约 1.6B 免费 token/月”,并注明了计算方法论的独立文档链接。50 多个免费层提供商中,有 11 个是永久免费、无 token 上限的——包括 Qoder(Kimi、Qwen、DeepSeek)、Pollinations(GPT-5、Claude、Gemini,无需 API Key)、Cloudflare AI(50+ 模型,1 万神经元/天)、LongCat(1000 万一次性 token)等。

和同类项目比,OmniRoute 目前是市面上体量最大的开源 AI 网关。

最直接的竞品是 LiteLLM(BerriAI/litellm,50.8k Star),定位相似但不是网关而是 SDK——需要你在代码里集成,不提供一个透明的 HTTP 代理层。另一个是 OpenRouter,这是一个商业服务而非开源项目,路由能力优秀但数据要经过他们的服务器。OmniRoute 选择了第三条路:本机代理,数据不过第三方,全部 MIT 开源。从提供商数量看,OmniRoute 的 236 个远超 LiteLLM 和 Portkey 等竞品的几十到上百个;从路由策略看,17 种策略对 1-3 种;从压缩能力看,OmniRoute 是唯一内置 token 压缩引擎的网关。

技术栈是 TypeScript 6.0 + Node.js 22.x/24.x + Next.js 16 + React 19 + Tailwind CSS 4 + SQLite(better-sqlite3)。14,965 个测试用例分布在 517 个文件中,CI/CD 检查项 103 个——CodeQL、Semgrep、8 路单元测试分片、覆盖率、Node 24/26 兼容性、9 路端到端测试、集成测试、Electron 烟雾测试。这不是一个人的车库项目,而是一个有社区治理规范的生产级工具。

MCP 和 A2A 支持是另一个亮点。OmniRoute 内置 MCP Server 暴露 87 个工具、3 种传输方式(stdio/HTTP/SSE)、30 个权限作用域,Claude Desktop 或任何 MCP 客户端可以直接控制整个网关——路由、提供商、combo、缓存、压缩、内存。A2A(Agent-to-Agent)协议用 JSON-RPC 2.0 + SSE 实现,6 个技能包让 Agent 之间可以互相调用 OmniRoute 的能力。这意味着你可以让一个编码 Agent 自动管理自己的模型路由,不需要人工干预。

部署方式也相当灵活。除了全局 npm 安装,还有 Docker 镜像(AMD64 + ARM64)、Electron 桌面应用(Windows/macOS/Linux + 系统托盘)、pnpm、Arch Linux AUR、Nix Flakes、Podman、PWA,甚至可以通过 Termux 在 Android 手机上跑。远程模式支持从笔记本驱动 VPS 上的 OmniRoute 实例,访问令牌可以限定 read/write/admin 三种作用域。

这个项目最让人意外的地方是免费额度能堆到什么程度。

把 11 个永久免费提供商叠在一个 combo 里,配合 aggressive 压缩模式(约 50% 节省)和自动故障转移,实际可用的免费 token 远超市面上任何一个单项免费服务。一个重度编码用户(日均 200-300 次 LLM 调用)用这套配置,月度模型成本可以压到接近零。当然,前提是你愿意花时间管理多个免费账号——OmniRoute 只是把这件事从"每天手动切换"变成"一次配置,永远不用管"。

踩坑方面,有几个点需要提前了解。Docker 部署时 SQLite 的 WAL 模式在docker stop时需要 40 秒的--stop-timeout来保证数据一致性,否则可能损坏数据库。Node.js 版本必须严格在 22.0-22.x 或 24.0-26.x 区间,23.x 和 27.x 会有运行时问题。Kiro 的免费配额是约 50 个信用点/月/账号而非真正无限,高频使用需要多账号轮换。压缩引擎中的 LLMLingua-2 依赖 ONNX 运行时,Docker 基础镜像需要额外安装依赖。

适合用 OmniRoute 的人:同时使用多个 AI 编码工具的开发者、想最大化免费额度的学生或个人开发者、需要统一管理团队 AI 配额的小型团队、在 AI 服务受限地区需要代理和反检测的网络受限用户。
不适合的人:只用 Claude Code 一个工具的轻度用户(OmniRoute 的配置成本高于收益)、对延迟极其敏感的实时交互场景(多一跳代理必然增加 50-200ms)、偏好 SaaS 托管方案的企业用户(OmniRoute 需要自己运维)。

项目当前处于活跃迭代中,截止 2026 年 7 月 2 日已发布 v3.8.42,累计 4,536 次提交。README 提供 41 个语种的翻译版本,包括简体中文和繁体中文——文档完善度在同类项目中属于头部水平。

项目地址:https://github.com/diegosouzapw/OmniRoute 竞品参考: LiteLLM:https://github.com/BerriAI/litellm(50.8k Star,LLM SDK/代理,非透明网关) OpenRouter:https://openrouter.ai(商业服务,非开源,路由能力强但数据经第三方) Portkey:https://github.com/Portkey-AI/gateway(开源 AI 网关,功能集小于 OmniRoute)
http://www.jsqmd.com/news/1108764/

相关文章:

  • Wand-Enhancer终极指南:如何免费解锁WeMod完整功能的5大技巧
  • 题解:洛谷 B4500 [GESP202603 三级] 凯撒密码
  • 儿童近视防控眼科机构咋选择
  • 2026超一线城市小程序开发公司深度评测:定制开发、交付能力与企业口碑全景解析,含零代码SAAS、AI编程、源码定制
  • 5大核心优化技巧:让老旧Android电视流畅播放高清直播的终极方案
  • 从Kali工具使用到EXP开发:安全测试源码分析与实战指南
  • 6款实用AI降重软件推荐,合规改写不踩学术红线
  • 被问到为何中间有一段长达半年的求职空窗期?留学生用积极事实消除疑虑「蒸汽求职分享」
  • 腾讯会议多端接入音视频稳定技术方案
  • 修复WSL2的PATH变量:解决交叉编译RK3506环境问题的首选方案
  • ICM-42688-P与PIC18F2680在运动控制与传感融合中的应用
  • 如何使用C++标准输入流cin读取字符串?
  • 【Vibe Coding从入门到精通】第13篇:团队协作中的Vibe Coding——从个人利器到团队武器
  • 构建小程序全自动安全审计体系:从原理到实践
  • 为什么机电维修师傅都在换 18KV 塑钢头绝缘鞋?轻便防护两不误
  • 2026年中盘点:什么八字排盘软件好用?第三方测评拆到排盘底层
  • OpenCore Legacy Patcher:让旧Mac重获新生,体验最新macOS的终极指南
  • CRM系统通俗讲解,一文理清客户管理工具全部知识
  • 惠普tank1005,tank2606,tank2604,tank1020开机报错ER08闪黄灯,加了2包粉问题没有修好,最终解决方法是通过er08清除软件修好 ,几分钟就自己修好了,省480元维修费
  • 类脑AI落地实战:从脉冲神经网络到工业故障预测
  • FOC无刷电机控制方案:高精度与高效率的实现
  • 适配2-5串锂电!XSP30升降压快充芯片功能与布线解析
  • 2026年第三届“聚合獬豸杯”全国电子数据取证大赛(计算机部分)详细版Wireup
  • 网络流量安全测试实战:从漏洞扫描到渗透测试的纵深防御策略
  • FBA退货换标海外仓系统哪个靠谱?易境通WMS逆向物流解决方案
  • 2026年主流AI API接口平台横评:价格、延迟、模型覆盖对比
  • MediaPipe TouchDesigner插件深度解析:GPU加速实时机器学习视觉处理架构设计
  • STM32与PCF8591的I2C通信与数据采集设计
  • 构建泰拉瑞亚模组生态:tModLoader深度开发指南
  • YOLOv10模型改进-Backbone改进-第58篇:YOLOv10改进策略【Backbone】| MobileNetV3 Backbone替换