主题
模型路由
模型名怎么填
jsonc
"model": "buddy/deepseek-v4.1-flash" // 带前缀 → 指定供应商
"model": "deepseek-v4.1-flash" // 裸名 → 回落到默认供应商 buddy
"model": "aggregate/deepseek-v4-1-flash" // 聚合 → 该模型所有渠道里挑最该先烧的
"model": "aggregate/auto" // 聚合 → 所有渠道的所有模型里挑GET /v1/models 返回的目录一律带 provider/ 前缀(多家有同名模型,裸名分不清是哪家), 且只列有账号的供应商的模型。打错的聚合名会报错并列出可用键 —— 规范名是从上游推导出来的,不该让用户猜。

调用示例
bash
curl -N https://<你的域名>/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H 'content-type: application/json' \
-d '{"model":"buddy/deepseek-v4.1-flash","messages":[{"role":"user","content":"你好"}]}'Responses API
只发 input 的客户端(Codex CLI 等)走这个端点:
bash
curl -N https://<你的域名>/v1/responses \
-H "Authorization: Bearer $API_KEY" \
-H 'content-type: application/json' \
-d '{"model":"buddy/deepseek-v4.1-flash","input":"你好"}'不支持 previous_response_id 与 store: true(本服务无状态),传了会明确报 400, 而不是静默忽略 —— 静默忽略会让客户端以为有上下文。
聚合路由
同一个真实模型在各渠道叫法完全不同。以 DeepSeek V4.1 Flash 为例(线上实测):
| 渠道 | 真实 id |
|---|---|
buddy / workbuddy / trae / codearts / cline | deepseek-v4.1-flash |
lobsterai | deepseek-flash |
raccoon | sn-deepseek-v4-1-flash |
loomy | DeepSeek-V4.1-Flash |
聚合把它们归到一个规范名,并按积分最快作废挑渠道 —— 临期的先用掉,长期的留着。
选路规则要点:
- 失败会自动换下一家,但只在还没开始输出内容时换:一旦开始流式输出就不再切换, 否则会把两个模型的半截回答拼成乱码;
- 聚合遵守面板里的模型停用设置:停用的模型不会出现在聚合目录里,也调不到;
- 不做缓存:每次请求现拉目录与到期时刻 —— 「临期优先」的正确性依赖到期时刻够新, 刻意优先正确性(详见已知限制);
- 查不到余额的家(如
opencode)不参与排序 —— 不会把流量发给额度状态未知的渠道。
另有一个裸名别名表:DeepSeek-V4.1-Flash(官方拼写、带大写与点)这类常见拼写会被 自动映射到聚合规范名,由聚合路由接管选渠道。