DeepSeek Harness 发布了有一段时间了,刚上线的时候遭到质疑和不理解,为什么期待已久的 Harness 竟然用了 WebUI 的方式,但你真要说,这种 WebUI 的方式,功能上其实没啥问题,但用起来其实是差点意思的。
它更像一个开发者入口:你要先在本地启动服务,再通过浏览器访问。偶尔试一下觉得没啥,但如果真要把它当成每天都用的 Agent 工具的话,你就会发现用起来没那么顺手,起码我是这么感觉的。
因为浏览器不太擅长管理一堆需要长期运行的 Agent 会话。一般我打开几个页面之后,就经常迷失在浏览器的黑暗森林里。
比如我日常就打开 81 个浏览器标签,然后分为了 10 类。。。

CLI 其实是另一种取舍。我平时习惯用 CLI 做编排,它很适合把任务串起来、脚本化,也方便接进自己的工作流。但它会把项目、会话、进程和日志都放在了终端中。开几个窗口还好,开多了以后,就得靠目录、命令历史和自己的记忆去区分每个任务,并且任务中断之后,还得自己手动恢复上下文。

所以我一直倾向于,要么用 CLI 做编排,要么直接用桌面端。
然后我就想着找一款能实现我需求的 DSH 桌面端,最近我发现了这个 GitHub 项目 dsh-desktop。
这是一个由 dataelement 社区开发的,官网:www.dshdesktop.com/

我查了一下这个社区,发现背后是 BISHENG 的团队开发的。他们主要做企业办公场景,比如知识库问答、文档审核、报告生成,还有把这些步骤组合起来的工作流。所以后面看到 DSH Desktop 开始做 PPT,我倒也能理解了。
我截图的时候,官网显示 DSH Desktop 已经有 25w 次累计安装包下载了。GitHub 上也有 5k Star,而且还在持续更新,issues 和 PR 里都有人反馈和讨论。

我抽空研究了一下这个 GitHub ,他们跟进 DeepSeek Harness 的速度确实很快。
翻了一下首个 Release,v0.1.0 的发布时间是北京时间 8 月 13 日晚上 23 点 20 分。DeepSeek Harness 的官方仓库也是当天创建的,DSH Desktop 当晚就已经有版本可以下载了。。。。
需要提一嘴的是,这是独立开源的社区项目,和 DeepSeek 官方没有直接关系
其实 Harness 市面上的桌面端已经不少了,比如 Anywhere Labs、DSH Tauri Desktop。我把三款产品放在一起对比了一下:

我比较在意的第一点,是新人上手门槛。DSH Desktop 不需要先装 Node,也不用自己执行 CLI 命令。首次配置时选服务商、填 API Key,模型列表会自动配好。对于第一次接触 Harness 的人来说,能少折腾环境,直接上手开始第一项任务。
第二点是出问题之后能不能恢复。桌面端最怕升级后配置丢了,或者某个插件把应用搞挂。DSH Desktop 做了故障诊断、Safe Mode 和升级保留配置。再加上 BISHENG 团队长期维护 AI 开源项目的经验,至少从产品设计上看,它比较重视这件事情的。
第三点是企业落地。它还有独立企业版,提供统一模型、身份与组织管理,并配合 FDE 支持与定制交付。
结合上面三个原因,我更愿意选择 DSH Desktop。
下面我就直接上手实操一波。
首先去项目官网下载对应系统的 DSH Desktop 安装包,顺手给项目一个 Star 支持一下就更好了。

下载安装之后,打开 DSH Desktop,首次配置界面会提示你输入一个 api-key,

这一步骤可以直接去 DeepSeek 上生成一个 api-key 填入。

输入完成之后,界面基本上和 DeepSeek Harness webui 是一样的,因为它直接复用了 Harness 的界面。

值得一提的是,你打开一个 session 之后,会发现多了 PPT 这部分内容。

好家伙,最近各种办公 Agent 都卷成啥样了,这个 DSH Desktop 也在卷办公场景最爱做的 PPT 吗这不是。
先来做一个 PPT 看看效果咋样。
比如我选了一个模板,我想让他给我做一个青甘大环线的自驾路线图,我看看它能做出来什么效果。
一键直出的 PPT ,审美和排版等都挺不错的。
除此之外,这个 DSH Desktop 还把两个我比较在意的入口放了进来。
一个是支持 插件市场。
这里用的是社区的 dsh-market。普通 Harness webui 也能装,桌面端把这个入口集成好了,用起来方便一些。
这里面 DSH 的插件非常多,多到什么程度,你自己感受一下。

还有一个是在 Agent 预设 这里,找到 Awesome preset 选项,

点进去之后,会打开他们的 Preset 广场。你可以理解成一个 Agent 市集或者说工作坊,别人把适合某个任务的配置整理好了,放在这里分享给大家用。
比如图像制作、科研证据整理、视频制作,都有对应的配方。你先看看介绍,再挑一个适合自己的。

这里面东西可太多了。
多的我有点看不过来,比如我找了一个 Preset ,我看看能助我做哪些事儿。

然后我复制了一下提示词并且把它放进了 DSH Desktop 中

然后我让 DeepSeek 给我做了一个动效的演示效果。为了做这个任务,竟然开了 25 个 subagent 。。。

给大家看一下实际的效果。
这些 Preset,其实就是按具体任务配好的一套 Agent 工作配置。
然后如果你不满意,你也可以改出一份适合自己的 Preset,再到广场发布自己的工作配方。

出于兴趣,我拆解了一下 DSH Desktop 的技术架构。我按项目的架构文档和源码画了一张图,看起来会直观一点。

先看上面,Electron 这里分成了两个进程。左边的 Renderer 负责显示 Harness WebUI,右边的 Main 负责创建窗口、启动 Harness,还有更新、配置修复这些桌面能力。
这两个进程之间,通过 Preload 和 IPC 通信。比如你点开系统目录选择器,或者要求重启 Harness,WebUI 会通过这条通道把操作交给主进程。Renderer 本身没有直接使用 Node.js 的权限。
聊天和任务执行走的是另一条路。 WebUI 通过本地 HTTP/RPC 调用下面的 Harness 服务,再把流式结果 Render 出来。它和上面那条桌面 IPC 通道是分开的。
下面的 Harness Runtime 也是独立进程。macOS 上用 Electron UtilityProcess,Windows 上用安装包自带的 Node.js 启动。主进程负责管它的生命周期,Harness 自己只监听 127.0.0.1 的随机端口。
所以我前面说不用手动启动了,是因为这一步被主进程接管了。后台跑的还是 DSH 的本地服务,只是不用我自己操心了
DeepSeek Harness Runtime 里面,就是 Cordis 的插件组合了。Agent Loop 负责让任务持续往下执行,Tool Registry 管工具调用和权限检查,Session Service 管会话与事件日志,模型适配器负责向 DeepSeek 或其他服务商发请求、接收响应。
这些能力通过 Cordis 的服务和事件协作。下面的 Profile、Preset 和补丁配置,决定这次运行要加载哪些插件、给 Agent 配什么能力。
DSH Desktop 自己增加的东西,也放在了 Harness Runtime 中。比如 Preset 导入导出、插件市场安装入口,还有前面用到的 PPT 插件。PPT 的界面入口和生成、导出能力各有对应模块,最后由工具生成可以继续编辑的 PPTX 文件。
架构图底部是本地数据。项目文件在你选的 Workspace 里,会话、模型配置和 Profile 放在应用数据目录,启动诊断则写进 harness.log。安装目录和这些用户数据分开,升级应用时就能保留原来的配置与会话。
右边是外部服务。模型 API 和应用更新各走各的接口。手机接入则额外经过 Mobile Bridge,需要桌面端批准配对;选了远程访问,才会用到临时隧道,Harness 本身依然只监听本地回环地址。
看完这张图,我觉得 DSH Desktop 的架构应该就清晰了:Harness 的 Agent Runtime 和 WebUI 仍在继续用,但窗口、进程、更新和配置这些事儿,由桌面宿主接管了。
对我这种已经开了 81 个浏览器标签的人来说,至少不用再去打开第 82 个了。
相关来源