乐于分享
好东西不私藏

DeepSeek Harness 安装教程:Windows 5 分钟上手 + 飞牛 NAS 完整架设

DeepSeek Harness 安装教程:Windows 5 分钟上手 + 飞牛 NAS 完整架设

2026 年 8 月 14 日,DeepSeek 官方开源了自己的 Agent 框架 DeepSeek Harness(dsh),口号是「Everything is a Plugin」——一切皆插件。本文分两篇:Windows 篇(5 分钟上手,无坑)和飞牛 NAS 篇(保姆级 + 踩坑实录,照着抄就能装好)。

这套东西是啥?

DeepSeek Harness(dsh):DeepSeek AI 官方出品的 Agent 智能体框架(开源、MIT 协议)
核心设计:一切皆插件——模型、工具、界面全部可插拔,基于 Cordis 框架
能干嘛:一个带 Web 界面的 AI 智能体环境,可以接 DeepSeek 模型对话、跑任务
项目地址:
当前状态:0.1.0-rc.6 开发者预览版,官方明说「迭代很快、会有不兼容变更」,尝鲜可以。

第一篇:Windows 安装(5 分钟上手)

Windows 是最简单的平台——因为 dsh 的依赖 node-pty(终端原生模块)在 npm 包里自带 Windows 预编译版,不需要编译、不需要 Docker、没有权限坑,一路绿灯。

第一步:装 Node.js

官网下载 LTS 版安装包:https://nodejs.org
下载 .msi 文件 → 双击 → 一路「下一步」→ 装完。
验证:
node --versionnpm --version

第二步:安装 dsh

管理员身份打开 PowerShell(Win+X → Windows PowerShell(管理员)):
npm install -g @deepseek-ai/dsh
等它装完(500+ 依赖,几分钟)。不会报编译错误,这就是 Windows 最省心的地方。

第三步:配置 API Key 并启动

$env:DEEPSEEK_API_KEY = ”sk-你的DeepSeekKey”dsh --profile web
看到 dsh web:就说明起来了。

第四步:打开使用

浏览器访问http://127.0.0.1:3080
首次打开显示「Add an API key to get started」引导页 → 说明 key 还没生效
key 配置正确的话,刷新后引导页消失,进入主界面(New Session / Workspaces / Settings)
New Session即可开始对话

Windows 常见问题

问题
解决
dsh
 不是内部或外部命令
管理员 PowerShell 重装,或检查 npm 全局路径是否在 PATH
打开是引导页 / 提示无 key
确认 $env:DEEPSEEK_API_KEY 设置后再启动
想关掉服务
直接关 PowerShell 窗口即可(Ctrl+C)

第二篇:飞牛 NAS 完整架设(保姆级·含踩坑实录)

NAS 上就没那么顺利了:node-pty 没有 Linux 预编译、系统缺 g++、npm 全局目录没权限……三个坑一个接一个。这篇全部踩过并解决了,照着抄。

一、环境准备

飞牛 NAS(fnOS,x86_64 架构)
Node.js ≥ 20(飞牛应用中心直接装,本文用 v24.15.0)
Docker(飞牛自带,后面编译原生模块要用)
node --versionv24.15.0npm --version# 11.12.1docker ps# 确认 docker 可用

二、安装 dsh(含三个坑)

坑 1:npx 直跑不靠谱

官方文档说一行命令:
npx -y @deepseek-ai/dsh web
实际:国内网络下载巨慢(依赖 500+ 包),中途大概率失败。不推荐

坑 2:全局安装没权限

npm install -g @deepseek-ai/dshnpm error The operation was rejected by your operating system.
NAS 上 /usr/lib/node_modules 属于 root,普通用户装不了。

坑 3(大坑):装到用户目录,node-pty 编译失败

npm install -g --prefix ~/.npm-global @deepseek-ai/dsh
会看到编译报错:
make: g++: No such file or directorygyp ERR! build error
原因:node-pty 的 npm 包只有 macOS/Windows 预编译,没有 Linux 的,必须现场编译,而 NAS 没装 g++(且没 root 装不了)。

三、核心解决:--ignore-scripts + Docker 编译 pty.node

先跳过所有编译脚本,装 dsh 主体:
npm install -g --prefix ~/.npm-global @deepseek-ai/dsh --ignore-scriptsadded 532 packages
启动会报缺 pty.node:
Failed to load native module: pty.nodechecked: build/Release, build/Debug, prebuilds/linux-x64
用 Docker 起带编译器的容器来编译它
1. 拉编译镜像(国内用加速源,不然等死)docker pull docker.m.daocloud.io/library/node:24-bookworm# 2. 容器里编译 node-ptymkdir -p /tmp/node-pty-builddocker run --rm -v /tmp/node-pty-build:/build -w /build node:24-bookworm bash -c ”  npm config set registry https://registry.npmmirror.com  npm init -y >/dev/null 2>&1  npm install node-pty@1.1.0 --build-from-source# 3. 把编译产物拷到 dsh 的 node-pty 目录DEST=~/.npm-global/lib/node_modules/@deepseek-ai/dsh/node_modules/node-ptymkdir -p $DEST/build/Release $DEST/prebuilds/linux-x64cp /tmp/node-pty-build/node_modules/node-pty/build/Release/pty.node $DEST/build/Release/cp /tmp/node-pty-build/node_modules/node-pty/build/Release/pty.node $DEST/prebuilds/linux-x64/

小提示:容器内 npm install node-pty 会自动触发编译(bookworm 镜像自带 g++),产物就是 build/Release/pty.node(约 67KB)。

四、配置 API Key 并启动

export PATH=$HOME/.npm-global/bin:$PATHDEEPSEEK_API_KEY=sk-你的key setsid nohup dsh --profile web --host 127.0.0.1 --port 3080 > /tmp/dsh_web.log 2>&1 < /dev/null &
验证:
curl -s -o /dev/null -w ”%{http_code}” http://127.0.0.1:3080/200
浏览器访问生效后「Add an API key」引导页消失,进入主界面。

五、远程访问(官方故意留的坑)

dsh 默认只监听 127.0.0.1。想绑定 0.0.0.0?直接拒绝:
error: --host 0.0.0.0 is intentionally not supported yet for safety:it would expose remote code execution to the network; use 127.0.0.1 instead
官方原话:暴露到网络 =公网 RCE 风险(Web UI 能执行代码)。这是安全设计,别硬来。

方案 A:SSH 隧道(推荐,安全)

你电脑上执行(NAS 的 sshd 需 AllowTcpForwarding yes):
ssh -N -L 3080:127.0.0.1:3080 用户名@NAS的IP
浏览器打开

方案 B:局域网 TCP 转发(简单,局域网内可见)

NAS 上跑 Python 转发器,0.0.0.0:13080 → 127.0.0.1:3080:
dsh_lan_proxy.py —— TCP 转发:0.0.0.0:13080 -> 127.0.0.1:3080import socket, threadingdef pipe(src, dst):    try:        while True:            data = src.recv(65536)            if not data: break            dst.sendall(data)    except Exception: pass    finally:        for s in (dst, src):            try: s.close()            except Exception: passdef handle(client):    try:        server = socket.create_connection(('127.0.0.1'3080), timeout=10)    except Exception:        client.close(); return    threading.Thread(target=pipe, args=(client, server), daemon=True).start()    threading.Thread(target=pipe, args=(server, client), daemon=True).start()s = socket.socket(); s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)s.bind(('0.0.0.0'13080)); s.listen(50)print('forwarding 0.0.0.0:13080 -> 127.0.0.1:3080')while True:    c, _ = s.accept()    threading.Thread(target=handle, args=(c,), daemon=True).start()
python3 dsh_lan_proxy.py &

⚠️ 方案 B 等价于把 dsh 暴露到局域网,仅限信任的家庭网络;绝对不要用 ddnsto / frp 把 3080 / 13080 暴露到公网。

六、卸载(装完后悔?一条龙清干净)

1. 杀进程ss -tlnp | grep 3080# 找到 pidkill# 2. 删 npm 包rm -rf ~/.npm-global/lib/node_modules/@deepseek-ai/rm -f ~/.npm-global/bin/dsh# 3. 删配置rm -rf ~/.dsh# 4. 删编译残留(root 权限删不掉的用 docker)docker run --rm -v /tmp:/tmp alpine rm -rf /tmp/node-pty-build# 5. 删编译镜像(省 1GB+)docker rmi docker.m.daocloud.io/library/node:24-bookworm

总结

对比
Windows
飞牛 NAS
安装难度
⭐ 极简(node-pty 自带预编译)
⭐⭐⭐⭐⭐(要 Docker 编译)
耗时
5 分钟
30-60 分钟
访问方式
本机直接开
锁 127.0.0.1,需 SSH 隧道/转发
适合场景
尝鲜体验
24 小时挂机跑任务
建议:想快速体验 → Windows 装一个,5 分钟跑起来;想让 AI 挂 NAS 上随时待命 → 按飞牛篇折腾(坑我都填平了,照抄即可)。
⚠️ 当前只是开发者预览版,插件生态刚刚起步,日常主力工具不建议迁移。等它迭代成熟了,值得再认真玩一次。有啥问题评论区交流~