DeepSeek Harness 桌面版:把 agent 从终端搬到桌面
桌面版给 Harness 换的不是一层皮,而是它的存在方式:从"你敲下命令才出现的东西"变成"一直在那儿的工位"。
桌面端先解决的是"它得一直在"
DeepSeek Harness(dsh)是 DeepSeek 开源的 agent harness,原本的入口是 npx @deepseek-ai/dsh web:起一个本地服务,在浏览器里用。官方下载页给桌面版的定位只有两句——支持后台运行和本地文件读写,更方便地处理长时间、复杂任务。
终端或浏览器里的 agent 只在你让它跑的那一刻存在。会话一旦离开那个 shell,你就得开始操心它还在不在。桌面版把这件事变成了默认状态:应用常驻,任务排队、继续、重跑都发生在同一个窗口里,关掉窗口不影响它继续跑。
左侧的工作区列表就是这个模型的直接体现——它列的不是"文件",是你正在用的项目,以及挂在每个项目上的会话和它们的状态。
能写本地文件,才谈得上"替你干活"
"本地文件读写"是桌面版真正的功能性增量,也是最需要说清楚边界的一条。
Harness 默认的文件策略是 workspace-write:agent 可以自由读写当前工作区,工作区之外要动文件,得由你放行。放行方式有两种——把会话的权限模式切成完全权限,或者针对具体那一条命令单独批准。默认的 workspace-write 不是不让你用,而是把每一次越界写入变成你来决定的动作。
我们写这篇文章之前刚好撞上这条线:让 agent 把 pagewell-skill 装成桌面插件,第一次尝试直接被拒(EPERM ... profiles/desktop/package.json.lock),因为安装要写进用户目录,而它在工作区之外。切成完全权限后,同一条命令 3.9 秒装完。
默认的 workspace-write 不是不让你用,而是把每一次越界写入变成你来决定的动作。
打开就能用,是因为运行时一起装进来了
不需要先装 Node、Python、pnpm,也不需要配环境——这是桌面版体验上和"命令行 + 自己搭"最直观的差别。安装包里带的是什么,看一眼本机这份 0.2.0-rc.2 的运行时清单就清楚了。
- 0.2.0-rc.2
- 本机桌面版版本官方下载页标注为持续迭代中
- Node 24
- 内置 JS 运行时附带 pnpm 11.7
- Python 3.12.14
- 内置解释器numpy、pandas、python-docx、python-pptx、openpyxl、Pillow
- 3 个
- 内置 Office 技能docx / pptx / xlsx,配内置 LibreOffice 引擎
这解释了一件容易被忽略的事:为什么桌面版里让它读一个 Excel、改一份 Word、出一版 PPT 是"直接就能干",而在裸机上你得先折腾半小时依赖。环境是产品的一部分,不是使用者的前置作业。
图形化的插件页,背后还是"一切皆插件"
官方仓库给 Harness 的一句话定义是:Everything is a Plugin,架构建立在 Cordis 之上。桌面版没有另起一套模型,只是给它加了一个入口——左侧的插件页。
命令行里的等价操作是 dsh plugin --profile desktop add <包名>。装完之后发生了什么,其实很好观察:桌面 profile 的 package.json 多出一条依赖,dsh.profile.bundles 多出一层,插件自带的 patch 就把能力接进了运行时。我们装 pagewell-skill 时走的就是这条路——技能随后出现在 agent 的技能目录里,不需要重启一整套开发环境。
这条设计线的意义在于:桌面版的能力不是等版本更新发下来的,而是可以自己组合出来的。团队可以把自己内部那套东西封成插件,装进每个人的桌面端。
什么时候用桌面端,什么时候继续用命令行
两者不是替代关系,npx @deepseek-ai/dsh web 依然是最快的试用方式。
| 桌面端 | npx @deepseek-ai/dsh web | |
|---|---|---|
| 启动方式 | 双击打开,应用常驻 | 一条命令,起一个本地服务 |
| 长任务 | 官方口径是支持后台运行,关掉窗口任务还在 | 进程跟着终端走,关掉终端要自己用 tmux 之类兜住 |
| 本地文件 | 图形化的权限模式,越界写入逐次批准 | 取决于你在哪个 shell、以什么权限跑 |
| 插件 | 插件页点一下,或者直接把仓库地址丢给 agent | dsh plugin --profile … add |
| 更适合 | 日常、长期、要碰本地文件的活 | 服务器、CI、临时试一下 |
现在还不该期待什么
Harness 整体处在 developer preview,仓库里明写着会有兼容性破坏,官方下载页也说桌面版"部分功能和体验仍在持续完善"。本机这份是 0.2.0-rc.2,可以当日常工具用,但别把它当成稳定基础设施来规划。
安装门槛也写得很明确:macOS 版本需要 Apple 芯片和 macOS 13 或更高;Windows 目前提供的是 x64 安装包。Intel Mac 用户这一轮没有官方桌面版。
上手:十分钟能做完的四件事
-
下载对应安装包
到官方下载页取 macOS(Apple 芯片、macOS 13+)或 Windows x64 的包,装完直接打开,不需要再配 Node 或 Python。
-
先看一眼权限模式
输入框右下角决定这个会话能写到哪。默认只写当前工作区,需要它动工作区外的文件时,再切到完全权限或对单条命令放行。
-
把常用的项目加进工作区
左侧工作区按项目组织会话。任务挂着跑的时候切换工作区不会打断它,回来还能接着看。
-
从插件页装第一个插件
需要什么能力先翻插件页;也可以把插件仓库地址直接发给 agent,让它装完再向你汇报装了什么。
Key points
- 桌面版的核心增量是后台常驻和本地文件读写,界面只是这两件事的外形。
- 文件权限默认只覆盖当前工作区,越界写入由你逐次决定,这是安全边界不是使用门槛。
- Node、pnpm、Python 和 Office 引擎都随安装包一起提供,"打开就能用"是环境内置的结果。
- 插件页背后仍是 Everything is a Plugin:桌面版只是给同一套插件模型加了图形入口。
- 整体处于 developer preview,适合日常使用,不适合当稳定基础设施;macOS 侧要求 Apple 芯片与 macOS 13+。
如果你只想先看看它长什么样,最快的路径是官方下载页装一个,然后把手上真实的一个任务丢进去——比如让它读一份你正在处理的表格。想从源码或命令行开始,GitHub 仓库和文档站是入口。