dsh-computer-use-native:基於視覺模型的 Windows 桌面控制插件

前言

在使用 DeepSeek Harness (DSH) 爲視覺模型接入 Windows 桌面控制時,傳統基於 UI Automation(可訪問性樹)的自動化方案在現代應用上表現不佳。Chromium、WebView2 和 Electron 窗口幾乎不暴露可訪問控件,導致基於樹的工具無法讀取界面內容。

dsh-computer-use-native 插件通過截圖獲取真實渲染像素,利用 Win32 FFI 直接驅動窗口,解決了這一痛點。它不依賴可訪問性樹,默認將輸入消息發佈到目標窗口隊列,保持桌面焦點不被搶佔。

是什麼

這是一個爲 Windows 桌面自動化設計的 DSH 插件,專爲視覺模型設計。它通過 PrintWindow 和 PW_RENDERFULLCONTENT API 截取真實桌面或窗口像素,將圖像輸入給模型,再由插件將圖像座標轉換爲屏幕座標執行操作。

核心功能

插件提供以下工具:

工具名稱 功能
computer_screenshot 截取桌面或指定窗口,返回圖像及視口 ID
computer_window 列出窗口、讀取幾何信息或置頂窗口
computer_click 在截圖位置點擊、雙擊或右鍵
computer_move 移動鼠標指針(用於懸停菜單)
computer_type 輸入 Unicode 文本
computer_key 發送按鍵或組合鍵
computer_scroll 在指定位置滾動滾輪
computer_drag 在兩點間拖拽

技術細節

座標映射

模型處理的是截圖,截圖可能經過縮放。插件通過 viewport 記錄圖像尺寸、來源屏幕矩形、縮放因子和窗口信息。當模型給出圖像座標時,插件通過視口將圖像像素精確還原爲屏幕座標,避免模型因縮放計算失誤導致點擊偏差。

輸入路由

所有輸入工具支持 dispatch 參數,默認爲 background(後臺)。
* background:將消息(如 WM_LBUTTONDOWN)直接發佈到目標窗口隊列,窗口不會被置頂,光標不會移動,不影響當前用戶操作。
* foreground:通過模擬真實光標移動和點擊來操作,代價更高,且可能打斷用戶。

性能優化

截圖成本主要在編碼。插件對“看”進行了優化:
* 像素差異比較:將屏幕像素縮小爲 32x20 的亮度網格,只有當差異超過 2% 時才視爲“變化”並重新截圖。
* 無變化複用:若屏幕未動,插件直接複用之前的視口,不發送圖像,也不寫入附件。首次截圖約 238ms,重複截圖約 41ms。

安裝與啓用

  1. 安裝插件:
    dsh plugin add dsh-computer-use-native
  1. 安裝指定版本(推薦,防止更新後行爲改變):
    dsh plugin --profile web add github:dao-awa/dsh-computer-use-native#1354d1d1481619c2cc0a5ecccfa8180f1a34452a
  1. 重要:安裝後必須重啓 DSH 並開始新會話。Bundles 需要在會話創建前掛載。

前提條件與注意事項

  • 運行環境:需要 Windows 10 或更高版本(x64),Node.js 22 或更高版本。
  • DSH 服務:DSH 實例需啓用 computerUse、tools、systemPrompt 和 attachments 服務。
  • 模型支持:需要配置一個接受圖像輸入的模型路由。
  • 應用兼容性:由於不使用可訪問性樹,此方案對現代應用(Chromium、WebView2、Electron)有效,但傳統基於樹的工具在這些應用上會失效。
  • 共存衝突:與 computer-use-win (MCP) 服務器同時使用會造成工具重疊和混淆,建議二選一。
  • 權限:插件以當前 DSH 進程權限運行,使用前請檢查源碼與許可證(MIT)。

總結

dsh-computer-use-native 提供了基於像素的 Windows 桌面控制能力,通過視口座標映射和後臺輸入分發,在保證準確性的同時降低了交互成本。對於需要視覺模型操作現代 Windows 應用的場景,它是目前可行的技術方案。

項目地址:https://github.com/dao-awa/dsh-computer-use-native

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

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

小夜