前言¶
DeepSeek Harness (DSH) 的理念是「一切皆插件」。在構建需要聯網能力的模型時,通常面臨兩個痛點:一是調用 Shell 命令受到嚴格限制,二是需要頻繁進行權限批准。aurora-lucas/dsh-chrome-browser 插件提供了一個面向模型的 chrome 工具,它通過 Chrome DevTools Protocol (CDP) 直接驅動機器上已安裝的 Google Chrome,讓模型能夠導航、截圖、檢查和交互真實渲染的頁面,且無需每次調用都進行 shell 或沙盒批准。
插件介紹¶
該插件由 Aurora-Lucas 維護,遵循 MIT 許可證。它是一個聯網工具,本質上是 DeepSeek Harness 生態中的一個瀏覽器自動化模塊。它運行在 Harness Host 進程內部,這意味着它繼承了 Host 進程的權限特性。
核心功能¶
- 真實瀏覽器驅動:直接操作已安裝的 Google Chrome 或 Chromium,而非模擬器。
- 真實渲染與截圖:返回真實圖片截圖,並將截圖保存爲 PNG 文件。模型在流式響應中看到圖片,人類也可以打開保存的文件查看。
- 內容獲取:支持獲取 DOM 元素的
outerHTML、元素的innerText以及運行 JavaScript 表達式。 - 調試與診斷:可查看控制台日誌、未捕獲異常以及網絡請求。
- 交互控制:支持模擬鼠標點擊、鍵盤輸入等真實輸入事件。
- 權限與沙盒優勢:運行在 Host 進程中,調用過程被視爲普通工具調用,無需額外批准;不受 shell 沙盒限制(例如在 Linux 上可規避 Landlock 限制)。
安裝與啓用¶
該插件需通過 npm 打包後安裝到 Harness 的 profile 目錄中,不能直接作爲鏈接引用。
- 在插件目錄下執行打包命令:
npm pack
- 這會生成一個 tarball 文件(例如
local-dsh-chrome-browser-1.0.4.tgz)。 - 使用 Harness 插件管理器(如
plugin_manager或action: install_bundle)安裝該 tarball,目標爲 tarball 的絕對路徑。 - 安裝後 Host 會提示
restart-required,需重啓dsh web以加載新模塊。
典型用法¶
該工具定義了一個 chrome 動作,通過 action 參數區分操作類型。頁面 ID(如 p1)由 open 命令生成,後續操作可選指定 page,否則默認使用最近打開的頁面。
- 打開頁面:
chrome open url width height... - 頁面導航:
chrome goto url page - 截圖:
chrome screenshot path...(保存 PNG) - 獲取 DOM:
chrome dom selector(返回元素 outerHTML) - 獲取文本:
chrome text selector(返回元素 innerText) - 運行 JS:
chrome eval expression - 模擬點擊:
chrome click selector - 模擬輸入:
chrome type selector text - 查看控制台:
chrome console clear limit - 查看網絡:
chrome network clear limit
系統要求與配置¶
- 運行環境:支持 Linux、macOS 和 Windows。
- 依賴:需要 Node.js 22+ 和 Google Chrome 或 Chromium(開發基於 Chrome 155)。
- 字體:若處理包含中文的頁面,必須安裝 CJK 字體(如 Noto CJK),否則截圖中漢字會顯示爲空框。
- 平臺差異:
- Linux:默認運行
--no-sandbox,因爲 Host 進程通常以 root 運行,且受限 shell 無法啓動 Chrome。 - Windows:默認不開啓
--no-sandbox,關閉控制台窗口,使用taskkill終止進程樹。 - macOS:同 Linux 路徑,默認開啓
--no-sandbox。
- Linux:默認運行
適用場景與注意¶
該插件適合需要模型直接操作真實網頁、進行前端調試或自動化測試的場景。由於插件以當前 DSH 進程的權限運行,在安裝前應檢查源碼與許可證。插件支持通過環境變量 DSH_CHROME_PATH 或配置項 chromePath 指定瀏覽器路徑,自動探測列表包含主流安裝路徑。
總結¶
該插件通過 CDP 協議將真實的瀏覽器環境引入 DeepSeek Harness,使得模型能夠像人類一樣操作網頁,同時規避了常規 Shell 調用的沙盒限制。更多細節可參考 GitHub 倉庫 或 插件目錄頁。