dsh-computer-use-windows:帶安全門禁的 Windows Computer Use 插件

前言

讓智能體操作 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、幻方沒有官方從屬關係。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜