在 DeepSeek Harness 中接入 WanAPIs
DeepSeek Harness(命令行里叫 dsh)是 DeepSeek 开源的编码智能体。除了官方端点和内置的提供方目录,它还支持「自定义提供方」——只要对方讲 OpenAI 兼容协议就能接。把 API 地址指向 WanAPIs,你就能在同一个 Key 下切换多家厂商的模型,而不必为每家单独开账号。下面以 deepseek-v4.1-flash 为例走一遍,并标出两个最容易卡住的地方。
接入步骤
- 1
注册拿 API Key
在 WanAPIs 控制台注册,创建一个 sk- 开头的 API Key。建议给 dsh 单独建一个令牌 —— 控制台的日志和用量按令牌分开统计,之后能一眼看出这个智能体花了多少。
- 2
在界面里添加自定义提供方
打开 设置 → 模型 → 添加自定义提供方,按下面填。⚠️ Provider ID 必须小写,而且基本上是不可改的 —— 请求、已保存的会话、凭据引用都指向它,起名时想清楚。
设置 → 模型 → 添加自定义提供方Provider ID: wanapis 显示名称: WanAPIs API 地址: https://api.wanapis.com/v1 API 协议: openai-completions API 密钥: sk-xxx 模型: deepseek-v4.1-flash - 3
⚠️ API 地址填到 /v1 就行,不要填完整路径
dsh 会自己补 /chat/completions,所以 API 地址填 https://api.wanapis.com/v1 即可,填成 .../v1/chat/completions 反而会拼成重复路径而失败。这一点和 WorkBuddy 正好相反(那边要求填完整路径),从别的工具照抄配置时最容易在这里翻车。
- 4
⚠️「获取可用模型」可能列不出 deepseek,手填 ID 即可
表单上的「获取可用模型」会拿你填的地址和密钥去问端点有哪些模型。但 WanAPIs 返回的清单是【按令牌所属分组过滤】的 —— 如果你的令牌在某个专用分组里,列表可能只有那个分组的模型,看不到 deepseek-v4.1-flash。这不是配置错了:直接把模型 ID 手动敲进去就能用。想让列表更全,就用 default 分组的令牌。
- 5
也可以直接写配置文件
不想点界面就编辑 $DSH_HOME/settings.yaml。密钥不写在这个文件里,而是用 apiKeyEnv 指向一个环境变量名(通过 Web UI 保存的凭据存在 $DSH_HOME/.credentials.yaml)——这样配置文件可以安全地跟着项目走。下面是官方文档给出的结构,字段以你所用版本的实际文档为准。
$DSH_HOME/settings.yamlllm-pi-ai: providers: wanapis: apiKeyEnv: WANAPIS_API_KEY api: openai-completions baseURL: https://api.wanapis.com/v1 models: - id: deepseek-v4.1-flash - id: gpt-5.6-sol - id: claude-opus-5 - 6
协议怎么选
dsh 的「API 协议」有三个选项,WanAPIs 三种都支持:openai-completions 对应 /v1/chat/completions,兼容性最好,不确定就选它;openai-responses 对应 /v1/responses;anthropic-messages 对应 /v1/messages。协议要和你填的地址匹配 —— 选错了通常表现为 404 或参数不被识别,而不是明确的报错。
- 7
成本:长会话靠缓存省很多
deepseek-v4.1-flash 在默认分组是 输入 ¥0.50 / 输出 ¥4.00(每百万 token)。编码智能体的特点是同一段上下文被反复发送,而命中缓存的输入按 8% 计费 —— 平台上的真实调用里,单次请求携带十几万 token 的缓存上下文很常见,实际付费的只是新增部分。所以别被「上下文很长」吓到,真正贵的是输出。
默认分组单价(元 / 百万 token)deepseek-v4.1-flash 输入 0.50 输出 4.00 命中缓存的输入按 8% 计 gpt-5.6-sol 输入 5.00 输出 30.00 claude-opus-5 输入 5.00 输出 25.00 - 8
跑通之后再放开用
先让它做一件小事,确认三件事:请求确实打到了 WanAPIs(控制台日志页能看到这条调用)、模型名没写错、扣费正常。日志里能看到每次调用的 token 数、走的哪条上游线路和耗时,排查问题比在客户端猜要快得多。
常见问题
DeepSeek Harness 可以接入第三方 API 吗?
可以。除了官方端点和内置提供方目录,dsh 支持「自定义提供方」,能接任意 OpenAI 兼容的网关或自建服务。在 设置 → 模型 → 添加自定义提供方 里配置,或直接写 $DSH_HOME/settings.yaml。
API 地址要填到 /chat/completions 吗?
不要。dsh 会自己补路径,填到 https://api.wanapis.com/v1 就行。填成完整路径会拼出重复的 /chat/completions 而失败。注意这和 WorkBuddy 的要求正好相反,别照抄。
点「获取可用模型」找不到 deepseek-v4.1-flash?
这通常不是配置错了。WanAPIs 的模型清单按令牌所属分组过滤,如果你的令牌在某个专用分组里,列表就只有那个分组的模型。直接把模型 ID 手动敲进去即可正常调用;想让列表更全,换一个 default 分组的令牌。
Provider ID 可以改吗?
基本不能。请求、已保存的会话和凭据引用都指向这个 ID,官方文档也说明它实际上是永久的。起名时想清楚,建议用简单的小写英文,比如 wanapis。
API 协议三个选项该选哪个?
不确定就选 openai-completions(对应 /v1/chat/completions),兼容性最好。WanAPIs 三种都支持:openai-responses 对应 /v1/responses,anthropic-messages 对应 /v1/messages。协议和地址必须匹配,选错通常表现为 404 或参数不被识别。
API Key 存在哪?会不会跟着配置文件泄露?
不会。settings.yaml 里用 apiKeyEnv 指向一个环境变量名,密钥本身不写在里面;通过 Web UI 保存的凭据存在 $DSH_HOME/.credentials.yaml。所以 settings.yaml 可以安全地跟着项目走,但 .credentials.yaml 不要提交到仓库。
配好了但请求失败,怎么查?
先去 WanAPIs 控制台的日志页看有没有这条请求:有记录说明请求已经到网关,直接看报错原因;完全没有记录,说明请求还没发出去,问题在客户端 —— 依次检查 API 地址是否多了 /chat/completions、密钥有没有复制全(末尾空格是常见坑)、模型 ID 是否与模型市场里完全一致。
deepseek-v4.1-flash 贵吗?编码智能体上下文那么长。
默认分组是 输入 ¥0.50 / 输出 ¥4.00 每百万 token,而且命中缓存的输入按 8% 计费。编码智能体反复发送同一段上下文,大部分输入都会命中缓存,实际付费的只是新增部分。真正的成本大头是输出。
可以在 dsh 里混用多家模型吗?
可以,这正是接中转的好处。在同一个自定义提供方的 models 列表里把 deepseek-v4.1-flash、gpt-5.6-sol、claude-opus-5 都列上,就能在一个 Key 下随时切换,不必为每家单独开账号和配置。
国内能直连吗?需要梯子吗?
不需要。WanAPIs 的接口国内可以直接访问,dsh 里填上就能用,不用额外配代理。
支持哪些模型?
GPT、Claude、Gemini、DeepSeek、Kimi、Qwen、GLM、Grok 等主流文本模型都能填,完整清单见模型市场。dsh 是编码智能体,建议选支持工具调用的模型。
现在就把 DeepSeek Harness 接到 WanAPIs
一个 API Key 调用 GPT、Claude、Gemini、DeepSeek、Kimi、GLM 等模型,国内直连、按 token 实付。