内容
# 模型路由
将每个任务路由到**仍然正确且最便宜的Claude模型** — 与始终使用顶级模型相比,可节省约60%的成本。

**它解决的问题:** 最便宜的模型不一定是**最便宜的答案**。如果一个任务过于复杂,使用低级别模型会失败,需要重试更高级的模型,这样会支付两次费用。这个路由选择正确的层级,并自动升级如果它出错。
- ✅ 在保留测试集上的路由准确率为100%
- ✅ 比始终使用顶级模型便宜约60%
- ✅ 纯Python,使用标准库 — 无需额外安装
---
## 要求
- Python 3.9+
- *(可选)* `claude` 命令行工具 — 允许安装程序自动注册MCP服务器
## 安装
```bash
git clone https://github.com/manishk753/claude-model-router.git
cd claude-model-router
./install.sh
```
安装Claude Code技能,注册MCP服务器(如果`claude`在您的PATH中),并运行一个测试。重新运行是安全的。**重启Claude Code后,工具将加载。**
只安装一部分?
| 命令 | 安装内容 |
|---|---|
| `./install.sh` | 技能 + MCP服务器(所有项目) |
| `./install.sh --skill` | 技能仅 |
| `./install.sh --mcp-user` | MCP服务器仅(所有项目) |
| `./install.sh --mcp` | MCP服务器仅(此项目) |
| `./install.sh --help` | 显示帮助 |
## 使用方法
从仓库目录运行以下示例。
### 1. 命令行
```bash
python3 -m router "调试我们的异步作业队列中的竞争条件"
```
返回JSON:`model`、`tier`、`complexity`、`confidence`、`rationale`、`escalate_to`。
对于高风险工作,强制使用顶级层级:
```bash
python3 -m router "删除生产环境中的不活跃用户" --context '{"critical": true}'
```
### 2. Claude Code(技能)
输入 `/model-router <任务>`。Claude路由,然后使用返回的层级的模型 — `cheap → haiku`、`mid → sonnet`、`high → opus`、`top → fable`。
### 3. MCP服务器
暴露一个工具:`route_task(任务, 是否关键?, 环境tokens?)`。安装程序为您注册它。手动从仓库目录执行:
```bash
claude mcp add --scope user model-router -- python3 "$(pwd)/router/mcp_server.py"
```
Claude Desktop — 添加到 `claude_desktop_config.json`(使用`router/mcp_server.py`的绝对路径):
```json
{"mcpServers": {"model-router": {
"command": "python3",
"args": ["/absolute/path/to/claude-model-router/router/mcp_server.py"]
}}}
```
### 4. Python API
```bash
pip install anthropic # 仅此路径需要
```
```python
from router.dispatcher import dispatch
response, decision, attempts = dispatch("调试此竞争条件:...")
```
`dispatch()`路由,调用选择的模型,并在失败时自动升级一个层级。
## 尝试评估
```bash
python3 eval/run_eval.py # 评估每种策略并打印表格
python3 eval/run_test.py # 保留集 + 生成评估/test_report.html
```
## 配置
所有模型ID、价格、层级截止值和权重都存储在 [config.json](config.json) 中 — 无需更改代码。
> ⚠️ 模型ID和价格会随时间变化。请与实时API进行验证。
**调整:** 运行 `python3 eval/run_eval.py`,读取错误路由列表,然后调整 `tier_cutoffs` 首先,`weights` 其次,关键字库最后。
## 工作原理
免费的确定性启发式方法处理清晰的案例。一个小型Haiku分类器仅在模糊任务上打破僵局。一个有上限的升级路径捕获其余部分。完整的决策合同和规则: [SKILL.md](SKILL.md)。