在 DeepSeek Harness 中接入 WanAPIs
DeepSeek Harness(命令行里叫 dsh)是 DeepSeek 开源的编码智能体,支持接入任何 OpenAI 兼容的接口。接 WanAPIs 一共三件事:在界面里把 WanAPIs 加成模型提供商;在配置文件里声明思考档位,模型选择器才能选关闭 / low / high / max;再让联网搜索也走 WanAPIs,否则会报 no API key for "DEEPSEEK_API_KEY"。下面每一步都在 Harness 0.2.0-rc.2 的 Web 版上实测过,截图也出自这次实测。
一览
- API 地址
- https://api.wanapis.com/v1(只填到 /v1)
- API 协议
- OpenAI Chat Completions(配置文件里写作 openai-completions)
- 聊天模型
- deepseek-v4.1-flash,上下文窗口填 1000000
- 思考强度
- 关闭 / low / high / max,要在配置文件里声明
- 联网搜索模型
- deepseek-v4.1-flash-1017(只能用这个,要在配置文件里改)
- 配置文件
- 设置 → 右上角「打开配置文件」;Web 版是 ~/.dsh/profiles/web/cordis.patch.yml
- 费用
- deepseek-v4.1-flash 每百万 token 输入 ¥0.50 / 输出 ¥4.00,命中缓存的输入按 8% 计;联网搜索约 ¥0.1 / 次
最后验证:DeepSeek Harness 0.2.0-rc.2(Web 版)· 2026-10-19(添加提供商、思考档位切换、联网搜索均实测)
接入步骤
- 1
创建一把 API Key
在 WanAPIs 控制台注册,到「API 密钥」页创建一个 sk- 开头的 Key,分组用 default。建议给 Harness 单独建一把:控制台的日志和用量按 Key 分开统计,能一眼看出这个智能体花了多少。
- 2
添加 WanAPIs 为模型提供商
打开 Harness 的 设置 → 模型 → 添加模型提供商,切到「自定义模型 API」,按下面填。Provider ID 用小写的 wanapis:建好后基本不能改,后面配置文件里用到的密钥名 WANAPIS_API_KEY 也是从它派生的。API 地址只填到 /v1,不要写 /chat/completions,Harness 会自己补上。
设置 → 模型 → 添加模型提供商 → 自定义模型 APIProvider ID: wanapis 显示名称: WanAPIs API 地址: https://api.wanapis.com/v1 API 协议: OpenAI Chat Completions API 密钥: sk-xxx - 3
获取可用模型:先「取消全选」,再勾 deepseek-v4.1-flash
点表单里的「获取可用模型」,会弹出 WanAPIs 上你能用的全部模型,而且默认全部勾选,有两百多个。先点「取消全选」,在搜索框输入 deepseek,只勾 deepseek-v4.1-flash,再点「添加所选」。其他想用的模型(比如 gpt-5.6-sol、claude-opus-5)也在这里一起勾上。列表按 Key 的分组过滤,如果 Key 不在 default 分组,可能找不到 deepseek-v4.1-flash,点表单里的「添加模型」手动填模型 ID 也一样能用。

先「取消全选」,搜索 deepseek,只勾需要的模型 - 4
把上下文窗口设成 1000000,创建提供商
点模型那一行右边的「›」展开模型选项,「上下文窗口」填 1000000。不填的话 Harness 按 26 万上下文估算,长会话会被它提前截断,提示已达输出上限。「最大输出 token 数」留空即可。最后点「创建提供商」。

填好后的完整表单。API 密钥以圆点显示,上下文窗口填 1000000 - 5
打开思考强度:在配置文件里声明档位
Harness 不会从接口识别 DeepSeek 的思考档位,界面里也没有这个设置。不声明的话,模型选择器里只有「模型」,没有「推理等级」。打开 设置 → 右上角「打开配置文件」(Web 版的文件在 ~/.dsh/profiles/web/cordis.patch.yml),找到上一步自动写进去的 llm-pi-ai 那一段,在 wanapis 下加一行 reasoning,在 deepseek-v4.1-flash 下加 compat 和 reasoningEfforts,也就是下面标了「新增」的几行。缩进要用空格,改之前可以先复制一份备份。
~/.dsh/profiles/web/cordis.patch.yml- id: llm-pi-ai name: "@deepseek-ai/dsh-llm-pi-ai" config: providers: wanapis: reasoning: high # 新增:新会话默认用哪一档 displayName: WanAPIs apiKeyEnv: WANAPIS_API_KEY api: openai-completions baseURL: https://api.wanapis.com/v1 models: - id: deepseek-v4.1-flash name: deepseek-v4.1-flash contextWindow: 1000000 compat: # 新增 thinkingFormat: deepseek # 新增:没有这行,选 Off 也照样思考 reasoningEfforts: # 新增 off: # 新增 low: low # 新增 high: high # 新增 max: max # 新增 - 6
在模型选择器里切换思考档位
保存后 Harness 会自动重新加载配置,实测不用重启;没变化就重启一次。之后在输入框右下角的模型选择器里,「推理等级」可以选 Off / Low / High / Max。Off 是完全不思考,最快也最省;日常写代码用 High;难题用 Max。DeepSeek 只有 low、high、max 三档,medium 之类的效果和 high 一样,所以给这四个选项就够了。

声明后,推理等级可以选 Off / Low / High / Max - 7
让联网搜索也走 WanAPIs
Harness 的网页搜索插件不走聊天用的模型,而是自己直连 DeepSeek 官方,去找 DEEPSEEK_API_KEY;只配了 WanAPIs 的话,一搜就报 no API key for "DEEPSEEK_API_KEY"。在同一个配置文件末尾加上下面这段即可。apiKeyEnv 填 WANAPIS_API_KEY,复用第 2 步存好的 Key,不用再填一遍;如果你的 Provider ID 不是 wanapis,就照抄 llm-pi-ai 那段里 apiKeyEnv 的值。model 必须是 deepseek-v4.1-flash-1017,换成别的模型名,在我们这边不会真正执行搜索。
~/.dsh/profiles/web/cordis.patch.yml(加在文件末尾)- id: web-search-deepseek config: baseURL: https://api.wanapis.com/v1 apiKeyEnv: WANAPIS_API_KEY model: deepseek-v4.1-flash-1017 - 8
在「插件 → 网页搜索」里确认
打开左侧栏的 插件 → 网页搜索:「接口地址」显示 https://api.wanapis.com/v1(标着「已覆盖」),API Key 旁显示「已配置密钥」,就说明生效了。这个页面只有 API Key、接口地址和单次请求最多搜索次数,没有「模型」这一项,所以模型只能写在配置文件里。

改完配置文件后,接口地址显示为 WanAPIs,API Key 显示「已配置密钥」 - 9
试一次联网搜索,留意费用
新开一个会话,问一个需要查资料的问题。回答里带来源链接,就是搜索真的执行了。每次搜索约 ¥0.1(搜索费约 ¥0.091,加上 token)。注意 Agent 回答一个开放问题时可能连续搜好几次:我们实测一个宽泛的问题搜了 7 次,约 ¥0.7。想省钱就在提问里写「只搜一次」。控制台日志里,每次搜索都是一条单独的 deepseek-v4.1-flash-1017 记录。

实测:限定只搜一次,15 秒给出带来源的回答 - 10
成本:长会话靠缓存省很多
deepseek-v4.1-flash 在默认分组是 输入 ¥0.50 / 输出 ¥4.00(每百万 token)。编码智能体的特点是同一段上下文被反复发送,而命中缓存的输入按 8% 计费,实际付费的主要是新增部分,所以别被「上下文很长」吓到,真正贵的是输出。先让它做一件小事,到控制台「使用日志」页确认请求到了 WanAPIs、模型名对、扣费正常,再放开用。
默认分组单价(元 / 百万 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
已知限制
- 实测的是 Harness 0.2.0-rc.2 的 Web 版(dsh web)。桌面版没有实测,菜单文字可能略有不同,配置文件格式相同。
- 思考档位和联网搜索的模型只能写在配置文件里,界面上没有对应的设置项。
- 联网搜索只能用 deepseek-v4.1-flash-1017,其他模型名在我们这边不会真正执行搜索。
- 「网页获取」(打开网页正文)是 Harness 在你电脑上直接访问网页,不经过 WanAPIs,也不收费。
- Harness 还在预览阶段(0.2),配置格式以后可能变化;遇到对不上的地方,以 Harness 当前版本为准。
常见问题
联网搜索报 no API key for "DEEPSEEK_API_KEY" 怎么办?
这是 Harness 的网页搜索插件在找 DeepSeek 官方的 Key。它和聊天用的模型配置是分开的,默认直连 DeepSeek 官方。按第 7 步在配置文件末尾加 web-search-deepseek 那一段,把 baseURL 指向 https://api.wanapis.com/v1、apiKeyEnv 填 WANAPIS_API_KEY、model 填 deepseek-v4.1-flash-1017 即可。
搜索不报错,但回答说没搜到东西?
多半是 model 没改,还是默认的 deepseek-v4-flash。联网搜索必须用 deepseek-v4.1-flash-1017,其他模型名在我们这边不会真正执行搜索。改完到「插件 → 网页搜索」确认接口地址是 https://api.wanapis.com/v1。
联网搜索怎么收费?为什么一个问题扣了好几毛?
每次搜索约 ¥0.1(搜索费约 ¥0.091 加 token)。Agent 回答一个问题时会自己决定搜几次,宽泛的问题可能连搜好几次,我们实测一次搜了 7 次,约 ¥0.7。在提问里写「只搜一次」最直接。设置页里的「单次请求最多搜索次数」限制的是每次搜索请求里最多搜几次,管不了 Agent 一共发几次搜索。
模型选择器里没有「推理等级」,或者选 Off 还在思考?
没有「推理等级」,是配置文件里少了 reasoningEfforts;选 Off 还在思考,是少了 compat: thinkingFormat: deepseek。没有这一行,Off 只是不发参数,DeepSeek 默认照样思考。按第 5 步把标了「新增」的几行补全,保存后一般立即生效,没变化就重启一次 Harness。
为什么只给 Off / Low / High / Max 四档?
DeepSeek 实际只有 low、high、max 三档思考强度,medium、xhigh 之类的值效果和 high 一样,所以再加关闭就够了。reasoningEfforts 里左边是菜单显示的档位名,右边是发给 DeepSeek 的值;路由下的 reasoning: high 决定新会话默认用哪一档。
长会话提示「已达输出上限,回答被截断」?
上下文窗口没设对。Harness 不知道模型的上下文有多大时按 26 万估算,输入一长,它就把输出上限压得很小,甚至只有 1 个 token。deepseek-v4.1-flash 是 100 万上下文:在 设置 → 模型 里编辑 WanAPIs,展开模型选项把「上下文窗口」填 1000000;或在配置文件的模型条目里写 contextWindow: 1000000。
提示「API 密钥无效」,但 Key 没填错?
先到控制台「API 密钥」页看这把 Key:额度用完、已过期或被禁用时,网关返回的也是同一句「无效的令牌」,Harness 就显示成「API 密钥无效」。确认 Key 正常的话,再检查有没有复制全、末尾有没有多出空格。
「网页获取」报 resolves to a non-public IP address?
这是 Harness 的安全检查:网页获取是在你电脑上直接访问网页,目标域名解析到内网或保留地址时会被拒绝。常见原因是本机代理软件开了 fake-ip 之类的模式,把域名解析成 198.18.x.x 这类地址。和 WanAPIs 无关;关掉这个模式、给该域名放行,或者只让它用网页搜索,都能绕开。
配置文件在哪?改坏了怎么办?
设置窗口右上角的「打开配置文件」会直接打开它;Web 版的路径是 ~/.dsh/profiles/web/cordis.patch.yml,桌面版一般在 profiles 下的 desktop 目录。改之前先复制一份;改坏了把新加的那几行删掉,或者换回备份即可。最常见的错误是缩进:YAML 只能用空格,层级要和上下文对齐。
API 地址要填到 /chat/completions 吗?
不要。Harness 会自己补路径,填到 https://api.wanapis.com/v1 就行。填成完整路径会拼出重复的 /chat/completions 而失败。注意这和 WorkBuddy 的要求正好相反,别照抄。
点「获取可用模型」找不到 deepseek-v4.1-flash?
列表默认全选、而且有两百多个,先点「取消全选」再搜索 deepseek。还是找不到,多半是 Key 不在 default 分组:WanAPIs 的模型清单按 Key 的分组过滤。点「添加模型」手动填模型 ID 也能正常用;想让列表更全,换一把 default 分组的 Key。
Provider ID 可以改吗?
基本不能。请求、已保存的会话和密钥引用都指向这个 ID,配置里的密钥名 WANAPIS_API_KEY 也是从它派生的。建议直接用 wanapis;真要换,得删掉提供商重新添加,并同步改配置文件里的 apiKeyEnv。
API 协议三个选项该选哪个?
选 OpenAI Chat Completions(配置文件里是 openai-completions),兼容性最好,本教程就是用它实测的。WanAPIs 三种都支持:OpenAI Responses 对应 /v1/responses,Anthropic Messages 对应 /v1/messages。协议和地址必须匹配,选错通常表现为 404 或参数不被识别。
API Key 存在哪?会不会跟着配置文件泄露?
不会。在界面里填的 Key 存在 ~/.dsh/.credentials.yaml,配置文件 cordis.patch.yml 里只有 apiKeyEnv: WANAPIS_API_KEY 这个引用名,不含 Key 本身。所以配置文件可以放心分享,但 .credentials.yaml 不要外传,也不要提交到仓库。
配好了但请求失败,怎么查?
先去 WanAPIs 控制台的「使用日志」页看有没有这条请求:有记录,说明请求已经到网关,直接看报错原因;完全没有记录,说明请求还没发出去,问题在客户端。依次检查 API 地址是否多了 /chat/completions、Key 有没有复制全(末尾空格是常见坑)、模型 ID 是否与模型市场里完全一致。
可以在 Harness 里混用多家模型吗?
可以,这正是接中转的好处。在「获取可用模型」里把 deepseek-v4.1-flash、gpt-5.6-sol、claude-opus-5 等一起勾上,就能在一个 Key 下随时切换。注意思考档位那几行是按模型写的,只对你加了 reasoningEfforts 的模型生效。
国内能直连吗?需要梯子吗?
不需要。WanAPIs 的接口国内可以直接访问,Harness 里填上就能用,不用额外配代理。
支持哪些模型?
GPT、Claude、Gemini、DeepSeek、Kimi、Qwen、GLM、Grok 等主流文本模型都能用,完整清单见模型市场。Harness 是编码智能体,建议选支持工具调用的模型。
现在就把 DeepSeek Harness 接到 WanAPIs
一个 API Key 调用 GPT、Claude、Gemini、DeepSeek、Kimi、GLM 等模型,国内直连、按 token 实付。