夜雨聆风 > > 办公文件 > 9Router:让你永不断码的 AI 工具路由器
当前时间: 2026-05-11 00:04:02
分类:办公文件
评论(0)
9Router:让你永不断码的 AI 工具路由器香草最近在折腾 Claude Code,有时候跑到一半额度突然没了,只能盯着屏幕发呆。朋友说,你去看看 9Router——然后香草看了,有点被震到了。这不是什么大模型,不是什么 Agent 框架,就是一个小小的"路由器",但它解决的问题,可能是每个每天跟 AI 编程工具打交道的人都踩过的坑。📦 9Router
GitHub:https://github.com/decolua/9router当前 Star 数:5.8k(2026年5月9日)🤔 这个项目解决了什么痛点?
一句话版本:你有 Claude Code 订阅,也有 Cursor,也有 Codex——但每个都有配额,跑到一半就给你停,然后你得手动去换,中断工作流。9Router 做的事情非常聪明:它在本地起一个代理服务(默认端口 20128),把你所有的 AI 编程工具统统接进来,然后按照你设定的优先级自动路由。订阅额度用完了,自动切到便宜的 API;连便宜的也不想花钱?最后兜底的是几个完全免费的 provider。这个三层兜底的逻辑,项目里叫做"Smart 3-Tier Fallback":订阅层(Claude Code Pro / Codex / GitHub Copilot)→ 便宜 API 层(GLM-4.7 每百万 token 0.6 美元,MiniMax 0.2 美元)→ 免费层(iFlow、Qwen、Kiro,无限量)你在 Claude Code 里填的不再是 Anthropic 的地址,而是 http://localhost:20128/v1,对工具来说感知不到任何变化,但背后的模型可能已经悄悄换过好几轮了。🧩 技术原理:一个聪明的翻译层
问题在于,Claude Code 用的是 Anthropic 的原生格式,Cursor 和 Codex 用的是 OpenAI 兼容格式,Gemini CLI 又是另一套——它们本来是不互通的。9Router 在中间做了一层实时翻译,无论你的工具向哪个方向发请求,它都能转成目标 provider 能理解的格式。用开发者的话说:"Your CLI tool sends OpenAI format → 9Router translates → Provider receives native format."配合这个翻译层的,是一套配额追踪机制。9Router 会实时记录你每个 provider 的 token 消耗、剩余额度和重置时间(Claude Code 的 5 小时滚动配额、Codex 的周度重置等等),在额度用完之前主动切换,不是报错之后才反应。这个配额感知能力其实很难得。大多数工具碰到 429 报错才知道该切换,9Router 是在快要满的时候就开始准备下一跳。🛠️ 它能接哪些工具和模型?
工具侧,9Router 支持的编程助手清单相当长:Claude Code、Cursor、Cline、GitHub Copilot、Codex、OpenClaw、Gemini CLI、RooCode、Continue……基本上主流的都在里面。模型侧,支持 60+ 家 provider、100+ 个模型。其中有几个值得重点说:免费且真·无限的:iFlow(8 个模型,包括 Kimi K2、DeepSeek R1、Qwen3 Coder)、Qwen(3 个模型)、Kiro(Claude Sonnet 4.5 免费!)超便宜的:GLM-4.7 每百万 token 0.6 美元,每天上午 10 点重置;MiniMax M2.1 每百万 token 0.2 美元,5 小时滚动重置。Gemini CLI 也接进来了:Google 给的免费额度是每月 18 万次调用,9Router 把它也纳入兜底层,省不少。根据项目 README 的测试数据,Dashboard 里有用户用 iFlow 生成了 4700 万 token,"预计花费"显示 290 美元——实际花费 0 美元。那个 290 是告诉你"如果你用 OpenAI 的 API 要花多少",是一个省钱量化器,不是账单。💡 香草洞察:这个项目卖的不是功能,是心态
市面上有很多 OpenAI 兼容代理,有些可以做负载均衡,有些可以做格式转换,9Router 自己也承认受到了一个叫 CLIProxyAPI 的 Go 语言实现的启发。但 9Router 做对了一件事:它的整个产品逻辑是以"续航"而不是"性能"为核心卖点的。"Never stop coding" 这个 tagline 说的不是你的代码会变好,而是你的工作流不会被打断。这个心理需求其实比"用更好的模型"更刚性——停下来的挫败感,要比跑慢了大得多。更有趣的是,9Router 附带的那个 Usage Analytics 功能,把"节省了多少美元"做成了一个看板。它在无形中强化了一个用户习惯:把每次调用都意识到成本,然后在免费额度里尽量多榨。这个设计思路值得细品——它把省钱这件事变成了一个游戏化指标。香草的小小感慨是:真正改变编程习惯的工具,不一定是最强的模型,而是能把最强的模型稳稳地塞进你的工作流、不让你分心的那一层。9Router 现在就在做这件事,朴实但有用。你有没有被 Claude Code 的 5 小时额度搞得焦虑过?参考来源
- 9Router GitHub 仓库:https://github.com/decolua/9router
- 9Router 官网:https://9router.com
- 9Router README 完整文档:https://github.com/decolua/9router/blob/master/README.md
- npm package 页面:https://www.npmjs.com/package/9router
- 9Router YouTube 教程:https://www.youtube.com/watch?v=raEyZPg5xE0
- OmniRoute(TypeScript 分叉版):https://github.com/diegosouzapw/OmniRoute
- iFlow 官网:https://iflow.ai
- Kiro(AWS Builder ID 免费 Claude):https://kiro.dev
- Qwen Code 免费访问:https://qwen.ai
- 9router 贡献者图谱:https://github.com/decolua/9router/graphs/contributors
- GitHub Trending 技术社区讨论:https://github.com/trending
- CLIProxyAPI(原始 Go 实现,启发 9Router):https://github.com/luohy15/CLIProxyAPI
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-05-12 04:14:26 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/595153.html
- 运行时间 : 0.103764s [ 吞吐率:9.64req/s ] 内存消耗:4,743.46kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=c743e9988e076abe9325b6c08fcfd11c
- CONNECT:[ UseTime:0.000594s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000834s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000324s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000285s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.000617s ]
- SELECT * FROM `set` [ RunTime:0.000202s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.000617s ]
- SELECT * FROM `article` WHERE `id` = 595153 LIMIT 1 [ RunTime:0.000911s ]
- UPDATE `article` SET `lasttime` = 1778530467 WHERE `id` = 595153 [ RunTime:0.003403s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000347s ]
- SELECT * FROM `article` WHERE `id` < 595153 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000519s ]
- SELECT * FROM `article` WHERE `id` > 595153 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000812s ]
- SELECT * FROM `article` WHERE `id` < 595153 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001203s ]
- SELECT * FROM `article` WHERE `id` < 595153 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001044s ]
- SELECT * FROM `article` WHERE `id` < 595153 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001297s ]
0.108306s