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) |
一把密鑰只通一個模型種類:
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
- 報錯速查:按報錯原文排查