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 理念是「一切皆插件」,社區目錄提供獨立的插件檢索與發佈服務。