DeepSeek Harness 理念是「一切皆插件」。在 WSL 環境中開發智能體時,若要操作宿主機的 Windows 圖形界面,通常需要繞過權限隔離或尋找複雜的 IPC 通道。下面介紹 dsh-wsl-uia 插件,它直接從 WSL 內部提供 Windows UI Automation(UIA)的觀察與操作能力。
插件定位¶
這是一個由用戶 173787247 維護的插件。它允許在 WSL 中枚舉頂層窗口,讀取受控範圍的元素樹,並使用基於觀測的句柄來識別元素。它屬於 dsh-wsl-kit 的一部分。
核心功能¶
該插件提供了以下能力:
- 枚舉頂層窗口
- 讀取受控範圍的元素樹
- 支持基於觀測的句柄
- 按控件類型和可操作性查找控件
- 通過位置或名稱調用控件
安裝¶
使用官方提供的命令進行安裝:
dsh plugin --profile web add github:173787247/dsh-wsl-uia
典型用法¶
通過 uia_tree 命令進行操作。以下是幾種常見的調用方式:
列出所有頂層窗口:
uia_tree action=windows
讀取特定進程的元素樹結構,限制深度和元素數量:
uia_tree action=tree pid=1234 maxDepth=6 maxElements=200
查找可操作的按鈕控件:
uia_tree action=find controlType=Button actionableOnly=true
適用場景與注意事項¶
環境要求¶
- 插件要求 DeepSeek Harness 運行在 WSL 內部。
- 宿主機 Windows 上必須存在標準路徑的 PowerShell(插件會自行查找)。
技術細節¶
- 句柄格式:每個元素攜帶的句柄格式如
1790525657168.6,點號前的數字是觀測的時間戳(epoch),這使得基於舊句柄的引用依然可識別。 - 元素索引:在窗口存活時,元素索引不是穩定的唯一標識,兩次遍歷同一棵樹可能會得到不同的索引結果。
- 控件調用:在調用控件時,應優先傳遞
expectName參數給win_invoke,而不是僅僅依賴位置。
兼容性¶
- 插件版本:
dsh-wsl-uia0.1.0 - 依賴要求:DSH 版本 ≥ 0.1.2
- 運行環境:Node.js >= 18
結語¶
通過這個插件,可以在 WSL 環境中實現跨系統的 UI 操作。更多細節請查閱目錄頁或 GitHub 倉庫。