DSH(DeepSeek Harness)遵循“一切皆插件”的架構理念。在 Windows GUI 自動化場景下,直接調用底層能力通常需要編寫自定義橋接腳本。該插件將 Vimina(基於 .NET 8 的 Windows GUI 自動化服務)的能力註冊爲 DSH 原生工具,讓模型可直接調用掃描、點擊、輸入、按鍵、腳本控制、截圖、窗口管理及鼠標操作等能力,無需依賴視覺模型。
核心功能¶
插件通過 stdio 協議驅動 Vimina 的常駐服務(Vimina.exe serve),將底層方法映射爲 DSH 的工具。模型可見的工具共 26 個,涵蓋以下領域:
- 窗口與掃描:列出窗口、掃描前臺控件、按標題掃描、按名稱或座標查詢控件、激活窗口。
- 點擊與鼠標:按標籤點擊、座標點擊、滾動(支持滾輪)、獲取/移動/拖拽/按下/釋放鼠標。
- 鍵盤操作:輸入文本、組合鍵、按鍵按下/釋放。
- 腳本與引擎:執行/暫停/恢復/停止 VMA 腳本、查詢引擎狀態、獲取腳本日誌。
- 其他:能力自描述、截圖(支持區域截取)。
安裝與掛載¶
推薦將插件作爲 DSH profile 依賴安裝,加載器會自動掛載 cordis.patch.yml。
dsh plugin --profile web add <包名或本地路徑>
若需手動掛載,可修改 dsh.profile.bundles 或使用 --patch 參數:
dsh web --patch path/to/dsh-vimina/cordis.yml
通常無需手動配置路徑,插件會按優先級自動解析 Vimina.exe 的位置。
配置¶
插件支持以下配置項(默認值在括號內):
| 字段 | 默認值 | 說明 |
|---|---|---|
exePath |
自動解析 | Vimina 可執行文件路徑 |
timeoutMs |
60000 | 單次工具調用超時 |
exePath 的自動解析優先級如下:
1. 顯式配置:DSH 設置或 profile 中的配置。
2. 環境變量:VIMINA_EXE。
3. 自動探測:常見安裝位置(%LOCALAPPDATA%、%ProgramFiles% 等)。
4. 回退:PATH 上的 Vimina.exe。
使用與注意事項¶
瀏覽器使用限制¶
在操作 Chromium 瀏覽器時,必須遵守以下規則:
- 必須使用真實點擊:vimina_clickAt 默認 backend=false,後臺點擊對 Chromium 網頁無效,請勿使用 backend:true。
- 先滾動再掃描:網頁內容需要先滾動(vimina_scroll 或 vimina_key PageDown/End),UIA 才能暴露網頁控件,否則 vimina_scan 只能看到瀏覽器框架。
- getControlAt 命中容器:在網頁場景下,座標命中往往返回的是外層容器而非精確控件,應以 vimina_scan 結果爲準。
通用注意事項¶
- 先掃描後操作:
vimina_clickLabel依賴最近一次vimina_scan的映射,操作前需重新掃描。 - 沙箱限制:插件採用懶啓動 Vimina 進程,在受限沙箱環境中可能被
EPERM攔截。 - 無需視覺模型:
vimina_scan和vimina_getElement直接返回文本控件名,無需 OCR 或視覺模型。
典型用法示例¶
1. 區域截圖
截取屏幕左上角 (100, 200) 處寬 400 高 300 的區域並保存爲 cover.png:
vimina_screenshot({ filename: 'cover.png', x: 100, y: 200, w: 400, h: 300 })
2. 頁面滾動與掃描
滾動頁面後掃描控件:
vimina_scroll()
vimina_scan()
3. 控件操作
激活窗口並按標籤點擊:
vimina_activate()
vimina_clickLabel('提交')
總結¶
dsh-vimina 插件通過將 Vimina 的 GUI 自動化能力標準化,爲 DSH 模型提供了無需視覺模型的直接操作 Windows 的能力。開發者可通過簡單的配置與命令將其集成到工作流中,實現更精準的桌面自動化操作。