# 在 DeepSeek Harness 中接入 WanAPIs

> DeepSeek Harness(dsh)接入 WanAPIs 的完整配置:添加自定义模型 API、打开思考强度(关闭 / low / high / max)、让联网搜索走 WanAPIs(解决 no API key for "DEEPSEEK_API_KEY" 报错)。每一步都在 Harness 0.2.0-rc.2 上实测并配截图。

网页版:https://wanapis.com/docs/deepseek-harness

最后验证:DeepSeek Harness 0.2.0-rc.2(Web 版)· 2026-10-19(添加提供商、思考档位切换、联网搜索均实测)

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 / 次 |

## 接入步骤

### 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 会自己补上。

**设置 → 模型 → 添加模型提供商 → 自定义模型 API**

```
Provider 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 Harness「选择要添加的模型」对话框:搜索 deepseek,只勾选 deepseek-v4.1-flash](https://wanapis.com/docs/dsh-pick-models-zh.png)

*先「取消全选」,搜索 deepseek,只勾需要的模型*

### 4. 把上下文窗口设成 1000000,创建提供商

点模型那一行右边的「›」展开模型选项,「上下文窗口」填 1000000。不填的话 Harness 按 26 万上下文估算,长会话会被它提前截断,提示已达输出上限。「最大输出 token 数」留空即可。最后点「创建提供商」。

![DeepSeek Harness 自定义模型 API 表单:Provider ID wanapis、API 地址 https://api.wanapis.com/v1、协议 OpenAI Chat Completions,模型 deepseek-v4.1-flash 的上下文窗口为 1000000](https://wanapis.com/docs/dsh-add-provider-zh.png)

*填好后的完整表单。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 一样,所以给这四个选项就够了。

![DeepSeek Harness 模型选择器的推理等级菜单:Off、Low、High、Max](https://wanapis.com/docs/dsh-effort-menu-zh.png)

*声明后,推理等级可以选 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、接口地址和单次请求最多搜索次数,没有「模型」这一项,所以模型只能写在配置文件里。

![DeepSeek Harness 插件 → 网页搜索设置页:接口地址为 https://api.wanapis.com/v1,显示已配置密钥](https://wanapis.com/docs/dsh-web-search-settings-zh.png)

*改完配置文件后,接口地址显示为 WanAPIs,API Key 显示「已配置密钥」*

### 9. 试一次联网搜索,留意费用

新开一个会话,问一个需要查资料的问题。回答里带来源链接,就是搜索真的执行了。每次搜索约 ¥0.1(搜索费约 ¥0.091,加上 token)。注意 Agent 回答一个开放问题时可能连续搜好几次:我们实测一个宽泛的问题搜了 7 次,约 ¥0.7。想省钱就在提问里写「只搜一次」。控制台日志里,每次搜索都是一条单独的 deepseek-v4.1-flash-1017 记录。

![DeepSeek Harness 对话:只搜一次网页,回答 DeepSeek-V4.1-Flash-1017 的发布时间并附来源链接](https://wanapis.com/docs/dsh-web-search-chat-zh.png)

*实测:限定只搜一次,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 是编码智能体,建议选支持工具调用的模型。

---

本文由 WanAPIs 官网生成,和网页版内容同步。全部教程的 Markdown 目录:https://wanapis.com/docs/index.md
