9Router 中文教程:先跑通一个 provider,再配置自动回退
9Router 是本地 AI 网关。编程客户端把 OpenAI 兼容请求发给本地 /v1,9Router 再做可选的工具输出压缩、格式转换、配额检查和 provider 路由。它适合把多个个人账号或 API key 收到一个端点里。
package.json 已是 0.5.85。安装包、主分支和 release notes 可能不同步,排错前先记录实际版本。1. 安装和启动
官方 GitBook 要求 Node.js 20 或更高版本。先确认端口没有被其他服务占用:
node --version
lsof -i :20128
npm install -g 9router
9router
当前根 README 指向 http://localhost:20128/dashboard,API 为 http://localhost:20128/v1。旧版 GitBook 仍写过 dashboard 3000,因此不要死记端口,以当前安装版本的启动输出为准。
2. 第一次只连接一个 provider
打开面板后先修改默认密码,只连接一个自己有权使用的 API key 或账号。复制面板生成的 API key,再把支持自定义 OpenAI endpoint 的客户端设置为:
Base URL: http://localhost:20128/v1
API Key: 从 Dashboard 复制
Model: 选择刚连接 provider 的实际模型
先请求模型列表,再发一个最小聊天请求。只有单 provider 稳定返回后,才值得继续排查 combo 和回退;否则很难判断错误来自客户端、路由还是上游。
3. Combo 与 RTK 怎么验证
Combo 可以按优先级排列订阅、低价和免费 provider,在配额耗尽或错误时继续下一项。建议用可识别的不同模型做短测试,记录每次实际命中的 provider,不要只看界面显示“已配置”。
RTK 会处理 git diff、grep、find、ls、tree 和日志等 tool_result。官方给出的 20% 到 40% 是项目方示例,不是保证。用同一个请求分别开启和关闭 RTK,对比输入 token、输出内容和丢失信息;单次可用 X-9Router-Token-Saver: off 绕过 token saver。
4. 和 LiteLLM 怎么选
相比 LiteLLM,9Router 更偏个人 AI 编程客户端,重点是订阅/免费 provider、combo、配额界面和 RTK。LiteLLM 官方定位同时覆盖 Python SDK 和团队网关,强调虚拟密钥、花费管理、guardrails 与负载均衡。个人本地路由可以先试 9Router;要做生产团队权限和审计,LiteLLM 的产品边界更接近需求。
5. 免费、数据与验证边界
“免费”来自各 provider 的免费层、试用额度或活动,不是 9Router 创造了无限资源。官方 FAQ 已记录免费服务会关停或改变。网关运行在本机,也不代表请求离线:提示、代码片段和工具输出仍会发给最终命中的上游 provider。
后续核查至少应保存 9router --version、启动日志、/v1/models 响应、实际 provider 命中记录和 RTK 开关对照。升级可按官方文档使用 npm update -g 9router,但先备份 ~/.9router。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
近期变化与关注原因
这些数值只用于排序,不是去重用户。官方项目把编程工具接入、多 provider fallback 和工具输出压缩放在一个本地界面里,正好对应频繁切换模型、配额和端点的使用痛点。
适合谁用
适合个人开发者在多个 API key、订阅账号和模型之间统一端点,并为非关键开发任务设置明确的回退链。需要团队级虚拟密钥、细粒度授权、审计和生产网关治理时,应优先评估专门的团队网关。
采用建议
9Router 适合愿意自行管理上游账号、额度和数据边界的个人开发者。先用一个低风险 provider 验证 /v1、模型列表和回退,再决定是否接入订阅账号;不要把项目方的免费与压缩宣传当成稳定配额或本机实测。
原教程未展开的系统信息
核心功能
组合与自动回退
可以把订阅、低价和免费 provider 排成 combo,在配额耗尽或请求错误时切到下一项,并支持同一 provider 的多账号。
格式转换与用量界面
官方列出 OpenAI、Claude、Gemini、Cursor、Kiro、Vertex、Antigravity、Ollama 与 Responses 等格式转换,并在面板展示配额、token 和估算成本。
架构与数据流
请求从编程客户端进入本地 /v1,先经过可选 token saver,再做协议转换、配额检查和 combo 路由,最后发往所选上游 provider。仓库主应用是 Next.js/React 与自定义 Node 服务,package.json 当前包含 Express、sql.js、http-proxy-middleware、jose 和 undici;状态默认放在 ~/.9router。
技术栈和运行条件
语言
JavaScript / Node.js
框架
Next.js 16、React 19、自定义 Node/Express 服务
关键依赖
- sql.js
- http-proxy-middleware
- jose
- undici
- zustand
运行环境
Node.js 20+;npm 全局包或从源码/Docker 本地运行;默认数据目录 ~/.9router
常见问题
9Router 当前默认使用哪些地址?
当前根 README 写的是控制面板 http://localhost:20128/dashboard,OpenAI 兼容 API 是 http://localhost:20128/v1。旧 GitBook 仍出现 3000 端口,遇到不一致时以已安装版本的启动输出为准。
9Router 所说的免费模型真的是无限量吗?
不是。官方 FAQ 写明 Kiro、OpenCode Free 和 Vertex 都受额度、试用期或模型活动影响,列表可以随时变化;自动回退不能把有限额度变成永久无限。
Dashboard 显示的 cost 是 9Router 账单吗?
不是。官方说明该数字是按付费 API 价格估算的对比值;9Router 不收这笔钱,但你仍可能向所选 provider 支付订阅或 API 费用。
9Router 的 RTK 节省 20% 到 40% token 是保证吗?
不是保证,这是项目 README 给出的示例范围。实际结果取决于 tool_result 类型和任务,应该对同一请求分别开启和关闭 RTK 后比较。