前言¶
讓智能體操作 Windows 桌面,難點不在「點一下」,而在三件事:模型拿到的截圖可能拍錯了窗口;微信、Electron 這類自繪界面沒有無障礙樹,element_index 路徑走不通;刪除、支付這類操作如果沒有確認環節,出錯就沒有回頭路。常見的做法要麼純靠截圖猜座標,要麼要求目標應用提供完整的 UI Automation 樹,兩者在真實桌面上都不穩定。
下面介紹 dsh-computer-use-windows,一個面向 DeepSeek Harness(DSH)的插件。DSH 的理念是「一切皆插件」,這個插件補的正是 Windows Computer Use 這一塊:窗口發現、UI Automation 元素操作、遮擋感知截圖、3x3 網格視覺定位,外加風險操作審批。
這是什麼¶
dsh-computer-use-windows 由 nanbbb 維護,當前版本 0.2.1,MIT 許可證。一句話定位:爲 DeepSeek Harness 提供帶安全門禁的 Windows Computer Use 工具,視覺定位兼容 ModLens。
使用前有幾個前提:
- 僅面向 Windows 10/11 x64(MVP 階段);
- Node 版本要求 >= 22.19(來自 package.json 的 engines 字段);
- 原生輔助程序自帶 .NET 運行時,完全自包含,無需單獨安裝;
- 必須保持
@liustack/modlens啓用,本插件不重複也不替代它的視覺提供方。
核心功能¶
窗口發現與前臺輸入¶
computer_list_windows 做 Windows 窗口發現,操作前插件會把目標窗口激活到前臺,再執行點擊、打字和按鍵。
UI Automation 與遮擋感知截圖¶
標準控件走 UI Automation:插件返回元素髮現結果和焦點狀態,操作綁定 element_index。窗口截圖是遮擋感知的:窗口空白或被遮擋時,原生輔助程序會重新激活該窗口並重試;仍然被遮擋則報明確錯誤,而不是返回錯誤窗口的截圖。
ModLens 兼容的 3x3 視覺定位¶
computer_observe 返回標註 A1-C3 的 grid_screenshot_path。對沒有無障礙樹的自繪 UI,用 modlens_read_image 讀網格,選定單元格後 computer_zoom 逐級放大,重複直到區域足夠小再點擊。
綁定觀測快照的操作¶
元素和座標操作都綁定觀測快照:element_index 與座標只在快照有效期內可用,快照過期即失效,避免對着過時的界面執行操作。
審批與托盤喚醒¶
風險操作通過 DeepSeek Harness 的一次性審批提示確認。托盤喚醒由 computer_hotkey(如 ctrl+alt+w)和 computer_tray 負責。
安裝與啓用¶
從 npm 安裝:
npx -y @deepseek-ai/dsh plugin --profile web add dsh-computer-use-windows
或從 GitHub 安裝:
npx -y @deepseek-ai/dsh plugin --profile web add github:nanbbb/dsh-computer-use-windows
安裝後需要重啓 DeepSeek Harness 纔會生效。想從源碼構建,先跑驗證和打包,再把生成的 tgz 安裝進 DSH:
npm run verify
npm pack
npx -y @deepseek-ai/dsh plugin --profile web add C:\absolute\path\to\dsh-computer-use-windows-0.2.1.tgz
同樣,安裝後重啓 DeepSeek Harness。
配置¶
配置寫在 cordis.patch.yml 的 config 字段,均可選,有默認值:
| 字段 | 默認值 | 說明 |
|---|---|---|
observationTtlMs |
120000 |
觀測快照有效期(毫秒),過期後 element_index / 座標失效 |
maxAccessibilityElements |
300 |
單次觀測返回的 UI Automation 元素上限 |
screenshotDirectory |
auto |
截圖輸出目錄;auto 表示系統臨時目錄 |
requireApprovalForTyping |
false |
設爲 true 時所有打字操作強制走審批 |
allowedApps |
[] |
進程白名單;非空時只允許這些進程名(不含 .exe,如 ["notepad","chrome"]),其餘全部拒絕 |
allowedExternalLabels |
[] |
允許降級「發送/提交」類標籤的名單(子串匹配、不區分大小寫,如 ["發送","send"]) |
allowedExternalLabels 只能放行 external 類的發送/提交標籤,命中時按模型的顯式 risk 處理;刪除、支付、登錄類操作不在放行範圍,永遠升級到審批。
典型用法¶
計算器任務¶
示例任務:用 Computer Use 打開已有的計算器窗口並計算 19 × 7,不操作其他應用。流程爲:
1、computer_list_windows 選定唯一返回的窗口;
2、computer_observe 獲取觀測快照;
3、執行一次操作;
4、再次 computer_observe 確認結果。
無無障礙樹的自繪 UI¶
微信、Electron 這類自繪界面拿不到 element_index,走截圖路徑:
1、computer_observe 拿到 grid_screenshot_path;
2、modlens_read_image 讀網格,選定 A1-C3 中的目標單元格;
3、computer_zoom 放大該區域,重複直到區域足夠小,再點擊。
ModLens 可能超時或不精確:讀不到就重試,並用 computer_zoom 交叉覈對,不要只信單次網格結果。標準控件仍應走 UI Automation 的 element_index 路徑。
喚醒托盤裏的微信¶
微信是隱藏到托盤而不是最小化,先喚醒再觀測:
computer_hotkey: ctrl+alt+w
或者用 computer_tray。不要依賴輔助程序去揭示一個空白窗口。
適用場景與注意¶
適合的場景:在 Windows 10/11 x64 上,需要讓智能體操作真實桌面應用(標準控件與自繪 UI 混合)的開發者。MVP 階段平臺範圍只有 Windows 10/11 x64。
使用前有幾件事必須清楚:
1、這是前臺模式。操作前會把目標窗口激活到前臺,物理鼠標移動到操作點,不能後臺運行。代理工作時不要同時使用這臺機器。
2、安全模型是失敗關閉(fail closed)。風險調用使用 Harness 審批服務,缺少審批支持時直接失敗;屏幕上出現的指令永遠不算用戶授權。
3、原生輔助程序會拒絕一批請求:不可見窗口、無效句柄、窗口外座標、密碼控件、終端窗口、認證 UI、鎖定桌面。
4、插件以當前 dsh 進程的權限運行,它能做什麼取決於你啓動 DSH 的環境。安裝前建議檢查源碼與許可證,本插件爲 MIT。
結尾¶
回顧一下:dsh-computer-use-windows 把窗口發現、UI Automation、遮擋感知截圖和 3x3 網格視覺定位組合起來,用觀測快照約束操作、用審批服務兜底風險,在 DSH 插件體系裏補齊了 Windows Computer Use 這一塊。經過上面的安裝、配置和示例流程,可以在自己的工作流裏直接試一遍。
- 社區插件目錄頁:https://www.skillhub.cn/plugins/nanbbb/dsh-computer-use-windows
- GitHub 倉庫:https://github.com/nanbbb/dsh-computer-use-windows
目錄頁是社區獨立站點,與 DeepSeek、幻方沒有官方從屬關係。