在这里插入图片描述

如果你是个 AI Agent / 模型开发的人,最近应该没少听说 DeepSeek Harness。简单说,它是一个围绕 DeepSeek 模型打造的、可以自托管、能插件的智能体运行框架——所有能力都是插件,你想让它干什么,装个插件就行。

但网上的资料大多是讲"它是什么、架构怎么样",真正讲"我到底怎么把它跑起来"的少。这篇就是纯实操,从零开始,把我自己走过的路完整记录下来——装依赖、起服务、装插件、管插件,一条龙。

先给结论:整个上手过程,就三步——装好 Node、起一个 web 服务、往里加插件。 下面一步步来。

一、先把依赖装好

Harness 是 Node 生态的东西,先确认本地的 Node 和 npm 版本够不够新:

node -v
# v22.23.2

npm -v
# 10.9.8

Node 22 以上的版本基本都没问题。版本太老的话,先升级 Node 再继续,不然后面装插件容易各种报错。


二、把它跑起来:最省事的方式

Harness 的官方启动命令非常简单,一条 npx 就完事:

npx @deepseek-ai/dsh web

但这里有个实际的场景问题:Harness 通常装在你的远程服务器上,而你人在本地电脑。这时候你不想把 3080 端口裸暴露到公网,最稳妥的办法是走 SSH 隧道(端口转发):

ssh -L 3080:127.0.0.1:3080 user@192.168.1.100
npx @deepseek-ai/dsh web

-L 3080:127.0.0.1:3080 的意思是:把本地 3080 端口,通过 SSH 安全通道,转发到远端服务器的 3080 端口。这样你在本地浏览器打开:

http://localhost:3080/

就能访问到远端跑着的 Harness 了——全程加密,服务器端口不对外暴露,干净又安全。

小提示:192.168.1.100 是我示例的内网地址,你替换成你自己的服务器 IP。


三、另一种打开方式:绑定本机回环地址

如果你人就在服务器上操作(或者通过跳板机),想让服务只监听本机、不许外部访问,可以这样启动:

npx @deepseek-ai/dsh web --host 127.0.0.1

然后本地访问:

http://127.0.0.1:3080/

--host 127.0.0.1 就是告诉服务:只在本机回环地址上监听,外面谁也连不上。安全性拉满,适合调试场景。

两种方式怎么选?

  • 人在本地、服务在远端 → SSH 隧道 + localhost:3080
  • 人就在服务器上--host 127.0.0.1 + 127.0.0.1:3080

四、先搞懂 Profile 是什么

在装插件之前,必须搞清楚一个概念:Profile

官方文档说得比较抽象,我用人话翻译一下:

Profile 就是一套独立的 DSH 运行配置/环境。

你可以把它理解成:

  • Docker 里的一个独立容器
  • Python 里的一个独立虚拟环境(venv)

每个 Profile 有自己独立的插件集合、配置、依赖。你想实验新插件?开个新 Profile 随便折腾,搞坏了不影响主环境;不同项目用不同 Profile,插件互相不串。

后面所有插件操作,都要带 --profile web 这样的参数,指明操作的是哪个 Profile。记住这一点,后面就不会晕。


五、装插件:四步走

装插件之前,需要先把 pnpm 准备好(Harness 的插件机制依赖它):

corepack enable pnpm
pnpm --version

然后是最关键的一步——允许插件执行构建脚本

5.1 配置允许构建的白名单

插件的构建脚本默认是禁止执行的(安全考虑)。要先在配置文件里声明信任:

vim ~/.dsh/profiles/default/pnpm-workspace.yaml

加入这一行(把插件源地址加进 allowBuilds):

allowBuilds:
  dsh-better-sidebar@https://github.com/example/dsh-better-sidebar/tar.gz/xxxx: true

5.2 交互式批准 node-pty

然后进入 Profile 目录,运行:

cd ~/.dsh/profiles/web
pnpm approve-builds

执行后会出现一个交互式列表,让你勾选允许执行 build script 的依赖。找到 node-pty,选中它,确认。

终端操作方式:↑ / ↓ 移动光标,Space 选中,Enter 确认。

这个 node-pty 很关键——它是给 Harness 提供"真实终端能力"的依赖,不批准它,很多功能跑不起来。

5.3 添加插件

批准完构建,就可以正式装插件了:

# 装一个更好的侧边栏 UI
dsh plugin add github:omdsh-dev/DSH-better-sidebar --profile web

# 装一个"文件引用"增强插件
dsh plugin add github:FSMargoo/dsh-at-file --profile web

# 装一个网页 UI 增强插件
dsh plugin add github:zhu1090093659/dsh-web-ui --profile web

每个插件后面都带了 --profile web——再次强调,这就是装到"web"这个 Profile 里,别漏掉。

注:上面的插件地址是示例,实际以你搜到的官方仓库地址为准。


六、管插件:查看和卸载

查看已装的插件

三种方式任选:

dsh plugin list --profile web
npx @deepseek-ai/dsh plugin list --profile web
cat ~/.dsh/profiles/web/package.json

前两条是命令行的正规姿势,第三条是直接看 Profile 的 package.json——插件本质上就是 npm 依赖,看文件最直观。

卸载插件

npx @deepseek-ai/dsh plugin remove dsh-better-sidebar dsh-at-file dsh-web --profile web

可以一次卸载多个,空格分隔就行。


七、想玩更多?插件生态探索

装完基础三件套,你还可以去社区挖更多插件。比如:

# 探索式装插件:--profile 用 add 子命令
dsh plugin --profile web add @wxg-prc-cpg/dsh-weknora

# 或
dsh plugin --profile web add dsh-context

Harness 的插件生态是它最大的想象空间——一切能力皆插件,你的 Harness 想变成什么样,全看你想往里装什么。


一句话总结

DeepSeek Harness 上手,就是"装 Node → 起服务 → 加插件"三步。Profile 是隔离环境的容器,插件是扩展能力的积木,SSH 隧道是安全访问的桥。把这三样搞明白,Harness 就算真正上手了。

装好之后,你可以开始研究它的内部流程了——Harness 基于 Cordis 框架、一切能力皆插件、请求怎么进来、Turn 和 Step 怎么流转,这些我整理在另一篇《DeepSeek Harness 请求处理流程》里,看完这两篇,你对 Harness 的理解就完整了。


如果这篇对你有帮助,点个赞、收藏一下,评论区聊聊你还想了解 Harness 的哪部分?插件开发?还是多 Agent 编排?

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐