如果你是个 AI Agent / 模型开发的人,最近应该没少听说DeepSeek Harness。简单说,它是一个围绕 DeepSeek 模型打造的、可以自托管、能插件的智能体运行框架——所有能力都是插件,你想让它干什么,装个插件就行。
但网上的资料大多是讲"它是什么、架构怎么样",真正讲"我到底怎么把它跑起来"的少。这篇就是纯实操,从零开始,把我自己走过的路完整记录下来——装依赖、起服务、装插件、管插件,一条龙。
先给结论:整个上手过程,就三步——装好 Node、起一个 web 服务、往里加插件。下面一步步来。
文章目录
- 一、先把依赖装好
- 二、把它跑起来:最省事的方式
- 三、另一种打开方式:绑定本机回环地址
- 四、先搞懂 Profile 是什么
- 五、装插件:四步走
- 5.1 配置允许构建的白名单
- 5.2 交互式批准 node-pty
- 5.3 添加插件
- 六、管插件:查看和卸载
- 查看已装的插件
- 卸载插件
- 七、想玩更多?插件生态探索
- 一句话总结
一、先把依赖装好
Harness 是 Node 生态的东西,先确认本地的 Node 和 npm 版本够不够新:
node-v# v22.23.2npm-v# 10.9.8Node 22 以上的版本基本都没问题。版本太老的话,先升级 Node 再继续,不然后面装插件容易各种报错。
二、把它跑起来:最省事的方式
Harness 的官方启动命令非常简单,一条 npx 就完事:
npx @deepseek-ai/dsh web但这里有个实际的场景问题:Harness 通常装在你的远程服务器上,而你人在本地电脑。这时候你不想把 3080 端口裸暴露到公网,最稳妥的办法是走 SSH 隧道(端口转发):
ssh-L3080: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--host127.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 的插件机制依赖它):
corepackenablepnpmpnpm--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:true5.2 交互式批准 node-pty
然后进入 Profile 目录,运行:
cd~/.dsh/profiles/webpnpmapprove-builds执行后会出现一个交互式列表,让你勾选允许执行 build script 的依赖。找到node-pty,选中它,确认。
终端操作方式:
↑ / ↓移动光标,Space选中,Enter确认。
这个node-pty很关键——它是给 Harness 提供"真实终端能力"的依赖,不批准它,很多功能跑不起来。
5.3 添加插件
批准完构建,就可以正式装插件了:
# 装一个更好的侧边栏 UIdsh pluginaddgithub:omdsh-dev/DSH-better-sidebar--profileweb# 装一个"文件引用"增强插件dsh pluginaddgithub:FSMargoo/dsh-at-file--profileweb# 装一个网页 UI 增强插件dsh pluginaddgithub:zhu1090093659/dsh-web-ui--profileweb每个插件后面都带了--profile web——再次强调,这就是装到"web"这个 Profile 里,别漏掉。
注:上面的插件地址是示例,实际以你搜到的官方仓库地址为准。
六、管插件:查看和卸载
查看已装的插件
三种方式任选:
dsh plugin list--profileweb npx @deepseek-ai/dsh plugin list--profilewebcat~/.dsh/profiles/web/package.json前两条是命令行的正规姿势,第三条是直接看 Profile 的 package.json——插件本质上就是 npm 依赖,看文件最直观。
卸载插件
npx @deepseek-ai/dsh plugin remove dsh-better-sidebar dsh-at-file dsh-web--profileweb可以一次卸载多个,空格分隔就行。
七、想玩更多?插件生态探索
装完基础三件套,你还可以去社区挖更多插件。比如:
# 探索式装插件:--profile 用 add 子命令dsh plugin--profilewebadd@wxg-prc-cpg/dsh-weknora# 或dsh plugin--profilewebadddsh-contextHarness 的插件生态是它最大的想象空间——一切能力皆插件,你的 Harness 想变成什么样,全看你想往里装什么。
一句话总结
DeepSeek Harness 上手,就是"装 Node → 起服务 → 加插件"三步。Profile 是隔离环境的容器,插件是扩展能力的积木,SSH 隧道是安全访问的桥。把这三样搞明白,Harness 就算真正上手了。
装好之后,你可以开始研究它的内部流程了——Harness 基于 Cordis 框架、一切能力皆插件、请求怎么进来、Turn 和 Step 怎么流转,这些我整理在另一篇《DeepSeek Harness 请求处理流程》里,看完这两篇,你对 Harness 的理解就完整了。
如果这篇对你有帮助,点个赞、收藏一下,评论区聊聊你还想了解 Harness 的哪部分?插件开发?还是多 Agent 编排?