龍爪控制:DSH Desktop 的瀏覽器與桌面自動化工具

前言

在 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"}}

桌面流程

  1. 使用 windows 找到窗口
  2. 使用 a11y 讀取控件,獲取 a11y_id、element_id
  3. 使用返回的句柄執行 set_element_value 等動作
  4. 讀取新狀態

按需截圖

默認情況下,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 倉庫。

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

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

小夜