目录

先确认版本要求

DeepSeek Harness 目前仍处于开发者预览阶段,项目会持续迭代,版本之间可能存在兼容性变化。源码安装前,建议先看当前仓库的 package.json,不要只依赖旧截图或旧文章。

当前仓库声明:

  • Node.js:^22.19.0 || >=24.0.0
  • pnpm:11.7.0

项目官方源码运行路径如下:

1
2
3
4
5
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

pnpm run build 会准备仓库产物,pnpm dsh web 会直接使用这些产物启动 Web UI。

Node.js 可以从 官方下载页 获取。Windows 用户还需要 Git,可以参考 Git for Windows 官方安装说明

macOS:先解决 pnpm 找不到

macOS 终端先报了这个错误:

1
zsh: command not found: pnpm

它说明当前 shell 找不到 pnpm,原因可能是尚未安装,也可能是安装目录没有进入 PATH。

先确认 Node.js 版本:

1
2
node --version
npm --version

如果 Node.js 版本低于项目要求,需要先升级 Node.js。Node.js 准备好以后,可以使用 Corepack 安装仓库指定的 pnpm 版本:

1
2
3
corepack enable
corepack install --global pnpm@11.7.0
pnpm --version

如果当前 Node.js 环境没有 Corepack,也可以使用 npm 安装:

1
2
npm install --global pnpm@11.7.0
pnpm --version

确认 pnpm --version 可以正常输出后,再执行源码安装:

1
2
3
4
5
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

如果 pnpm 刚安装完成,当前终端仍然提示找不到命令,可以先重新打开一个终端窗口,或者刷新 shell 的命令缓存:

1
hash -r

macOS 的处理顺序比较简单:先满足 Node.js 版本要求,再确认当前 shell 能找到 pnpm。

Windows:先准备 Node.js 和 Git

Windows 可以使用 Node.js 官方安装程序完成 Node.js 安装。Git 可以在 PowerShell 中通过 winget 安装:

1
winget install --id Git.Git -e --source winget

安装完成后,建议关闭当前 PowerShell,再打开一个新的窗口,检查环境:

1
2
3
node --version
npm --version
git --version

如果这里的命令都能输出版本号,再进入 pnpm 安装步骤。

Windows 第一个问题:pnpm 无法识别

Windows 记录里首先出现的是:

1
pnpm : 无法将“pnpm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

Windows PowerShell 中 pnpm 无法识别

图 1:PowerShell 还没有找到 pnpm 命令。这说明问题发生在项目安装之前。

这时可以先检查系统里是否存在 pnpm:

1
2
where.exe pnpm.*
Get-Command pnpm -All

如果没有结果,说明 pnpm 尚未安装,或者安装目录没有加入 PATH。

接着尝试执行:

1
npm install -g pnpm

但这条命令又触发了 PowerShell 的脚本执行策略错误。

Windows 第二个问题:npm.ps1 被禁止运行

错误信息如下:

1
npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。

PowerShell 禁止加载 npm.ps1

图 2:npm 命令已经被找到,但 PowerShell 阻止了它对应的 .ps1 脚本。

记录中采用的处理方式是:

1
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

这里的 CurrentUser 表示只修改当前用户的 PowerShell 策略,不是修改整台电脑的系统策略。相关机制可以参考 Microsoft 的 about_Execution_Policies

修改后重新打开 PowerShell,再执行 pnpm 安装。

如果不希望调整 PowerShell 策略,也可以尝试直接调用 npm 的 Windows 命令文件:

1
2
npm.cmd install --global pnpm@11.7.0
pnpm --version

这条 npm.cmd 是备用路径,记录本身没有验证它。无论采用哪条路径,最后都应以 pnpm --version 的输出为准。

不要直接依赖 pnpm 的 latest 版本

截图中全局安装完成后显示:

1
pnpm 12.4.1

pnpm 全局安装完成并提示新版本

图 3:全局安装命令完成,并提示 pnpm 有更新版本。

但后续项目安装完成时,输出又显示:

1
Done in 1m 14.6s using pnpm v11.7.0

项目依赖安装完成并使用 pnpm 11.7.0

图 4:项目安装最终显示使用 pnpm v11.7.0。

记录里出现过 pnpm 12.4.1 和 11.7.0,但没有留下足够信息判断版本为何发生变化。与其猜测 Corepack、PATH 顺序或 pnpm shim 的影响,不如先把当前实际命令路径查清楚。

如果想确认当前 PowerShell 实际调用了哪一个 pnpm,可以执行:

1
2
3
where.exe pnpm.*
Get-Command pnpm -All
pnpm --version

为了让源码安装更容易复现,建议显式安装项目声明的版本:

1
2
npm.cmd install --global pnpm@11.7.0
pnpm --version

也可以使用 Corepack 固定版本:

1
2
3
corepack enable
corepack install --global pnpm@11.7.0
pnpm --version

pnpm 官方安装文档 会随着 pnpm 发布版本变化,文档里的 latest 不等于当前项目的固定版本。

从源码安装并启动 Web UI

确认 Node.js、Git 和 pnpm 都可以正常使用后,执行:

1
2
3
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install

第一次安装会下载较多依赖,终端会出现大量下载记录:

pnpm install 下载依赖

图 5:依赖安装过程中会持续显示下载进度和包名。

看到 WARN、更新提示或者大量下载日志时,先看命令最后是否正常结束,以及是否出现类似下面的完成信息:

1
Done in ... using pnpm v11.7.0

依赖安装完成后构建项目:

1
pnpm run build

构建过程可能会出现 chunk 较大的提示:

pnpm run build 完成但出现 chunk warning

图 6:构建完成,同时提示部分 chunk 超过建议大小;只要退出码正常,就可以继续启动。

命令正常退出并出现 built 或类似完成信息后,再启动 Web UI:

1
pnpm dsh web

启动后访问:

1
http://127.0.0.1:3080

DeepSeek Harness Web UI 启动成功

图 7:Web UI 已经启动,说明本地服务可以访问;模型配置和实际请求还需要单独检查。

怎样区分 warning 和实际失败

终端现象 判断
WARN、更新提示、下载日志 通常是信息提示,继续看最终退出状态
Done ... using pnpm v11.7.0 依赖安装完成
chunk 大小提示 构建 warning,不一定影响本地运行
ELIFECYCLEgyp ERR! 安装或构建确实失败
非零退出码 命令失败,需要继续排查
浏览器出现 Web UI 只证明本地 Web 服务启动成功

黄色 warning 不必马上中断安装,绿色下载日志也不等于构建完成。判断依据还是最终完成行和退出码。

如果遇到原生依赖编译错误

这份安装记录没有出现 node-gyp 失败;其他 Windows 用户则报告过 fs-extnode-pty 或 Visual Studio 工具链相关错误。

可以参考 DeepSeek Harness Discussion #5638。这类问题和 Node.js、pnpm、项目版本及本机编译工具有关,处理方式需要结合自己的日志判断。

排查时建议:

  1. 先确认 Node.js 版本符合仓库要求;
  2. 确认 pnpm 版本;
  3. 从日志中找到第一个实际的 gyp ERR!
  4. 不要用 --ignore-scripts 把原生依赖安装脚本整体跳过。

如果错误来自另一条 npx @deepseek-ai/dsh 安装路径,也不要和源码安装问题混在一起。社区曾报告过 Windows 上 npm 依赖解析卡死或 OOM 的情况,可以参考 Discussion #4872

最后整理成一条可复现路径

macOS:

1
2
3
4
5
6
7
8
9
10
node --version
corepack enable
corepack install --global pnpm@11.7.0
pnpm --version

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

Windows PowerShell:

1
2
3
4
5
6
7
8
9
10
11
12
node --version
npm --version
git --version

npm.cmd install --global pnpm@11.7.0
pnpm --version

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

如果 PowerShell 允许执行 npm 脚本,也可以使用:

1
2
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
npm install --global pnpm@11.7.0

这条安装路径里,最容易忽略的是环境版本和命令来源:

  • pnpm 找不到,先检查安装和 PATH;
  • npm.ps1 被阻止,先处理 PowerShell 执行策略;
  • pnpm 版本出现差异,先用 where.exeGet-Command 确认实际路径;
  • warning 不等于失败,最终退出码和完成信息才是判断依据;
  • Web UI 能打开,说明本地服务启动成功,但模型配置和请求仍需要单独验证。

参考资料