9router
40+ AI 提供商自动路由 + RTK 节省 40% token,Claude Code/Curs
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
40+ AI 提供商自动路由 + RTK 节省 40% token,Claude Code/Curs
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一个场景:深夜两点,你正在用 Claude Code 开发一个紧急功能,进度条刚刚跑起来,终端里突然跳出一行冰冷的文字:Rate limit exceeded. Please upgrade your plan.
那一刻的崩溃感,每个重度使用 AI 编程工具的开发者都不陌生。无论是 Claude Code、Cursor 还是 GitHub Copilot,API 限额始终是悬在开发者头上的一把剑。免费的额度用完了,要么付费,要么停手。
但如果有一个工具,能够让你在不同的 AI 提供商之间自动切换——当 Claude 限流了,无缝切换到 Gemini;当 Gemini 不可用了,切换到 DeepSeek;甚至可以把多个模型串成一个"流水线"一起用——而且全程只需要一个本地部署的网关,你会不会觉得"这也太香了"?
这正是 9Router 正在做的事。
2024 年到 2025 年,AI 编程工具呈现爆发式增长。Anthropic 推出 Claude Code,OpenAI 有 Codex CLI,Google 有 Gemini Code Assist,Cursor 和 Cline 百花齐放,国内也有 Qwen 和 DeepSeek 的编程模型跟进。开发者手里的 AI 工具越来越多,但每个工具都要单独配置 API Key、管理用量、应对各自的限流策略——这本身就是一种认知负担。
9Router 的作者(GitHub 用户 decolua)敏锐地捕捉到了这个痛点,提出了一个优雅的解法:与其管理 N 把钥匙,不如装一个万能锁。
本质上,9Router 是一个本地 AI 网关,它对外暴露一个标准的 OpenAI 兼容 API 端点(/v1/*),而在内部连接 40+ 不同的 AI 提供商(OpenAI、Claude、Gemini、DeepSeek、Qwen 等)。开发者只需要把自己的 AI 编程工具配置成使用这个本地网关,剩余的事情全部交给 9Router 处理。
这个思路在技术圈有一个更通用的名字:AI Gateway(AI 网关),是 2025 年 AI Infra 领域最热门的方向之一。9Router 在这个赛道上以"免费 + 本地 + 全家桶式覆盖"著称,在 GitHub 上迅速积累了 14,000+ stars。
可以把 9Router 想象成一个快递中转站:
对于开发者来说,你只需要把 API 地址改成 http://localhost:20128,剩下的全部自动化。
9Router 支持的主流 AI 提供商包括:
这是 9Router 最核心的能力。当你配置了一个"模型序列"(Combo)时,系统会按顺序依次尝试每个模型:
Claude 3.5 Sonnet → GPT-4o → Gemini 1.5 Pro → DeepSeek V3
如果第一个模型返回速率限制或错误,自动切换到第二个,以此类推,对调用方完全透明。
9Router 内置了 token 压缩功能,可以在请求和响应的处理过程中减少约 20-40% 的 token 消耗。这对于日调用量大的团队来说,直接反映在账单上。
除了模型级别的切换,9Router 还支持同一个提供商下的多账号切换。比如你有三个 Claude 账号,可以配置成轮流使用,分散限额压力。
9Router 提供了一个基于 Next.js 的可视化 Web 管理界面,支持:
内置 Cloudflare Tunnel 和 Tailscale 支持,可以将本地部署的 9Router 暴露到公网,供多设备同步使用(类似 9Router.com 云服务的本地替代)。
根据项目架构文档,9Router 的核心架构如下:
前端层:Next.js 应用,包含两个主要部分:
/(dashboard):登录后的管理控制台/(landing):对外的着陆页API 层:Next.js App Router 的 src/app/api/* 路由,同时处理:
/api/*):Key 配置、用量查询、设置管理等/v1/*):标准的 OpenAI 兼容接口,供外部工具调用核心路由层:src/sse/* + open-sse/* 是 SSE(Server-Sent Events)流式处理的核心,负责:
认证层:src/lib/auth/ 包含 OAuth 2.0 / OIDC 支持,支持 PKCE 流程的安全授权。
网络代理层:src/lib/network/ 实现了出站代理逻辑,支持 SOCKS5 代理,用于在特定网络环境下连接 AI 提供商。
持久化层:使用 SQLite 作为本地数据库(支持 sql.js、better-sqlite3、Bun 原生 SQLite),存储:
隧道层:src/lib/tunnel/ 支持 Cloudflare Tunnel 和 Tailscale,将本地服务暴露到公网。
| 层级 | 技术 |
|---|---|
| 框架 | Next.js 15 (App Router) |
| 语言 | JavaScript / TypeScript |
| 数据库 | SQLite(多适配器支持) |
| 认证 | JWT + OAuth 2.0 + PKCE |
| 代理 | HTTP Proxy Middleware / SOCKS |
| 流式处理 | SSE(Server-Sent Events) |
| UI | React + TailwindCSS + Monaco Editor + Recharts |
| 包管理 | npm |
整体代码质量中上:
eslint.config.mjs)docs/ARCHITECTURE.md)tester/)存在,但测试覆盖情况需进一步评估对于 AI 爱好者:门槛相对较高,需要理解 API、代理、科学上网等概念,建议有一定编程经验的用户使用。
对于 AI 开发者:门槛友好,Docker 一键部署,有详细的文档和中文 README(README.zh-CN.md),配置文件有注释说明。
9Router 本质上是一个代理网关,它能解决 AI 提供商的选择问题,但解决不了网络可达性问题。国内用户仍然需要稳定的代理出口才能访问 OpenAI、Anthropic 等服务。
项目需要存储 API Key,虽然使用了 bcryptjs 加密和 confbox 安全配置管理,但在生产环境中暴露端口仍然存在安全风险。建议配合内网或 VPN 使用。
当前架构以 Node.js 单体进程为主,没有 Kubernetes 部署支持。对于大规模团队使用,水平扩展能力有限。
项目更新频率较高(版本 0.4.x),但由于是个人维护,长期可持续性存在一定不确定性。
9Router 的出现代表了 AI 开发者工具领域的一个趋势:工具聚合层正在兴起。随着 AI 提供商越来越多,开发者越来越需要一个中间层来统一管理、监控和优化 AI 调用。类似的趋势在传统软件领域早有先例——API Gateway(Kong、Ambassador)、消息队列(Kafka、RabbitMQ)都是解决"连接众多服务"问题的中间件。
9Router 的差异化在于:
未来,随着更多 AI 提供商的出现(国内大模型出海、垂直领域模型),类似 9Router 的聚合网关需求会持续增长。
9Router 是一个面向开发者的高级 AI 网关工具,通过统一路由、自动切换和用量追踪,让开发者能够更自由、更经济地使用各种 AI 编程工具。如果你受够了 API 限额的困扰,又想在一个地方管理所有 AI 能力,9Router 值得一试。
一句话评价:给 AI 编程工具装上"万能插座",让免费 AI 模型永不间断。