DeepSeek Harness (dsh)
用一条自定义 provider 把 DeepSeek Harness 接到 HopBase。
DeepSeek Harness(dsh)是 DeepSeek 开源的 Agent 运行时。它通过自定义 provider 接入任意网关——base URL、协议、模型 ID 都是配置项,没有硬编码。
先按模型种类选协议
dsh 需要知道用哪种线上协议。这取决于模型种类,不取决于 dsh。
| 模型种类 | api | baseURL |
|---|---|---|
| DeepSeek、GPT / Codex、GLM、Kimi、Grok、通义千问 | openai-completions | https://api.hop-base.com/v1 |
| Claude | anthropic-messages | https://api.hop-base.com(不带 /v1) |
每种协议配一个 provider:
HopBase 的密钥能调用它所含套餐分组对应的模型种类。想在同一个 dsh 里同时用 DeepSeek 和 Claude,就要配两个 provider,每种协议一个;密钥同时包含两个分组时,两个 provider 可以用同一把密钥。密钥不含该模型所在分组时会拿到 404 model_not_found。
用配置文件接入
函数调用与流式用量已在 HopBase 上端到端验证通过。
添加一个 provider
打开 $DSH_HOME/settings.yaml,在 providers 下加一段:
providers:
hopbase:
api: openai-completions
baseURL: https://api.hop-base.com/v1
apiKeyEnv: HOPBASE_API_KEY
models:
- id: deepseek-v4-pro-202606
- id: deepseek-v4-flash-202605
- id: glm-5.3models 里只列你这把密钥真正能调的型号。完整 ID 请用该密钥调 GET /v1/models 读取,不要照抄这个示例。
核对模型列表
curl https://api.hop-base.com/v1/models \
-H "Authorization: Bearer sk-your-key"你在 models 里列的每一个 ID 都必须出现在这个响应里。少了哪个,说明这把密钥的所有分组都不提供它。
发一次请求
启动 dsh,选中该 provider,让它只回一个词。这一次成功往返就同时验证了 base URL、密钥、协议、模型 ID 四项都对得上。
用网页界面接入
Settings → Models → Add a custom provider,填同样的四个值:协议、base URL、密钥变量名、模型 ID。上面那张协议表在这里同样适用。
再接一个模型种类
想在 DeepSeek 之外再用 Claude,请新增一个 provider,不要改原来那个——协议和 base URL 都不一样:
providers:
hopbase:
api: openai-completions
baseURL: https://api.hop-base.com/v1
apiKeyEnv: HOPBASE_API_KEY
models:
- id: deepseek-v4-pro-202606
hopbase-claude:
api: anthropic-messages
baseURL: https://api.hop-base.com
apiKeyEnv: HOPBASE_CLAUDE_API_KEY
models:
- id: claude-sonnet-5排错
| 现象 | 原因 |
|---|---|
每个请求都 401 | 启动 dsh 的那个 shell 里,apiKeyEnv 指定的环境变量没设 |
404 model_not_found | 该模型不在这把密钥的任何分组里,或者 ID 被缩写了。重新用 GET /v1/models 核对 |
只有 Claude 报 404 | baseURL 多带了 /v1。Anthropic 协议要用不带路径的域名 |
| 请求打到了别的模型 | 两个 provider 共用了同一个 apiKeyEnv。每个模型种类给一个独立变量 |
下一步
- DeepSeek V4 是本页背后的模型接入说明——端点、推理输出、缓存,以及网关会改动请求的地方
- 可用模型:查看密钥可用的模型 ID
- 报错速查:按报错原文排查