前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。當智能體需要處理網頁交互時,直接將 Playwright 調用硬編碼進 Agent 或使用獨立的瀏覽器腳本,往往會導致狀態管理混亂、環境隔離不足以及與 Agent 上下文割裂。dsh-browser-runtime 插件旨在解決這一痛點,它將 DeepSeek Harness Agent 擴展爲一個具備真實瀏覽器能力的 Agent。
該插件由 LHKong7 維護,目前是模型推理分類下的一個開源項目。它不是簡單的 Playwright 調用集合,而是一個完整的瀏覽器運行時環境,負責管理瀏覽器生命週期、序列化操作、檢查點恢復以及與 Agent 的隔離通信。
安裝與先決條件¶
在使用前,請確保環境滿足以下條件:
- DeepSeek Harness 已安裝並運行。
- Node.js 版本爲
^22.19或>=24。 - pnpm 版本爲
10。
安裝插件時,使用官方提供的命令即可完成插件、Provider 和工具鏈的捆綁安裝:
dsh plugin --profile web add -w dsh-browser-runtime
安裝完成後,需要安裝內置的 Chromium 運行時並驗證環境:
dsh-browser-runtime install chromium
dsh-browser-runtime doctor
dsh-browser-runtime doctor 命令會報告 Node 版本、插件版本、Chromium 路徑以及 Provider 的可用性。如果環境檢查未通過,該命令會以非零狀態碼退出。
若從本地 Git 倉庫安裝,在 pnpm 10 環境下可能需要在 profile 的 pnpm-workspace.yaml 中添加構建許可:
allowBuilds:
dsh-browser-runtime: true
核心功能¶
插件提供了 18 個常用的瀏覽器工具,覆蓋導航、觀察、交互、等待和結構化提取等場景。這些工具通過 Agent 的系統提示進行引導,使其能理解如何使用這些工具。
1. 瀏覽器操作與觀察¶
browser_open: 打開指定 URL 並返回觀察結果。browser_observe: 刷新頁面文本和交互元素引用。browser_observe_next: 讀取最新觀察結果的下一頁內容。browser_wait: 等待頁面或元素狀態變化後再觀察。
2. 交互與表單處理¶
browser_click: 點擊觀察結果中的引用元素。browser_fill: 填充非密碼字段。browser_fill_credential: 使用存儲的憑據填充字段(需配置憑據源)。browser_press: 向焦點元素髮送按鍵。browser_select: 選擇下拉選項。browser_check: 設置複選框或單選框。browser_scroll: 滾動頁面。
3. 導航與截圖¶
browser_back/browser_forward/browser_reload: 管理瀏覽器歷史記錄。browser_screenshot: 保存全頁或視口截圖。
4. 結構化提取¶
browser_extract_list/_table/_links/_article: 從指定區域提取結構化數據。
運行時特性¶
隔離與狀態管理¶
每個 DSH Agent 對象都擁有獨立的 BrowserContext 和 Page。這意味着多個並行運行的 Agent 不會共享 Cookie、導航狀態或頁面引用。這解決了多 Agent 併發時的狀態污染問題。
檢查點恢復¶
插件支持 resume 檢查點功能。通過保存 Cookie 和 localStorage,Agent 可以在瀏覽器重啓後恢復到之前的會話狀態。同時,支持 ephemeral 模式,用於啓動全新的、無狀態的瀏覽器環境。
安全與證據¶
插件內置了嚴格的公共網絡默認策略、有界輸出限制以及批准感知的憑據通道。每次 admitted action(許可操作)都會記錄前後證據、耗時、結果以及機器可路由的恢復行,以便在失敗時進行診斷和重試。
引用機制與防過期¶
Agent 接收的是從最新觀察中生成的引用(ref),而非模型自行編寫的 CSS 選擇器或 JavaScript。運行時和 Provider 會進行 stale-reference checks(防過期檢查),在執行前驗證目標元素是否仍然有效,避免因頁面 DOM 變化導致的操作失敗。
典型用法¶
安裝並驗證完成後,在 Web Profile 下啓動 Agent,並用自然語言描述任務。Agent 會自動接收 browser_* 工具及其使用指導。
例如,讓 Agent 打開 Hacker News 並提取前十條故事:
- 啓動 Web Profile。
- 描述任務:“打開 Hacker News,提取前十條故事”。
- Agent 執行
browser_open和browser_observe,獲取頁面引用。 - Agent 調用
browser_extract_list等工具提取數據。
在 Product Hunt 的實戰示例中,Agent 在非無頭模式下記錄運行,成功打開了 Product Hunt,抓取了 24 個最新產品的鏈接,並在 1 分 13 秒內生成了一份 Markdown 報告,期間未依賴網頁搜索作爲後備方案。
注意事項¶
- 權限與運行時:插件以當前 DSH 進程的權限運行,因此請確保在安裝前仔細審查源碼和許可證(MIT)。
- 性能建議:對於成百上千條靜態記錄的列表,建議優先使用官方 API 或直接抓取,而非依賴瀏覽器的分頁和提取工具。
總結¶
dsh-browser-runtime 通過將 Playwright 封裝爲標準的 DSH 插件,爲 DeepSeek Harness Agent 提供了生產級的瀏覽器交互能力。它通過隔離環境、狀態檢查點、操作證據記錄以及安全的憑據處理機制,使得構建複雜的網頁自動化 Agent 變得更加可靠和易於維護。
- 插件目錄:https://www.skillhub.cn/plugins/LHKong7/dsh-browser-runtime
- GitHub 倉庫:https://github.com/LHKong7/dsh-browser-runtime