decolua/9router免费AI coding工具配置
# 9router配置踩坑全记录:我是如何在Claude Code和Cline之间打通免费AI的
问题背景:为什么我需要9router
在配置完DeepSeek-TUI和LM Studio之后,我想把多个AI coding工具连接到一个统一的代理层——9router声称能让Claude Code、Cline、Cursor同时使用免费的Claude/GPT/Gemini提供商。
我的目标很简单:不花钱,用Claude Code写代码,同时连到免费后端。
实际花了我整整一天。
---
坑1:SSH密钥配置——连接被拒绝的100种方式
9router官方文档说支持SSH方式安装:
/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
但我用的是HTTPS clone方式,文档提到:
如果遇到SSH错误,是因为marketplace通过SSH克隆仓库。如果没有配置GitHub SSH密钥,改用完整HTTPS URL强制克隆:
> `bash
/plugin marketplace add https://github.com/decolua/9router.git
/plugin install agent-skills@decolua-9router
> `
我的实际错误信息:
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
解决步骤:
1. 检查你有没有SSH公钥:cat ~/.ssh/id_rsa.pub(没有就ssh-keygen -t rsa -C "your@email")
2. 把公钥添加到GitHub Settings → SSH Keys
3. 或者直接用HTTPS方式:git clone https://github.com/decolua/9router.git
如果你用的是公司网络,SSH可能还被防火墙阻断——这时候HTTPS是唯一选择。
---
坑2:Provider配置顺序——auto-fallback不生效
9router的核心卖点是auto-fallback:当一个provider超限或失败,自动切换到下一个。
我的.9router.yaml初始配置:
providers:
- name: anthropic
type: claude
api_key: ${ANTHROPIC_API_KEY}
priority: 1
- name: openai
type: gpt
api_key: ${OPENAI_API_KEY}
priority: 2
理论上应该先试Anthropic,失败后自动fallback到OpenAI。
**实际情况:** 两个都失败了,报错是RTK -40% tokens。
查了文档才发现——RTK是9router的Token压缩功能,需要先在config里启用:
features:
rtk_compression:
enabled: true
reduction_target: 0.4 # 目标减少40% tokens
没有这个配置,auto-fallback会以"provider配置不完整"为由跳过所有请求。
---
坑3:环境变量加载——${VAR}语法不被读取
我在.9router.yaml中写了很多环境变量引用:
providers:
- name: anthropic
api_key: ${ANTHROPIC_API_KEY}
然后我运行:
export ANTHROPIC_API_KEY=sk-ant-xxxxx
9router start
结果报错:api_key is required, got undefined。
问题根源: 9router默认不读取shell环境变量,需要显式启用:
env:
load_from_shell: true
variables:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
或者在启动命令中注入:
ANTHROPIC_API_KEY=sk-ant-xxxxx 9router start --env-file .env
.env文件格式:
ANTHROPIC_API_KEY=sk-ant-xxxxx
OPENAI_API_KEY=sk-xxxxx
---
坑4:Claude Code的Claude.ai会话与9router冲突
这是最坑的一个。
我本地已经登录了Claude Code(claude login),同时我也想让9router处理所有请求。
问题是:**Claude Code默认走的是api.anthropic.com,9router默认也是**。两者同时跑,会出现:
Error: 429 Too Many Requests
Rate limit exceeded for Claude API
原因:你的Claude Code活跃会话和9router的请求共享同一个API额度。
解决方式:
方案A:给Claude Code设置不同的API端点(在~/.claude/settings.json中):
{
"env": {
"ANTHROPIC_API_BASE": "https://api.anthropic.com/v1"
}
}
方案B:在9router配置中设置请求队列,避免并发:
rate_limiting:
max_concurrent_requests: 2
retry_after_seconds: 30
---
坑5:Windows路径分隔符——.9router.yaml在哪?
我的开发机是Windows,9router文档说配置文件在~/.9router.yaml,但Windows上是C:\Users\username\.9router.yaml。
实际测试结果:
| 操作系统 | 配置文件路径 |
|---|---|
| macOS/Linux | `~/.9router.yaml` 或 `~/.config/9router/config.yaml` |
| Windows | `%USERPROFILE%\.9router.yaml` 或 `%APPDATA%\9router\config.yaml` |
Windows上可以用PowerShell检查:
echo $env:USERPROFILE
# 输出类似:C:\Users\YourName
# 配置文件应该在:C:\Users\YourName\.9router.yaml
如果找不到,用这个命令确认9router读取哪个路径:
9router config --show-path
---
完整配置模板
以下是我最终成功运行的配置:
# .9router.yaml
env:
load_from_shell: true
providers:
- name: anthropic-claude
type: anthropic
api_key: ${ANTHROPIC_API_KEY}
priority: 1
fallback:
- openai-gpt4
- google-gemini
- name: openai-gpt4
type: openai
api_key: ${OPENAI_API_KEY}
priority: 2
- name: google-gemini
type: gemini
api_key: ${GOOGLE_API_KEY}
priority: 3
features:
rtk_compression:
enabled: true
reduction_target: 0.4
auto_fallback:
enabled: true
max_retries: 3
retry_delay_ms: 2000
rate_limiting:
max_concurrent_requests: 2
requests_per_minute: 60
logging:
level: debug
file: ./9router.log
启动命令:
export ANTHROPIC_API_KEY=sk-ant-xxxxx
export OPENAI_API_KEY=sk-xxxxx
9router start --config ~/.9router.yaml
---
验证9router是否正常工作的测试命令
配置完成后,用这个命令验证所有providers是否可达:
9router health --all-providers
正常输出:
✓ anthropic-claude: OK (latency: 142ms)
✓ openai-gpt4: OK (latency: 89ms)
✓ google-gemini: OK (latency: 201ms)
如果某个provider显示FAILED,检查:
1. API Key是否正确加载(echo $ANTHROPIC_API_KEY)
2. 网络是否能访问该provider(curl -I https://api.anthropic.com)
3. 是否超限(429错误需要等待或切换provider)
---
总结:3个配置要点
1. **启用RTK压缩**:没有rtk_compression.enabled: true,auto-fallback不工作
2. **显式加载环境变量**:不写load_from_shell: true,${VAR}就是纯字符串
3. **Windows路径注意**:Windows用户用%USERPROFILE%\.9router.yaml,不是~/.9router.yaml
---
适合人群
✅ 适合:有多个AI coding工具(Claude Code/Cline/Cursor)想统一管理的开发者
✅ 适合:想节省API费用的个人开发者(auto-fallback + RTK压缩效果显著)
❌ 不适合:企业用户(有合规要求,不建议用免费provider处理公司代码)
❌ 不适合:需要高并发(>10 req/min)的团队(共享额度会快速超限)
---
👉 立即参与MiniMax:https://platform.minimaxi.com/subscribe/token-plan?code=E5yur9NOub&source=link
🔗 Related Tech Articles
Deep dive into related technical topics: