Web Bridge — DSH 插件:真實瀏覽器自動化

在智能體開發中,讓 agent 擁有真實的瀏覽器能力是常見需求。Web Bridge 是一個 MCP server 插件,利用真實瀏覽器(Chromium/Firefox/WebKit)提供導航、點擊、填表和截圖能力。它通過無障礙樹快照來識別頁面元素,使 agent 能夠精確操作頁面而無需依賴視覺模型。

這是什麼

Web Bridge 是一個基於真實瀏覽器的自動化工具。它使用 TypeScript 編寫,運行在 Node.js ≥ 20 環境下,通過 MCP 協議(stdio 傳輸)與 DSH 通信。其核心機制是將網頁渲染爲無障礙樹快照,併爲 DSH 暴露 22 個 web_ 前綴的工具。

核心能力

  • 真實瀏覽器驅動:支持 Chromium、Firefox 和 WebKit,默認使用 Chromium。
  • 無障礙樹驅動:web_snapshot 生成帶引用編號的頁面結構,實現精確交互。
  • 頁面交互:支持點擊、填表、下拉選擇、懸停、滾動、鍵盤輸入等操作。
  • 視覺能力:支持視口、全頁、元素截圖,格式支持 PNG/JPEG。
  • 腳本執行:可在頁面上下文中執行 JavaScript,並自動處理循環引用、BigInt 等類型的清洗。
  • 多標籤頁與精細等待:支持標籤頁的創建、切換、關閉,以及按加載狀態、元素狀態、URL 或固定時長進行等待。
  • 會話管理:支持持久化用戶數據目錄,並可通過 web_shutdown 釋放資源。

安裝與啓用

安裝前請確保 Node.js 版本 ≥ 20。

在 DSH 中通過插件命令添加:

dsh plugin --profile demo add github:JohnXu22786/browser-automation

該命令會將插件添加到 demo 配置文件中。安裝完成後,插件將自動加載並初始化瀏覽器進程。

典型用法

配置管理

Web Bridge 的配置優先級爲:默認值 < 配置文件 < 環境變量。

  1. 配置文件:在項目根目錄創建配置文件,如 web-bridge.config.json。
    {
      "browser": { "name": "chromium", "headless": true, "viewport": { "width": 1280, "height": 720 } },
      "context": { "ignoreHTTPSErrors": false, "permissions": ["geolocation"] },
      "timeouts": { "action": 10000, "navigation": 60000, "settle": 500 },
      "sandbox": true,
      "testIdAttribute": "data-testid"
    }
啓動命令:`node dist/index.js --config web-bridge.config.json`。
  1. 環境變量:通過 WEB_BRIDGE_ 前綴的環境變量覆蓋配置。
    • WEB_BRIDGE_BROWSER:指定瀏覽器引擎。
    • WEB_BRIDGE_HEADLESS:控制無頭模式。
    • WEB_BRIDGE_VIEWPORT:設置視口大小。
    • WEB_BRIDGE_ACTION_TIMEOUT:單次操作超時時間(毫秒)。
    • WEB_BRIDGE_NAV_TIMEOUT:導航超時時間。
    • WEB_BRIDGE_SETTLE_MS:操作後等待異步任務 settled 的時間。

工具調用示例

  • 導航:web_open 用於打開 URL,支持 http/https/file/data 協議。
  • 獲取快照:web_snapshot 返回頁面的無障礙樹結構,元素帶有引用編號,用於後續精確定位。
  • 交互:web_click 使用引用編號或選擇器點擊元素;web_fill 用於填表。
  • 截圖:web_screenshot 可截取視口、全頁或指定元素。

適用場景與注意

該插件適合需要高精度頁面操作、處理複雜表單或執行動態網頁腳本的場景。

權限與安全提示:
* 插件以當前 DSH 進程的權限運行。
* Navigation 工具會觸發真實的網絡請求和頁面渲染。
* Interaction 工具會觸發鼠標事件和腳本執行。
* 在安裝前,請務必檢查插件的源碼和許可證(MIT)。

總結

Web Bridge 通過真實瀏覽器和無障礙樹快照機制,爲 DSH 提供了可靠的瀏覽器自動化能力。它支持精細的交互控制和會話管理,適合構建需要與 Web 應用深度交互的智能體。

瞭解更多:插件目錄 | GitHub 倉庫

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

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

小夜