前言¶
DeepSeek Harness (DSH) 採用插件化架構,允許通過擴展功能增強能力。dsh-agent-browser 是一個插件,旨在讓模型通過工具調用直接控制 DSH 右側邊欄瀏覽器。它提供了讀取頁面內容、操作元素、導航、切換視口大小以及截取視口截圖的能力,使模型能夠像人類一樣與網頁交互。
核心功能¶
該插件提供以下工具,用於瀏覽器控制:
- browser_tabs:列出當前會話的瀏覽器標籤頁。信息包含 id、title、url、加載狀態、失敗狀態、驗證狀態、掛載狀態以及載體信息(carrier)。
- browser_read:讀取標籤頁內容。支持
mode: 'text'(默認,讀取可見文本)、mode: 'elements'(讀取可交互元素)、mode: 'html'(讀取頁面 HTML)。讀取前應檢查failed狀態,失敗頁面讀取結果爲空。 - browser_act:執行頁面操作。支持
click、type、press、scroll、select、reload、wait。操作目標可通過ref(來自 elements 模式)或 CSS 選擇器指定。wait支持固定延遲或選擇器狀態等待(visible、attached、hidden)。 - browser_screenshot:截取當前視口。支持預設
phone、tablet、desktop以及custom尺寸。 - browser_navigate:打開新標籤頁或導航到指定 URL。
- browser_viewport:切換標籤頁的視口大小。預設包括
auto、phone(390×844)、tablet(834×1112)、desktop(1280×800) 以及custom。 - browser_close:關閉指定的標籤頁。
- browser_eval:在頁面中運行 JavaScript。該功能默認禁用,需配置
enableEval: true才能使用。
安裝方式¶
該插件可通過以下方式獲取:
- 技能庫目錄:https://www.skillhub.cn/plugins/guanhaisen/dsh-agent-browser
- GitHub 倉庫:https://github.com/guanhaisen/dsh-agent-browser
典型用法¶
以下爲模型進行自動化瀏覽的典型工具調用流程:
browser_navigate { url: "https://example.com" }
browser_read { mode: "elements" } // 獲取可交互元素的引用
browser_act { action: "type", ref: "e1", text: "hello" }
browser_act { action: "click", ref: "e2" }
browser_read { mode: "text" } // 確認變更
browser_screenshot { preset: "desktop" }
browser_viewport { preset: "phone" }
browser_close { tabId: "tab4" }
注意事項¶
- 平臺限制:僅支持桌面端(使用 Electron
<webview>)。在 Web 配置文件中,側邊欄瀏覽器使用<iframe>,無法讀取 DOM,相關操作會返回明確原因。 - 配置要求:
browser_eval功能默認禁用,需在配置中開啓enableEval: true才能使用。 - 狀態字段:標籤頁有四個關鍵狀態字段。
mounted表示 DOM 已掛載且可驅動;loading表示導航正在進行;failed表示加載失敗(顯示錯誤頁);unverified表示渲染器無響應或文檔不可達。 - 截圖限制:當頁面處於
failed或unverified狀態時,截圖操作會被拒絕。 - Wait 行爲:
wait支持固定延遲或基於選擇器狀態(visible/attached/hidden)的等待。