DeepSeek Harness(DSH)通过插件扩展能力。现有模式通常依赖 API 接口,对于没有原生 agent 接口的 GUI 软件,开发者无法直接调用。本插件在 Harness 中新增第五个模式,提供屏幕截图与鼠标键盘控制能力,用于操作没有 agent 面向接口的软件以及读取只存在于屏幕上的信息。
基本信息¶
- 插件名称:
dsh-computer-use-mode - 所有者:EvangeliMo
- 许可证:MIT
- 核心功能:屏幕截图、鼠标与键盘合成、窗口控制。
安装与启用¶
前提是安装了 DeepSeek Harness 桌面版,且运行环境为 Windows。
方式一:从 Harness 界面安装(推荐)
在插件管理页面点击「添加插件」,输入包名:
dsh-computer-use-mode
该包已发布到 npm。安装完成后必须重启 Harness,新建任务时选择「电脑操作模式」。
方式二:克隆后本地安装
git clone https://github.com/EvangeliMo/dsh-computer-use-mode.git
cd dsh-computer-use-mode
powershell.exe -NoProfile -ExecutionPolicy Bypass -File install.ps1
本插件不声明任何依赖,不需要运行 npm install。安装脚本会自动定位 profile 并将插件复制到对应目录。
核心功能¶
该模式提供两个工具:
computer:用于单步操作。支持动作包括screenshot、screen_info、windows、focus_window、click、double_click、right_click、middle_click、move、drag、scroll、type、shortcut、key、cursor、sleep、waitForChange、waitUntilStable。computer_batch:用于执行多步序列。每一步可包含sleep等等待操作,适用于「点击 → 输入 → 回车」这类机械连招。
使用示例¶
- 局部区域截图:通过
region参数截取屏幕局部,返回原生分辨率图像。 - 多块截图:通过
tiles参数将大区域一次切成最多 9 块,减少往返开销。 - 界面稳定判断:使用
waitForChange和waitUntilStable持续采样屏幕,避免通过猜测sleep时长来等待界面变化。
关键实现与约束¶
- 仅支持 Windows:该插件在 Windows 环境下运行。
- 必须重启 Harness:安装后必须重启应用才能加载新模式。
- 坐标零换算:插件在物理像素空间工作,不依赖 DPI 进行坐标缩放。输出中会明确返回
region、scale、size信息。 - 无损 JSON 输出:工具返回值必须是严格的无损 JSON。插件会对
undefined、NaN、Infinity等值进行净化处理,否则调用会失败。 - PNG 格式要求:PNG 的 IDAT 必须是 zlib 流,不能是裸 deflate。
- CommonJS 模块:入口文件必须是 CommonJS,以便通过宿主进程解析依赖。
- BOM 崩溃问题:安装脚本生成的
package.json严禁包含 UTF-8 BOM(EF BB BF),否则会导致 Harness 启动崩溃。 - 模型能力校验:如果当前模型不支持图像输入,插件会拒绝截图并报错,而不是静默替换为文本占位符。
- 不修改安装目录:插件安装到 profile 目录,不触碰 Harness 程序目录,因此 Harness 升级不会导致插件失效。
生态背景¶
DeepSeek Harness 理念是「一切皆插件」,社区目录提供独立的插件检索与发布服务。