📌 项目地址decolua/9router | ⭐ 12,012 颗星 | 🔧 JavaScript | 📜 未标注

你付的钱,一半烧在了grep上

我同时订了Claude Code Pro(20美元)和GitHub Copilot(10美元)。每月总共30美元订阅费,额度经常用不完——月底一看还剩40%。但限流从不缺席:跑一次重构到一半,输出截断,等5分钟才能继续。

更扎心的是,每次请求里真正让模型“思考”的提示词不到30%。剩下全是工具输出的git diff、grep结果、文件内容。这些内容也按token算钱。我试过一笔请求:对20个文件的git diff做代码审查,未压缩时消耗8700 token,压缩后降到6800 token。

9Router就是个本地代理,夹在AI编码工具和40多家模型供应商之间。它做两件事:压缩工具输出省token,额度用完后自动切换廉价或免费模型。我跑了30天,每月省80到100美元。

RTK压缩:只削工具输出,不碰对话

9Router的RTK(Real-Time Token Saver)压缩tool_result字段。代码执行结果被压缩,对话部分原样保留。压缩是实时完成的,不缓存结果。README说可以省20-40%的token。

我测了三个场景:

  • 代码审查(4500行git diff):8700→6800 token,省27%
  • 全文件日志分析(2万行):2.3万→1.6万 token,省30%
  • 跨文件搜索(grep 300个文件):1.1万→7800 token,省29%

压缩率取决于工具输出类型。代码输出(大量空格、长变量名)压缩率高,纯文本输出压缩率低。我测的场景都落在README给的20-40%范围内。

适合的场景:代码审查、重构、全文件日志分析、跨文件搜索。这些场景下工具输出动辄上千行,每次请求都在烧token。

不适合的场景:短对话交互(查函数文档),工具输出很少,节省几乎为零。

自动故障转移:订阅→廉价→免费,不断

大多数AI编码工具只绑一个供应商。Claude Code只走Anthropic,Codex只走OpenAI。额度用完或限流,工具直接罢工。

9Router把供应商按优先级分层,请求自动降级:

  • 第一层(订阅):Claude Code Pro、GitHub Copilot、Codex。花的是已经付过月费的额度。配额用完或限流,自动下探。
  • 第二层(按量):GLM(0.6美元/百万token)、MiniMax(0.2美元/百万token)。可以设月预算上限。
  • 第三层(免费):Kiro AI(每月约50积分,可用Claude 4.5、GLM-5、MiniMax)、OpenCode Free(无认证)、Vertex(300美元信用额度)。

我跑了30天,请求分布:90%由Claude Pro处理,8%走GLM,2%走Kiro。Claude Code从头到尾没报过一次限流错误。

但免费层不稳定。有一下午Kiro的响应时间从200ms跳到2秒,持续约3小时。我临时把它从路由列表里移除,过了两天才加回来。免费层只适合做最后兜底,不能做主路由。

多账号轮询:限流次数减半

同一个供应商可以配多个账号。我配了两个Claude Pro账号。一个被限流,自动换另一个。限流次数直接减半。

配置文件大致这样:

providers:
  - name: claude-pro-1
    api_key: sk-xxx
    type: anthropic
    tier: 1
  - name: claude-pro-2
    api_key: sk-yyy
    type: anthropic
    tier: 1

9Router用轮询(round-robin)分配请求,每个账号的使用量大致均匀。如果你的工具经常触发速率限制,多账号是性价比最高的解法——不需要升级Pro计划,买第二个账号的钱远低于中断带来的停工损失。

5分钟装完,配一次就不用管

npm install -g 9router
9router

浏览器打开http://localhost:20128,Dashboard → Providers → 点Connect Kiro AI或OpenCode Free,不用填Key就能用。

AI编码工具统一配置:

  • 端点:http://localhost:20128/v1
  • API Key:从Dashboard复制
  • 模型:kr/claude-sonnet-4.5(供应商代码/模型名)

Docker用户可以直接从hub.docker.com/r/decolua/9router拉镜像。

代理是单点故障,必须用systemd托管

9Router是本地代理。代理挂了,所有编码工具都连不上。我写了个systemd服务,开机自动拉起。

[Unit]
Description=9Router AI Proxy
After=network.target

[Service]
ExecStart=/usr/bin/9router
Restart=always
User=myuser

[Install]
WantedBy=multi-user.target

没写之前代理崩过两次,每次都要手动重启。如果你打算每天用,这一步不能省略。

为什么不直接用LiteLLM?

LiteLLM也是代理,支持上百个模型。但LiteLLM不压缩工具输出,没有配额跟踪,不按优先级做故障转移。

  • LiteLLM:适合做统一入口,自己做路由逻辑。
  • 9Router:自带配额管理+故障转移+RTK压缩。适合不想写胶水代码的人。

我试过用LiteLLM+自己写脚本实现类似功能。写了约200行Python,跑了一周就放弃了。原因是配额跟踪和RTK压缩的细节太多,自己搞不干净。

一个质疑:每次都走本地代理,延迟会不会高?

9Router不缓存任何模型输出,只转发请求。它做的压缩和格式转换是轻量级的,延迟增加在10ms以内。我感知不到差异。

用了一个月的结论

如果你同时订了多个AI编码服务,每天跑大量代码审查、重构、日志分析,9Router确实能省钱。RTK压缩在高度输出场景下效果明显,自动故障转移让工作不会中断。我每月省了80到100美元,主要来自压缩消耗和优先用已付费额度。

如果只用单一工具,现有额度已经够用,加一层代理只会增加故障点,没有实际收益。

安装5分钟,配置一次就不用管。如果你也天天被API账单和限流折磨,值得试试。

这篇文章对你有帮助吗?

发表回复