跳到正文
AI / KALPAS工具 · 教程 · 操作记录

DOC 204 / 历史记录

DeepSeek Harness 模型反代

WorkBuddy、MiMo 手动反代部署的历史操作稿。新版插件流程见 DSH 插件配置。

01

把文稿交给 AI Agent

这一篇直接写给能操作电脑、执行终端命令的 AI Agent。把下面的操作稿交给它,让它在你的 Windows 电脑上安装 DeepSeek Harness、WorkBuddy 反代和 MiMo 反代,完成配置和测试。账号登录时,你自己操作即可。

先下载操作稿,再从 DeepSeek 官方链接下载 Windows x64 安装包。安装位置、模型和账号状态由 AI 根据你的电脑检查,不需要照搬我的路径。

02

完整操作稿

点击“复制提示词”后,直接发给 AI。文稿包含环境检查、安装、登录、模型列表修改、默认思考深度设为 Max、对话与工具测试,以及生成本机一键启停脚本的要求。

# DOC 204:给 AI Agent 的 DeepSeek Harness 反代部署操作稿

更新:2026-09-25

请直接在我这台 Windows 电脑上完成下述部署,不要只给我安装建议。目标是在 DeepSeek Harness 中使用 WorkBuddy 和 Xiaomi MiMo Desktop 账号可用的模型。你负责检查环境、安装、配置、启动和验证;需要我登录账号时,打开相应页面并告诉我操作位置,等我完成后继续。

## 一、任务范围与目录

本次只安装这三个项目:

1. DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness
2. WorkBuddy 面板版反代:https://github.com/linguo2625469/workbuddy2api-panel
3. MiMo 桌面端反代:https://github.com/LanluZ/mimo-desktop-proxy

其他反代只供以后参考,本次不安装 CLI2API,也不安装 Docker。不要购买套餐或充值;先使用我自己的账号现有额度,遇到额度或账号资格问题就把该项留待我处理,继续完成其他能做的部分。

先检查现有环境并复用已安装的程序,不覆盖已有配置。如果没有合适目录,默认把 WorkBuddy 和 MiMo 相关程序放在 `%LOCALAPPDATA%\AI-Tools`,把为它们生成的启停脚本放在其下的 `scripts` 目录,把测试工作目录设为 `%USERPROFILE%\AI-Workspace`。DeepSeek Harness 的安装目录以官方安装程序实际选择的位置为准。以下命令中的目录变量必须替换为本机实际位置,不要照搬文稿作者电脑上的 D 盘路径。

检查 PowerShell、Git 和 Node.js。Node.js 使用 22 或更高版本,必须支持全局 WebSocket;已有更高版本就直接复用。缺失时从官方来源安装,再确认新进程能找到命令。优先使用 PowerShell 7,正确处理中文和带空格的路径。

检查 WorkBuddy 的 7863 端口和 MiMo 的 8800 端口及其进程完整命令行。MiMo 还要检查 9229 调试端口,启动脚本可能使用 9222。安装 Harness 后,以该版本应用显示的本地面板地址和进程信息为准,不要预设端口或直接结束进程。已有相同服务就核对路径、配置和健康状态后复用;被其他程序占用时先定位,不能按端口直接杀进程,也不能结束所有 node.exe。

只在本机回环地址监听。密钥和登录凭据存到本机对应配置中,不要把其内容打印到聊天、加入 Git 或打进交付压缩包。若 Clash 等代理干扰本地请求,把 localhost、127.0.0.1、::1 加到本地请求的绕过列表,保留已有设置。

## 二、安装 WorkBuddy 面板版反代

仓库:https://github.com/linguo2625469/workbuddy2api-panel
发布页:https://github.com/linguo2625469/workbuddy2api-panel/releases

使用这个带面板的项目,不要误装不带面板的原上游。先看发布页和对应版本的配置示例,优先下载与本机架构匹配的 Windows 发布包。本文核对的发布包为 v1.11.2 / Windows amd64:

https://github.com/linguo2625469/workbuddy2api-panel/releases/download/v1.11.2/wb2api-panel-v1.11.2-windows-amd64.zip

该 ZIP 的 SHA256:

af506d764d5327200d6aaa9e02cbd11e65e1204aae5d2a227226608af8151b63

这组文件名和校验值只对应 v1.11.2 的 amd64 包。若选用新版本或其他架构,记录实际版本并核对相应资源,不要套用旧校验值。缺少匹配的二进制时再按该版本 README 的源码构建步骤处理。

解压到独立目录。首次部署从 `config.example.json` 创建 `config.json`,保留示例的完整结构,仅修改所需字段;已有配置先备份再合并。设置:

```json
{
  "listen": "127.0.0.1:7863",
  "api_key": "在本机生成的随机网关密钥",
  "auth_dir": "./auths",
  "state_file": "./data/state.json",
  "prompt": { "mode": "passthrough", "file": "" },
  "schedule": {
    "checkin_enabled": false,
    "travel_enabled": false,
    "activity_enabled": false,
    "blackcat_enabled": false
  }
}
```

上面是需要合并的字段片段,不是用来覆盖整个文件的配置。`api_key` 用安全随机数生成,例如 32 字节的十六进制字符串;不要使用示例中的 `test_key`。`passthrough` 用来保留 Harness 的系统指令和工具描述。这次只部署模型网关,上面的定时活动保持关闭,其余字段沿用当前版本配置。

创建 `auths` 和 `data` 目录。以安装目录为工作目录启动:

```powershell
# $WorkBuddyDir 为前面确定的实际安装目录。
Set-Location -LiteralPath $WorkBuddyDir
& (Join-Path $WorkBuddyDir 'wb2api.exe') -config (Join-Path $WorkBuddyDir 'config.json')
```

正式后台启动时使用 `Start-Process -WindowStyle Hidden`,设置 `WorkingDirectory`,分别保存 stdout/stderr 并记录 PID,不要让前台命令一直占住你的执行工具。

打开 `http://127.0.0.1:7863/panel/`,用本机网关密钥进入,点击“添加账号”,选择我的账号所属的 CN 或国际版,让我在浏览器完成 OAuth 登录。此路线不要求安装 WorkBuddy 官方桌面客户端。账号添加成功后凭据会保存并热加载;该项目的首次登录流程还会执行一次签到和余额刷新。

验证:

- `GET http://127.0.0.1:7863/healthz`,核对服务是 `workbuddy2api`;没有可用账号时可能返回 503,先检查账号状态。
- 带 `Authorization: Bearer <本机网关密钥>` 请求 `GET http://127.0.0.1:7863/v1/models`。
- 记录实际返回的 `data[].id`,保留 `cn:` 或 `global:` 等前缀。挑选本账号有可用额度的模型,不能拿面板上的简称当 API 模型 ID。
- 向 `/v1/chat/completions` 发起一次短请求,确认得到真实模型回复,再检查一次流式响应。只列出模型不算验证成功。

Harness 要用 OpenAI Chat Completions 协议。这个 WorkBuddy 项目没有实现 `/v1/responses`,不要选择 OpenAI Responses。

## 三、安装 MiMo 桌面端反代

客户端:https://mimo-ai.xiaomimimo.com/desktop/
反代仓库:https://github.com/LanluZ/mimo-desktop-proxy

先检查 Xiaomi MiMo Desktop 是否已安装,让我用自己的账号登录并确认客户端能够正常对话。若账号尚不能使用客户端,把这一步记为待处理,继续配置 WorkBuddy 和 Harness。

将反代仓库克隆到独立目录,已有仓库则先检查分支、提交和未提交修改,不要直接覆盖。当前项目使用 Node 内置模块,无需额外执行 `npm install`;如果后续版本增加依赖,按实际 package.json 和 README 处理。

阅读当前版本的 `start-mimo-proxy.cmd`、`resolve-env.cmd`、`pull_cookies.mjs` 和 `proxy.mjs`。启动流程会让 MiMo Desktop 带 `--inspect=9229` 运行,从本人客户端的运行时 Session 获取凭据,保存为本机 `cookies.json`,再启动代理。

启动脚本可能重启 MiMo 客户端。如果客户端正在执行任务,先让我结束或保存,再执行。不要为了拿凭据关闭其他无关应用。找不到 Node 或客户端时,根据 `resolve-env.cmd` 设置实际的 `MIMO_NODE`、`MIMO_APP` 路径,不要猜安装位置。

在仓库目录运行 `start-mimo-proxy.cmd`。后台包装脚本用隐藏窗口和日志,并确认启动结果。检查代理监听 `127.0.0.1:8800`;需要时设置 `MIMO_PROXY_HOST=127.0.0.1`,不要将代理或客户端调试端口开放到局域网。

若上游脚本仍用 `start /min cmd /c` 启动 Node,它会另开最小化控制台,只在外层套隐藏窗口不够。保留客户端初始化和凭据提取逻辑,将最后启动代理的环节改成 PowerShell 隐藏启动,并保留日志、工作目录和退出状态检查。

验证:

- `GET http://127.0.0.1:8800/v1/models`,当前模型 ID 为 `mimo-pro` 和 `mimo-flash`。
- `GET http://127.0.0.1:8800/health`,检查 `ok` 和 `login.logged_in`。只摘取判断所需字段,不要回显整个登录信息。
- 向 `/v1/chat/completions` 发起短请求及流式请求,确认模型实际可用。`/v1/models` 是本地静态列表,不能据此判断已经登录成功。

当前版本没有校验本地 API Key。Harness 如允许留空就留空,若表单要求填写,用 `mimo-local` 这样的非敏感占位值;不要把 MiMo Cookie 填进 API Key。

如果出现登录过期或 401/403,让本人已登录的 MiMo 客户端带调试端口运行,执行项目的 `refresh-cookies.cmd`,再检查健康状态和真实请求。客户端关闭后不能假定自动刷新一定成功。

文稿作者本机对启动脚本和请求体大小做过修改,不能把这些本地修改当作上游功能。新电脑以克隆下来的代码为准;也不要假定仓库必定自带 `stop-mimo-proxy.cmd`,需要停止脚本时由你根据实际进程路径生成。

## 四、启动 DeepSeek Harness

官方项目:https://github.com/deepseek-ai/deepseek-harness
模型提供商说明:https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md

官方 Windows x64 安装包:<https://download.deepseek.com/dsh-desk/bin/win-x64/deepseek-harness-0.1.7-rc.2-win-x64.exe>

先检查是否已安装 Harness,记录实际版本、安装位置、是否正在运行和本地面板入口。没有已安装实例时,下载并运行上述官方安装程序;文件名中的 `rc.2` 表示候选发布版,不要把它描述为稳定版。安装路径、权限请求和首次启动选项以安装程序实际显示内容为准,不能凭旧教程猜测可执行文件名、命令行参数或端口。

安装完成后,用官方安装包提供的正常入口启动 Harness,并从应用实际显示的本地面板进入。若面板没有自动打开,先检查该次安装或启动的官方提示与日志;不要从旧脚本或旧日志恢复 token URL,也不要把 token 贴到聊天。已有实例不要为了跟随此下载链接而擅自升级或覆盖。

需要停止时,使用官方安装包提供的退出方式。先确认窗口、进程路径或应用状态确实属于 Harness;端口被其他程序占用时应诊断冲突,不能按端口结束任意进程。

## 五、修改 Harness 模型列表,并把默认思考深度设为 Max

先检查已安装 Harness 的实际版本和模型设置界面。当前入口为“设置 → 模型 → 添加模型提供商 → 自定义模型 API”,优先通过这个入口保存配置。自定义提供商是 Harness 内置功能,不需要为本任务另装提供商插件。

添加下面两项;已有同用途配置则合并或修正,不要重复创建:

| 字段 | WorkBuddy | MiMo |
| --- | --- | --- |
| 提供商 ID | workbuddy | mimo |
| 显示名称 | WorkBuddy | MiMo |
| 协议 | OpenAI Chat Completions | OpenAI Chat Completions |
| 内部 api 值 | openai-completions | openai-completions |
| Base URL | http://127.0.0.1:7863/v1 | http://127.0.0.1:8800/v1 |
| API Key | 本机 WorkBuddy 网关的 api_key | 空值或 mimo-local |
| 模型 ID | /v1/models 返回的完整 ID | mimo-pro、mimo-flash |

Base URL 到 `/v1` 为止,不要追加 `/chat/completions`。获取模型列表后选择实际要用的模型,不要凭印象填超大上下文、输出上限或图片能力。模型列表和默认思考深度按下面的步骤修改。

如果不能操作界面,允许直接编辑本机配置,但先读取当前安装版本的说明和 schema,并备份现有文件。本文核对的 2026 年 9 月版本使用 `$DSH_HOME/profiles/web/cordis.patch.yml`,默认 DSH_HOME 为 `%USERPROFILE%\.dsh`;不要照旧教程新建一个当前版本不读取的 `settings.yaml`。

提供商位于 `id: llm-pi-ai` 条目的 `config.providers`。保持其他提供商和该条目的其他配置,合并同一个条目,不要追加重复 ID,也不要用只有两个提供商的片段替换整个现有配置。字段包括 `displayName`、`api`、`baseURL`、`apiKeyEnv`、`models`,模型数组里的 `id` 必须与接口返回一致。

界面添加的密钥由 Harness 凭据存储管理;直接配置时可让 `apiKeyEnv` 引用 `WORKBUDDY_PROXY_KEY` 和 `MIMO_PROXY_KEY`,在启动 Harness 的进程环境中从本机私有配置读取并设置。只在你自己的终端临时设置变量,不会改变一个已经运行的 Harness 进程;需要保存配置并有控制地重启。不要杜撰 `.credentials.yaml` 的格式。

如果代理报不支持 `developer` 角色或 `store` 字段,按当前 Harness schema 设置对应提供商的 `compat.supportsDeveloperRole: false`、`compat.supportsStore: false`。如果拒绝 `max_completion_tokens`,核对接口后再设 `compat.maxTokensField: max_tokens`。没有对应错误就不乱加兼容参数。

### 5.1 整理模型列表

进入“设置 → 模型”,分别点击 WorkBuddy、MiMo 右侧的“编辑”。在模型目录中获取可用模型,勾选需要的条目,添加后保存。WorkBuddy 使用接口实际返回的完整 ID;MiMo 保留 `mimo-pro` 和 `mimo-flash`,显示名称可设为 `Mimo-Pro`、`Mimo-Flash`。显示名称可以修改,模型 ID 和提供商 ID 不要随意改名。

清理本次添加的重复、拼错或验证失败的模型条目,保留用户原有的其他提供商。直接编辑配置时,修改 `config.providers.<提供商ID>.models` 数组;该数组会替换该提供商的模型目录,因此要保留仍需使用的完整列表。保存后回到输入框的模型菜单,逐项确认新列表已经出现。

### 5.2 设置 Max,并保存为新对话的默认值

目标是以后新建对话直接使用 Max。要同时处理以下三项:

1. **模型可选档位**:在 `llm-pi-ai` 对应模型的 `reasoningEfforts` 中声明 `max: max`,保留已验证的其他档位。自定义模型没有声明推理档位时,输入框可能根本不显示“推理等级”。先核对代理的实际参数支持,不要只改显示名称,也不要把 `max` 映射成 `high` 后声称已经设为最高档。
2. **提供商默认值**:在 WorkBuddy、MiMo 对应提供商下设置 `reasoning: max`。这个字段与 `models` 同级,是会话未指定档位时的默认值。让该提供商下保留的模型与默认档位相容;某个模型不支持时单独报告,不能悄悄降低全局默认值。
3. **新对话默认选择**:在输入框右下角打开模型菜单,选定默认模型,再进入“推理等级 → Max”。DSH 会把模型和档位一起保存为新对话的默认选择。优先沿用用户原本的可用默认模型;首次部署可用 `mimo / mimo-pro`,MiMo 尚不可用时选一个已验证的 WorkBuddy 模型。

如需直接改配置,新对话默认选择对应 `agent-default-model`,使用 `provider`、`model`、`reasoningEffort` 三个字段。例如默认选择 MiMo-Pro Max:

```yaml
- id: agent-default-model
  config:
    provider: mimo
    model: mimo-pro
    reasoningEffort: max
```

下面展示 MiMo 提供商里的相关字段。将它们合并到已有提供商配置,保留 Base URL、密钥引用、兼容设置和其他模型;不要用这个片段覆盖整个提供商:

```yaml
reasoning: max
models:
  - id: mimo-pro
    name: Mimo-Pro
    reasoningEfforts:
      max: max
  - id: mimo-flash
    name: Mimo-Flash
    reasoningEfforts:
      max: max
```

以上模型片段只展示 Max,已有可用档位要一并保留。WorkBuddy 同样按实际模型 ID 合并这些字段。若用户原有默认模型走的是内置 DeepSeek 提供商,则修改 `llm-deepseek` 的 `config.reasoningEffort: max`,并确认 `config.thinking: enabled`;如果仍是 `disabled`,推理菜单只会显示 Off。不要把 `llm-pi-ai` 的字段套过去。

保存后读取 `agent-default-model` 条目,核对三项默认值已经落盘。点击原本已经选中的 Max 不会再次保存;这种情况直接合并默认配置,或先切换到另一个支持的档位再选回 Max。如果当前对话显示 Max、新对话却不是,检查 `$DSH_HOME/cordis.patch.yml` 或启动参数 `--patch` 是否覆盖了 `profiles/web/cordis.patch.yml`,在实际生效的配置层修正。

刷新页面,新建一个对话,确认右下角显示选定的模型和 `Max`,菜单中的“推理等级”也是 `Max`。再切换到另一个已配置模型,确认它也默认选 Max;切换模型会采用新模型自己的默认档位,因此不能只修改 `agent-default-model`。检查完成后,选回要交付的默认模型与 Max,再完成后面的短对话和工具测试。已有对话可能保留原来的模型与档位,要检查时单独切换;不能用旧对话判断新默认值有没有生效。配置默认值只保存一组模型与档位,后续手动选择其他模型或档位时也会更新它。

验收时分别记录界面的 Max、实际发给代理的推理参数,以及代理是否继续传给上游。WorkBuddy 会按模型能力表调整部分模型的档位;MiMo 的 Chat Completions 会透传该参数,上游是否采用要另行核对。参数不被支持时说明具体模型与错误,保留已经通过验证的部分。

## 六、验证到真正能干活

分别验证 WorkBuddy 和 MiMo;每个待交付模型都要记录实际结果,未测试的模型明确列为未测试。

1. 代理层:确认进程路径、监听地址、健康检查、实际模型 ID,以及短对话和流式响应。HTTP 200 或模型列表成功不能代替推理验证。
2. Harness 层:刷新页面并新建本地任务,确认默认模型与 Max 已保存;分别选择待验证模型,让它回复一个简短结果,确认实际调用了选定模型与档位。
3. 工具层:在测试目录中,让 Harness 创建一个原本不存在的小文件,内容为 `agent-check-ok`,再调用工具读回。WorkBuddy 和 MiMo 分别用不同文件名;已有同名文件时换一个名字。检查磁盘内容和任务中的工具调用记录,不能把模型口头说“已创建”当作成功。
4. 如对话成功但工具调用失败,保留日志并检查 `tools/tool_calls`、系统提示透传和模型能力,再修正配置复测。不要直接宣布部署全部完成。

只做必要的短测试,避免反复消耗账号额度。遇到失败按层定位:

- 连接拒绝:查进程退出码、日志、端口和本地代理绕过配置。
- WorkBuddy 网关 401:查网关密钥;上游登录失败则回面板检查账号。
- MiMo 上游 401/403:查客户端登录与 Cookie 刷新流程。
- 404:查 Base URL、API 协议和模型 ID,尤其是 WorkBuddy 模型前缀。
- 429 或额度不足:检查本人账号额度和模型可用性,不能靠不停重试解决。
- 413:检查当前代理版本的请求体限制,先用小任务验证,再按错误证据调整。

## 七、生成本机一键启停脚本并交付

在已确定的 scripts 目录中生成适用于本机实际路径的 `WorkBuddy Panel.ps1`、`WorkBuddy Stop.ps1`、`MiMo Proxy.ps1`、`MiMo Stop.ps1`、`Start All.ps1` 和 `Stop All.ps1`。Harness 使用官方安装包提供的启动与退出方式,不要新建、下载或调用旧教程中的 DeepSeek 脚本。

要求:

- Start All 先启动或复用 WorkBuddy、MiMo,等待各自可用并提示 Harness 应通过官方应用单独启动;失败项返回明确结果。账号登录未完成时报告待处理,不能假报成功。
- 启动服务使用隐藏窗口,保存日志和 PID;重复执行不会重复启动实例。
- Stop All 只停止本次部署对应的 WorkBuddy、MiMo 服务。逐项核对 PID、可执行文件及完整命令行,MiMo 必须匹配本安装目录的 `proxy.mjs`;不要仅凭 node.exe 名称或端口结束进程,也不要替代官方方式关闭 Harness。
- 停止代理不等于关闭我自己打开的 MiMo 客户端;不要为了停止反代强制结束客户端里的任务。
- 路径从脚本所在目录或本机配置解析,带空格也能运行。分别记录服务是否原本就在运行,启停验证不要中断无关服务。
- 如果某项因账号登录或资格尚未完成,把状态保存在本机部署说明中,让一键脚本明确跳过并提示,不要因这一项阻塞其他已可用服务。

最后给我一份简短交付记录:实际安装路径、版本或提交号、代理启停脚本位置、Harness 的官方启动与退出入口、面板入口、修改后的模型列表、默认模型与 Max 的保存结果、对话/流式/工具测试结果,以及仍需我处理的事项。注明每个服务当前是否运行;密钥只记录保存位置,不贴出值。留下可继续使用的已验证服务。
03

模型列表与默认 Max

让 AI 在“设置 → 模型 → 编辑”中整理 WorkBuddy、MiMo 的模型列表,保存后检查输入框的模型菜单。MiMo 使用 mimo-pro 和 mimo-flash,WorkBuddy 使用接口返回的完整模型 ID。

默认思考深度设为 Max。操作稿会让 AI 同时配置模型的可选推理档位、提供商的默认档位,以及新对话的默认选择。最后刷新页面并新建对话,确认输入框右下角显示对应模型和 Max,再完成实际测试。

已有对话可能保留原来的档位;后续在输入框里手动选择模型或推理等级,也会更新新对话的默认值。完整配置字段和操作步骤已包含在上面的文稿中。

04

项目与接口速查

以下是文稿采用的项目。WorkBuddy 和 MiMo 都通过 OpenAI Chat Completions 接入 Harness,Base URL 填到 /v1 为止。

WorkBuddy 使用本机网关密钥和接口返回的完整模型 ID;MiMo 当前使用 mimo-pro、mimo-flash。能获取模型列表后,还要实际完成对话和文件读写测试。

操作稿根据 2026 年 9 月 25 日的项目与官方 Windows 安装包整理。部署时会让 AI 核对实际版本,已有配置会保留并合并。

05

其他反代项目

CLI2API 聚合了 Qoder、WorkBuddy、Trae 等服务,仓库还列有实验性的 Devin 接入。它的部署方案需要 Docker,这里只列出来,操作稿不会要求 AI 安装。

我本机的 Start All.ps1 和 Stop All.ps1 包含固定路径,因此这里让 AI 按你的实际安装目录生成。DeepSeek Harness 请使用官方安装包提供的启动与退出方式,不再复用教程脚本。