DeepSeek Harness 本地部署并设置为 Windows 服务

DeepSeek Harness 本地部署并设置为 Windows 服务

_

DeepSeek Harness 是 DeepSeek 官方开源的 Agent Harness。

如果只是临时体验,直接在项目目录执行:

pnpm dsh web

就可以启动。

但如果准备长期在 Windows 本地使用,每次打开 CMD 再手动启动显然比较麻烦。

这篇文章记录一下如何从源码部署 DeepSeek Harness,并使用 NSSM 将它注册成 Windows 服务,实现开机自动启动。


一、准备环境

首先确保 Windows 已经安装:

  • Git

  • Node.js

  • pnpm

如果使用 nvm-windows 管理 Node.js,同样可以。

检查环境:

node -v
pnpm -v
git --version

二、下载 DeepSeek Harness

项目地址:

DeepSeek Harness GitHub

克隆源码:

git clone https://github.com/deepseek-ai/deepseek-harness.git

进入项目目录:

cd deepseek-harness

安装依赖:

pnpm install

编译项目:

pnpm run build

先手动测试:

pnpm dsh web

如果看到:

dsh web: http://127.0.0.1:3080

说明项目本身运行正常。

浏览器访问:

http://127.0.0.1:3080

确认页面可以正常打开。


三、下载 NSSM

NSSM 可以把普通程序注册成 Windows 服务。

这里提供一个 NSSM 2.24 的下载地址:

NSSM 2.24 下载

下载并解压,例如:

C:\nssm\

64 位 Windows 使用:

C:\nssm\win64\nssm.exe

四、确认 pnpm 路径

在 CMD 中执行:

where pnpm

例如我的环境返回:

C:\nvm4w\nodejs\pnpm
C:\nvm4w\nodejs\pnpm.CMD

因此 NSSM 中使用:

C:\nvm4w\nodejs\pnpm.cmd

如果你的路径不同,请以 where pnpm 的实际结果为准。


五、使用 NSSM 创建 Windows 服务

使用管理员权限打开 CMD。

执行:

C:\nssm\win64\nssm.exe install DeepSeekHarness

随后会弹出 NSSM 配置窗口。

Application

Path

填写 pnpm 的完整路径:

C:\nvm4w\nodejs\pnpm.cmd

Startup directory

填写 DeepSeek Harness 项目目录。

例如:

F:\Jacky\deepseek-harness

Arguments

填写:

dsh web

也就是:

Path:
C:\nvm4w\nodejs\pnpm.cmd

Startup directory:
F:\Jacky\deepseek-harness

Arguments:
dsh web

六、非常重要:配置 Corepack

这里是整个配置过程中最容易踩坑的地方。

如果直接启动 Windows 服务,日志中可能出现:

Corepack is about to download https://registry.npmjs.org/pnpm/-/pnpm-11.7.0.tgz
? Do you want to continue? [Y/n]

手动在 CMD 中运行没有问题,但是 Windows 服务没有交互式终端,无法输入 Y

结果就是:

服务卡住,DeepSeek Harness 没有真正启动。

解决方法非常简单。

在 NSSM 配置窗口中进入:

Environment

增加:

COREPACK_ENABLE_DOWNLOAD_PROMPT=0

也就是:

Variable

Value

COREPACK_ENABLE_DOWNLOAD_PROMPT

0

这个配置的作用就是:

禁止 Corepack 在服务环境中等待用户确认。


七、配置日志

继续进入 NSSM 的:

I/O

配置标准输出:

F:\Jacky\deepseek-harness\logs\stdout.log

错误输出:

F:\Jacky\deepseek-harness\logs\stderr.log

如果 logs 目录不存在,可以提前创建:

mkdir F:\Jacky\deepseek-harness\logs

这样以后服务启动异常时,可以直接查看:

F:\Jacky\deepseek-harness\logs\stderr.log

八、安装并启动服务

确认 NSSM 配置无误后,点击:

Install service

然后执行:

net start DeepSeekHarness

检查:

sc query DeepSeekHarness

如果看到:

STATE              : 4  RUNNING

说明服务已经正常运行。

然后访问:

http://127.0.0.1:3080

即可使用。


九、设置开机自动启动

执行:

sc config DeepSeekHarness start= auto

这样以后 Windows 开机时,DeepSeek Harness 会自动启动。

最终运行关系:

Windows
   ↓
DeepSeekHarness Windows 服务
   ↓
NSSM
   ↓
pnpm.cmd
   ↓
Corepack
   ↓
pnpm dsh web
   ↓
DeepSeek Harness
   ↓
127.0.0.1:3080

以后不需要再打开 CMD 手动启动。


十、如何更新 DeepSeek Harness

如果项目有新的代码,可以先停止服务:

net stop DeepSeekHarness

进入项目目录:

cd /d F:\Jacky\deepseek-harness

拉取最新代码:

git pull

重新安装依赖:

pnpm install

重新构建:

pnpm run build

然后重新启动:

net start DeepSeekHarness

十一、如何卸载 Windows 服务

如果以后不再需要 Windows 服务,可以先停止:

net stop DeepSeekHarness

然后使用 NSSM 删除:

C:\nssm\win64\nssm.exe remove DeepSeekHarness confirm

也可以使用 Windows 自带命令:

sc delete DeepSeekHarness

删除后可以检查:

sc query DeepSeekHarness

如果出现:

[SC] OpenService FAILED 1060

说明服务已经删除。

需要注意:

删除 Windows 服务不会删除 DeepSeek Harness 项目文件。

例如:

F:\Jacky\deepseek-harness

这个目录依然会保留。


十二、遇到服务无法启动怎么办?

首先查看:

F:\Jacky\deepseek-harness\logs\stderr.log

如果看到:

Corepack is about to download ...
? Do you want to continue? [Y/n]

检查 NSSM 的 Environment 是否配置:

COREPACK_ENABLE_DOWNLOAD_PROMPT=0

然后重新启动:

net stop DeepSeekHarness
net start DeepSeekHarness

正常情况下,日志应该能够看到:

$ node --import tsx/esm apps/cli/src/bin.ts "web"
dsh web: http://127.0.0.1:3080

这就说明 DeepSeek Harness 已经正常启动。


写在最后

本地部署 DeepSeek Harness,其实并不复杂。

源码部署完成后,真正需要解决的只是一个问题:

如何让它从“需要手动执行命令的开发工具”,变成“电脑开机就能自动运行的本地服务”。

NSSM 刚好解决了这个问题。

最终只需要:

Windows 开机
    ↓
DeepSeekHarness 服务自动启动
    ↓
pnpm dsh web
    ↓
http://127.0.0.1:3080

以后电脑开机,不需要再打开 CMD,也不用记得执行启动命令。

打开浏览器,就能直接使用。

对于本地运行的 AI 工具来说,这样就足够了。

我折腾了 Firefly III 和 ezBookkeeping,最后决定把它们停掉 2026-08-13
让 Claude 记住你的项目:从一次性对话到持续积累的项目经验 2026-08-19

评论区