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 模型对话、跑任务
  • 项目地址:https://github.com/deepseek-ai/deepseek-harness

当前状态0.1.0-rc.6 开发者预览版,官方明说「迭代很快、会有不兼容变更」。尝鲜可以,生产环境别指望。


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

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

第一步:装 Node.js

官网下载 LTS 版安装包:https://nodejs.org

下载 .msi 文件 → 双击 → 一路「下一步」→ 装完。

验证:

node --version
npm --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 就说明起来了。

第四步:打开使用

浏览器访问 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 --version   # v24.15.0
npm --version    # 11.12.1
docker ps        # 确认 docker 可用

二、安装 dsh(含三个坑)

坑 1:npx 直跑不靠谱

官方文档说一行命令:

npx -y @deepseek-ai/dsh web

实际:国内网络下载巨慢(依赖 500+ 包),中途大概率失败。不推荐

坑 2:全局安装没权限

npm install -g @deepseek-ai/dsh
# npm 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 directory
gyp 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-scripts
# added 532 packages

启动会报缺 pty.node

Failed to load native module: pty.node
checked: build/Release, build/Debug, prebuilds/linux-x64

用 Docker 起带编译器的容器来编译它

# 1. 拉编译镜像(国内用加速源,不然等死)
docker pull docker.m.daocloud.io/library/node:24-bookworm

# 2. 容器里编译 node-pty
mkdir -p /tmp/node-pty-build
docker 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-pty
mkdir -p $DEST/build/Release $DEST/prebuilds/linux-x64
cp /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:$PATH
DEEPSEEK_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

浏览器访问 http://127.0.0.1:3080,key 生效后「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

浏览器打开 http://127.0.0.1:3080,流量走加密隧道。

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

NAS 上跑 Python 转发器,0.0.0.0:13080127.0.0.1:3080

# dsh_lan_proxy.py —— TCP 转发:0.0.0.0:13080 -> 127.0.0.1:3080
import socket, threading

def 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: pass

def 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          # 找到 pid
kill <pid>

# 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 上随时待命 → 按飞牛篇折腾(坑我都填平了,照抄即可)。

⚠️ 当前只是开发者预览版,插件生态基本空白,日常主力工具不建议迁移。等它迭代成熟了,值得再认真玩一次。有啥问题评论区交流~

DeepSeek Harness 安装教程:Windows 5 分钟上手 + 飞牛 NAS 完整架设(含踩坑实录)
https://ifmo.cn/index.php/archives/DeepSeek-Harness-NAS.html
本文作者 辣条
发布时间 2026-08-15
许可协议 CC BY-NC-SA 4.0
发表新评论