DeepSeek Harness(DSH)的设计是「一切皆插件」,但它开箱自带的模型来源只有两个:DeepSeek 自己,以及一个叫 pi-ai 的通用 OpenAI 兼容适配器。第二个就是入口。想在 DSH 里用别家模型**不需要写插件** —— 把 pi-ai 指向一个本来就说 OpenAI 协议的网关,网关背后的所有模型就都能在 DSH 里选了。
APIMODELS 就是这样一个网关:一个 key、一份余额,一个兼容 OpenAI 的端点后面挂着 Anthropic、OpenAI、Google、xAI、Moonshot、DeepSeek 等 60+ 模型。DSH 是 agent 框架,消耗 token 的方式是成圈地跑而不是单次调用 —— 这恰恰是「共用一份余额按量付费」比「给每家厂商单开账号、各充一笔预付款」更划算的场景。
填 key 有两种方式。大多数用户按下面步骤 1 和 2:复制配置、启动 DSH、在 Settings 里粘贴 key —— 不需要碰终端。习惯命令行的开发者可以用步骤 3 的替代路径(环境变量)。两种都有效,互不冲突。
apimodels.yml
- id: llm-pi-ai
config:
providers:
apimodels:
displayName: APIMODELS
baseURL: https://api.apimodels.app/v1
api: openai-completions
models:
- id: claude-sonnet-5
name: Claude Sonnet 5
contextWindow: 200000
maxTokens: 8192
- id: deepseek-v4-flash
name: DeepSeek V4 Flash
contextWindow: 131072
maxTokens: 8192
# make it the default model DSH starts with
- id: agent-default-model
config:
provider: apimodels
model: claude-sonnet-52. Add your key in DSH
1. Launch DSH: npx @deepseek-ai/dsh web
2. Open Settings → Models → apimodels → paste your API key → Apply
3. Done — Claude, DeepSeek and any model you add are now availableFor developers — env var (alternative)
# Add this one line to apimodels.yml, then run:
# apiKeyEnv: APIMODELS_API_KEY
export APIMODELS_API_KEY=sk_your_key_here
npx @deepseek-ai/dsh web --patch ./apimodels.ymlcURL
# sanity-check the gateway before wiring it into DSH
curl https://api.apimodels.app/v1/chat/completions \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"messages": [{"role": "user", "content": "Reply with exactly: OK"}],
"max_tokens": 16
}'不需要。DSH 自带的 pi-ai 就是通用 OpenAI 兼容适配器,接收 baseURL、放 API key 的环境变量名、以及一份模型清单。把它指向 APIMODELS 是改配置,不是写代码。大多数用户甚至不用终端:复制配置、启动 DSH、在 Settings → Models 里粘贴 key 即可。
APIMODELS 提供的任何对话模型都可以 —— Claude(Opus / Sonnet / Haiku)、GPT、Gemini、Grok、Kimi、GLM、MiniMax、DeepSeek —— 因为它们都在同一个兼容 OpenAI 的端点后面。配置的 `models` 列表里一个模型加一条,其中 id 就是你平时调用时写在 `"model"` 里的那个字符串。完整清单和当前价格见定价页。
不会,它是在旁边**新增**一条路由。自带的 `deepseek-official` 仍然用你自己的 DeepSeek key 正常工作;上面那段只是改了默认选哪条。你也可以不动默认值,在界面里手动切模型,两个来源同时保留。不少人会把 DeepSeek 也一并走我们,这样 agent 循环只消耗一份余额而不是两份。
有两个理由是 agent 场景特有的。其一,agent 一个任务里要反复调模型,上游中途抽风就是整轮白跑 —— 带兜底渠道的网关能吸收掉这种抖动。其二,agent 工作天然需要混用模型(常规步骤用便宜的、难的用强的),跨厂商这么做通常意味着好几个账号、好几个 key、好几笔预付款;在这里是一个 key、一份余额,按 token 计费,失败不扣费。
它是在 dsh 0.1.0-rc.6 上验证的,而 DSH 是开发者预览版、官方明说后续会有破坏性变更。这里的字段名取自项目自己的配置目录,配置目录变了它就会变。如果你碰到某个版本加载不了这段,告诉我们 —— 我们会重测并更新这一页,而不是放着一段过期代码不管。