一个工具仓库,不是一个应用。它做三件事:
- 探测 —— 逐个模型试:能不能连、走哪种协议、工具调用能不能用、思考参数怎么关;
- 同步 —— 把探测结论整理成 provider 分组,按成本档 / 积分倍率写进
catalog/真源,再投影到 DSHcordis.patch.yml与兼容投影; - 记录 —— 把踩过的坑、协议归属、参数矩阵固化成文档,换套餐时不用重试一遍。
主宿主是 DSH:tools/dsh_sync.py 把模型目录投影到 ~/.dsh/profiles/<profile>/cordis.patch.yml,
DSH 会话、子代理与各类 agent 共用 gateways/zgate 单一入口(127.0.0.1:7871);
ZCode 仍作为兼容投影保留,不再是中心。tools/agent_profiles.py 给每个 agent 提供只读投影接口。
方向、命名分层与落地批次见 docs/DSH-FIRST.md。
仓里的 providers/opencode-go/、providers/workbuddy/ 与 providers/qoder/ 是三个跑通的完整示例(OpenCode-Go 套餐、
WorkBuddy2API 网关、qoder2api-hub 网关);现在统一成三组(主力 / 免费 / 省钱),
模型 ID 只用型号名(如 DeepSeek-4.1-Flash),同型号跨渠道合并成一条链路(WB 固定链首,其余按价格 / 前缀 / 渠道稳定排序),由 tools/model_alias.py 生成、gateways/zgate(Go,单进程,监听 127.0.0.1:7871)按 alias map 分流到 7 个 upstreams(OC / WB / QD / QW / QN / GM / HJ),并按需托管 2 个本地网关子进程(WorkBuddy 7863 / Qoder 8790)。方法本身与供应商无关,接一个新供应商要做的四步见
docs/MODEL-PROVIDERS.md §0。
边界:本仓库不含 DSH 宿主、也不含 ZCode 客户端,只写宿主配置 —— DSH 侧 cordis.patch.yml、兼容投影 provider_config.json;
脚本只碰兼容投影里的三个位置 —— 落点与写法见
docs/MODEL-PROVIDERS.md §1。
| 项 | 要求 |
|---|---|
| 主宿主 | DSH(DeepSeekRuntime):读 ~/.dsh/profiles/<profile>/cordis.patch.yml;会话 / 子代理 / 各类 agent 共用 127.0.0.1:7871 单一入口 |
| 兼容投影 | ZCode 桌面端(Windows,可选):读 ~/.zcode/v2/provider_config.json |
| 运行时 | Python 3(脚本只用标准库;门面重生成脚本 tools/make_social_preview.py 例外,需 numpy + Pillow)、Node.js 18+(跑探测/旧版路由);统一入口 gateways/zgate 是单个 Go 二进制,日常运行不需要 Go(只有自行构建时需要 Go 1.22+,见 docs/TOOLS.md §0) |
| 配置与凭据 | DSH 的 cordis.patch.yml + 兼容投影 provider_config.json(默认在 ~/.zcode/v2/);凭据只走环境变量,变量名与取值见 docs/SECRETS.md |
| 网络 | 能直连你的供应商;三个 chat 组统一指向 127.0.0.1:7871(zgate),由它按需拉起 WorkBuddy 网关(7863)与 Qoder hub(8790)两个本地子进程。生命周期、自启与换版见 docs/MAINTENANCE.md §8、docs/ZGATE-LIFECYCLE.md |
顺序不能乱:先刷价格表 → 再探测 → 最后同步。探测要慢 —— 一个模型间隔至少 20 秒, 太密会把对方的账号池打爆;同步是秒级的。
- 准备环境变量 ——
OPENCODE_GO_KEY(OpenCode-Go)、WB_GATEWAY_KEY(WorkBuddy 网关)、QD_API_KEY(Qoder 网关)、QWEN_API_KEY/QWEN_BASE(千问直连)、QINIU_API_KEY(七牛云 AI 网关);部分也可用 git-ignored 的providers/*/.env.local。凭据一律从环境变量读,只写变量名、不写真值,完整清单见 docs/SECRETS.md §3.5。 - 刷价格表 —— WorkBuddy 侧先跑
providers/workbuddy/workbuddy_fetch_pricing.py; OpenCode-Go 侧不用刷,同步脚本每次现拉目录与价格;Qoder 侧也不用刷,qoder_sync.py每次现拉/v1/models。 - 探测 ——
providers/workbuddy/workbuddy_probe.py --sleep 20、providers/opencode-go/probe/probe_models.py、providers/qoder/qoder_probe.py。必须按宿主生效请求体探测(effective_body.js复刻的规则合并语义):裸 body 能通不代表按宿主规则合并后能通。 - 探测并归一化 —— 先更新主力候选(可选),再跑统一探测,最后由
model_alias.py生成三组 + alias map:
python tools/arena_leaderboard.py --refresh --write # 可选:外部榜单 → 主力候选
python tools/model_probe.py
python tools/model_alias.py --slot auto --probe-file ~/.zcode/v2/model_probe.json --apply主力由两部分组成:人工 MAIN_IDS + 榜单候选(分数接近 DeepSeek 且积分 ≤ 0.11 的
已配置模型)。榜单口径与 2026-10-23 的候选见
docs/BENCHMARKS.md §8。
旧的 go_model_sync.py / workbuddy_sync.py / qoder_sync.py 现在只作
数据采集;它们的旧 ID 会由 model_alias.py 归一化成统一的型号名。命名、
积分换算与桥接规则见
docs/MODEL-ALIAS.md。
model_alias.py 会先备份再原子替换 provider_config.json;兼容投影端约 1 秒轮询该文件,DSH 侧消费 cordis.patch.yml,
写完一般不用重启宿主。统一入口(gateways/zgate)、alias map、协议桥与各脚本产物见
docs/TOOLS.md,
命名与积分规则见
docs/MODEL-ALIAS.md,
日常刷新、限速与回退见
docs/MAINTENANCE.md。
接不上某个供应商、探测结果对不上、想要新的判定手法,都可以到 Issues 反馈;想参与贡献见 CONTRIBUTING, 安全问题按 SECURITY 报告。反馈时请带上:
- 跑的是哪个脚本、卡在哪一步、报错原文
- 涉及的模型与 provider、DSH profile 版本(或兼容宿主版本)
- 对应的环境变量是否已设置(不要把 key 贴出来)
- 探测的输出文件(
providers/workbuddy/cache/下那两份,发之前先扫一眼有没有凭据)
本项目仅供学习与个人使用。
- 本仓库不上传、不收集任何数据;脚本只与你自己机器上的配置和你自己的模型网关交互
- 脚本会修改你自己的宿主配置(DSH
cordis.patch.yml/ 兼容投影provider_config.json),写之前会自动备份,仍建议自己再备份一份 - 示例涉及的
opencode.ai、WorkBuddy2API、Qoder 与你自行接入的其它供应商都是第三方服务, 本项目与它们不存在任何隶属、合作、授权或认可关系 - 模型价格、额度、可用性与隐私策略一律以服务商当时的说明为准,本仓文档只是某一时刻的快照; 仓里的模型清单与分组按成本档 / 积分倍率排,是主观取舍,不是推荐
- 使用本项目产生的任何后果由使用者自行承担
「ZCode」「OpenCode Zen / Go」等商标、标识的权利均归其权利人所有。本项目与之不存在任何隶属、合作、授权、认可或支持关系。
本仓库建立在这些项目与服务之上(逐项声明见 NOTICE):
| 项目 | 用途 |
|---|---|
WorkBuddy2API Panel(链路:Sliverkiss/workbuddy2api 已删库 → linguo2625469/workbuddy2api-panel 2026-10-21 停更 → 本仓现跟踪此分支) |
腾讯 CodeBuddy 多账号网关,WorkBuddy 侧全部请求都发给它(MIT;本仓不含其源码,只通过 HTTP 调用) |
| qoder2api-hub | Qoder 账号网关,Qoder 侧全部请求都发给它(MIT;本仓不含其源码,只通过 HTTP 调用) |
| Qoder(qoder.com.cn / qoder.com) | Qoder 侧的模型服务与账号(商业服务) |
| OpenCode Zen / Go(opencode.ai) | 模型套餐与 API 网关,OpenCode-Go 侧全部请求都发给它(商业服务) |
| ZCode | 兼容投影宿主,本仓保留其配置落点并复刻其规则合并语义(Apache-2.0) |
| ZCodium | ZCode 的 MIT 授权独立审计 fork,思考规则切片的来源(MIT) |
| Python 3 / Node.js | 脚本运行时 |
调研过的 14 个同类型项目,以及本仓实际复制的上游文件与来源凭证,见 docs/UPSTREAM.md。
本项目以 MIT License 发布。第三方组件与服务的版权与条款声明见 NOTICE。
