前言¶
DeepSeek Harness (DSH) 內置的 web_fetch 工具通過 HTTP 請求獲取網頁文本,無法執行 JavaScript 渲染或進行交互操作。dsh-plugin-browser 是一個社區插件,通過 Playwright 驅動無頭瀏覽器,爲模型提供了渲染頁面、提取文本、截圖以及自動化交互的能力,彌補了基礎聯網工具的不足。
插件簡介¶
這是一個 DSH 社區插件,歸屬於「聯網工具」分類,由 xu1132 維護,開源協議爲 MIT。它通過 Playwright 註冊了 6 個模型可調用的工具,使大模型能夠像人類一樣瀏覽網頁、讀取動態內容並操作頁面元素。
核心功能¶
插件提供以下能力:
- 頁面導航與渲染:打開 URL,等待頁面加載,返回渲染後的標題、正文文本和鏈接列表。
- 內容提取:獲取當前頁面的渲染文本,用於在自動化步驟之間檢查狀態。
- 交互操作:通過 Playwright CSS 選擇器點擊元素、填充文本輸入框。
- 截圖:截取視口內容並保存爲 PNG 圖片,默認保存在配置的目錄。
- 會話管理:關閉瀏覽器會話並釋放資源。
安裝與配置¶
安裝插件¶
dsh plugin --profile demo add github:xu1132/dsh-plugin-browser
依賴準備¶
插件默認使用 Playwright 自帶的 Chromium。首次使用前,需在 profile 目錄下安裝瀏覽器二進制:
npx playwright install chromium
配置項¶
可以通過 profile 下的 cordis.patch.yml 覆蓋默認配置,例如:
- id: browser
name: dsh-plugin-browser
config:
timeoutMs: 30000 # 導航、點擊、輸入的超時時間
maxTextChars: 20000 # 單次快照提取的最大字符數
maxLinks: 20 # 單次快照列出的最大鏈接數
screenshotDir: . # 截圖保存目錄
executablePath: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome # 指定系統瀏覽器路徑
典型用法¶
- 讀取動態內容:讓模型訪問一個通過 JavaScript 渲染的頁面,並提取其中的信息。
- 自動化交互:模擬用戶點擊按鈕或輸入文本。
- 獲取快照:在自動化步驟之間獲取當前頁面的渲染文本。
注意事項¶
- 會話隔離:每個 Agent 擁有獨立的瀏覽器會話;沒有關聯 Agent 的調用會共享一個默認會話。
- 啓動時機:會話在首次使用時按需啓動,插件卸載時自動關閉。
- 權限與安全:插件以當前 DSH 進程的權限運行,使用前建議檢查源碼與許可證。
總結¶
該插件擴展了 DSH 在瀏覽器自動化領域的應用能力,適用於需要處理 SPA 應用、動態數據抓取或模擬用戶操作的場景。