前言¶
在 DSH Desktop 中,要讓智能體完成網頁操作或桌面任務,通常需要依賴瀏覽器自動化或 UI Automation 工具。但現有方案往往存在依賴複雜、截圖開銷大、權限模型不清晰等問題。龍爪控制(dsh-dragon-control)爲 DSH 普通會話提供兩套工具:dragon_browser 專注網頁 DOM/CDP 操作,dragon_desktop 專注 Windows UI Automation 控件操作。兩者共享一個原生常駐進程,在保持校驗與急停機制的前提下,減少單步耗時。
插件定位¶
這是一個獨立社區項目,由 wangtheme-coder 維護,僅適配 Windows x64 環境。它爲 DSH Desktop 提供瀏覽器與桌面自動化能力,不隸屬於 DeepSeek 或 OpenAI。插件本身包含瀏覽器啓動層與 CDP 客戶端,不依賴其他插件;安裝後即可單獨運行。
核心功能¶
網頁操作¶
- 打開、讀取、多標籤、DOM 點擊與填表
- 條件等待、截圖及 URL 下載
- 支持按需截圖:大部分操作只返回新的窗口信息和觀察號,不抓圖;需要畫面時再用
observe(始終截圖)
桌面操作¶
- 列出和選擇窗口
- 按 UIA 控件句柄執行 Invoke、SetValue、Select、Toggle、Expand/Collapse
- 等待控件出現或消失
- 不依賴視覺模型,使用語義路線
性能與日誌¶
- 原生層常駐:
DragonNative.exe與A11yProbe.exe同進程複用 - 插件層單步(
key,含守衛)從 1.89 秒降到 0.30 秒,真實會話單步key從約 2.94 秒降到約 0.68 秒(同機 5 次,648–720 ms) - 日誌僅保留動作、耗時、結果和錯誤碼,保留 14 天,總量約 10 MiB;不記錄參數值、完整 URL、腳本或截圖
批量與權限¶
batch一次提交最多 50 步,先校驗所有步驟,依次執行、遇錯即停,並逐步記錄脫敏日誌;已執行的步驟不會回滾- 精確應用路徑、網站頂層來源的 read/control 授權
- 默認
owner模式(手動確認);auto模式跳過插件自身範圍詢問和敏感動作確認,也適用於 DSH 的 never 策略
安裝與啓用¶
環境要求:Windows x64、Node.js >=24、DSH Desktop >=0.2.0-rc2 <0.2.2-0、本機已安裝 Microsoft Edge 或 Google Chrome。
使用默認 desktop profile 時,可在兼容的 DSH CLI 中執行:
dsh plugin --profile desktop add dsh-dragon-control
也可按版本標籤安裝:
dsh plugin --profile desktop add github:wangtheme-coder/dsh-dragon-control#v0.5.4
從 GitHub Releases 下載 tgz 後,可指定本地文件:
dsh plugin --profile desktop add C:/path/to/dsh-dragon-control-0.5.4.tgz
首次執行網頁動作時,插件會查找 DRAGON_BROWSER_PATH,否則依次嘗試系統 Edge、Chrome;使用獨立配置目錄啓動,不讀取日常瀏覽器的登錄態。
非默認 profile 需要在插件行配置 profileDir,指向實際 profile 絕對路徑。插件數據默認放在 <DSH_HOME>/dragon-control,也可由用戶配置 dataDir。
更新後,先結束當前任務,再從系統托盤完整退出 DSH、重新打開並新建會話。action=status 應顯示 version: 0.5.4、backends.browser: dragon-cdp 和 supportedPlatform: Windows x64 only。
典型用法¶
獲取幫助¶
{"action":"help","args":{"action":"click"}}
桌面流程¶
- 使用
windows找到窗口 - 使用
a11y讀取控件,獲取a11y_id、element_id - 使用返回的句柄執行
set_element_value等動作 - 讀取新狀態
按需截圖¶
默認情況下,click/type/key/scroll/drag/hold/open_* 動作後只返回新的窗口信息和觀察號,不抓圖;observe(即 wait)、apps、wait 和窗口切換始終截圖。想恢復舊行爲(每步都截圖),在 ~/.dsh/dragon-control/config.json 寫:
{ "desktopShots": "full" }
或在啓動 DSH 前設置環境變量 DRAGON_DESKTOP_SHOTS=full。
批量瀏覽器示例¶
{"action":"batch","args":{"steps":[
{"action":"content","args":{"format":"txt"}},
{"action":"wait","args":{"selector":"#done","timeoutMs":1000}}
]}}
連接已有瀏覽器¶
需由用戶開啓調試端口,僅連接指定端口的 127.0.0.1,拒絕遠程端點和重定向。示例:
{"action":"attach","args":{"port":9222}}
{"action":"chrome","args":{"op":"tabs"}}
{"action":"chrome","args":{"op":"fill","selector":"#name","value":"示例"}}
{"action":"chrome","args":{"op":"click","selector":"#go"}}
{"action":"detach"}
適用場景與注意¶
- 適合需要在 DSH Desktop 中完成網頁自動化與桌面 UI 自動化的場景
- 當前爲預覽版,部分功能(文件上傳、截圖裁剪/標註、自動更新)尚未實現
- 插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證
- 文件上傳、CDP 文件傳輸、點擊觸發下載或通用另存爲對話框封裝尚未實現
總結¶
龍爪控制通過原生常駐進程與按需截圖,在保持校驗與急停機制的前提下降低了單步耗時,併爲 DSH 提供了統一的瀏覽器與桌面自動化工具。如需瞭解詳情,可訪問目錄頁與 GitHub 倉庫。