dsh-vimina:將 Vimina 能力集成到 DSH 原生工具中

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 的能力。開發者可通過簡單的配置與命令將其集成到工作流中,實現更精準的桌面自動化操作。

GitHub 倉庫

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

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

小夜