前言¶
在 DSH 生態中,瀏覽器自動化通常受限於固定的工具列表。一旦遇到未預定義的操作,腳本往往難以繼續。dsh-tmwebdriver 插件提供了一個突破性的方案:它不再限制於預設動作,而是允許智能體在已登錄的真實瀏覽器 Tab 中執行任意 JavaScript。這意味着只要開發者能在 Chrome DevTools 中完成的工作,智能體就能通過 browser_execute_js 完成,無需更新插件代碼。
插件介紹¶
dsh-tmwebdriver 是一個由 chen70456-lang 維護的 DSH 插件,隸屬於聯網工具類別。它通過集成 TMWebDriver 組件,實現了對真實 Chrome 瀏覽器的控制。其核心價值在於提供了一種“無限覆蓋”的能力——通過 JavaScript 執行,讓智能體能夠處理任何 DevTools 級別的操作,包括讀取頁面、點擊、輸入、截圖、管理 Cookies 以及驅動 CDP。
核心功能¶
該插件提供以下主要工具:
- browser_execute_js
這是核心工具。它允許在當前瀏覽器的真實上下文中執行任意 JavaScript 代碼。功能覆蓋讀取、點擊、輸入、填寫表單、導航、截圖、讀取 Cookies 以及驅動 Chrome DevTools Protocol (CDP)。 - browser_list_tabs
查看所有打開的標籤頁,返回每個標籤頁的 ID、URL 和標題。 - browser_snapshot
快速讀取頁面的文本內容。爲了防止長頁面被截斷,該工具會保留頭部和尾部的內容。 - browser_type
提供可靠的文本輸入能力,兼容 React、Vue 等現代前端框架,並支持表單提交。
安裝與啓用¶
安裝過程包含三個步驟:
- 安裝插件
使用官方安裝命令。該命令會獲取插件包及其包含的 Python 依賴、Chrome 擴展和主程序。
dsh plugin --profile web add dsh-tmwebdriver
-
重啓服務
安裝完成後,必須重啓dsh web進程才能加載新插件。 -
加載 Chrome 擴展
插件包內包含 Chrome 擴展組件。首次使用時,需要在瀏覽器中手動加載一次。插件會打印精確的路徑。如果忘記路徑,browser_list_tabs工具會提醒你具體的加載步驟。具體路徑位於包內的
assets/tmwd_cdp_bridge/目錄。
典型用法¶
該插件支持廣泛的自動化場景,包括但不限於:
- 基礎交互:讀取頁面內容、點擊元素、輸入文本、提交表單、導航至新頁面。
- 高級操作:截圖、讀取 Cookies、執行任意 JavaScript 腳本。
- 真實場景演示:插件內置演示,會打開百度,輸入天氣查詢,並讀取結果組件。
配置參數¶
安裝後,可通過配置文件調整以下參數:
| 參數名 | 默認值 | 描述 |
|---|---|---|
linkUrl |
http://127.0.0.1:18766/link |
TMWebDriver 的 HTTP 鏈接端點。 |
timeoutMs |
30000 |
單次調用的超時時間(毫秒)。 |
snapshotMaxChars |
8000 |
單次 browser_snapshot 返回的最大字符數。 |
適用場景與生態¶
該插件特別適合需要通過驗證碼、需要保持登錄狀態的網站,或者操作複雜 JS 應用的場景。由於使用真實瀏覽器指紋和原生 Cookies,它能有效繞過 Headless Chrome 常見的反爬策略(如 Baidu、Cloudflare)。
該插件集成了 GenericAgent 工具鏈的兩個組件:
* TMWebDriver master (master/tmwebdriver_master.py)
* Chrome extension bridge (assets/tmwd_cdp_bridge/)
所有代碼均基於 MIT 許可證發佈。DSH 插件目錄與 DeepSeek 或幻方無官方從屬關係。