dsh-plugin-browser:給 DSH 接入已登錄 Chrome 的瀏覽器工具

前言

在 DSH 裏做瀏覽器相關任務時,常見的問題是:模型需要訪問一個已經登錄的網站,但瀏覽器會話不在模型手裏,或者不同客戶端之間各自維護一次登錄態。dsh-plugin-browser 針對這個問題,把 Playwright + CDP 的瀏覽器自動化封裝成 DSH 插件,讓模型通過 15 個 browser_* 工具操作同一個已登錄 Chrome。

這是什麼

q35888/dsh-plugin-browser 是一個 DeepSeek Harness(DSH)插件。它的定位是:

  • Native browser automation for DeepSeek Harness
  • 在 ctx.tools 上提供 15 個 browser_* 工具
  • 使用 Playwright + CDP
  • 可在 DSH / pi / MCP clients 之間共享同一個已登錄 Chrome

維護者是 q35888,許可證爲 MIT。倉庫地址:

https://github.com/q35888/dsh-plugin-browser

包中給出的依賴版本約束如下:

{
  "peerDependencies": {
    "@deepseek-ai/dsh-tools": "^0.1.0-rc.7",
    "@deepseek-ai/cordis": "^4.0.1"
  },
  "dependencies": {
    "playwright": "^1.61.1"
  }
}

核心功能

下面介紹與日常使用最直接相關的幾組能力。

會話模式

  • browser_session:啓動或切換會話
  • real:使用已登錄 Chrome
  • isolated:使用獨立無痕會話
  • Chrome 沒開時,插件會自動拉起
  • 默認目錄設置可與 agentic-browser-mcp 共享同一個已登錄 Chrome

頁面交互

下面這些工具主要基於 ref 定位:

browser_navigate
browser_snapshot
browser_click
browser_type
browser_select_option
browser_hover

先打開頁面,再用 browser_snapshot 取得可操作元素,然後執行點擊、輸入、選擇或懸停。

標籤頁、彈窗、頁面狀態

  • browser_tabs:管理標籤頁
  • browser_handle_dialog:處理 JS 彈窗
  • browser_eval:執行頁面 JS
  • browser_storage:讀取 cookies/localStorage
  • browser_console:讀取控制檯日誌
  • browser_screenshot:截圖存文件
  • browser_wait_human:遇到驗證碼或登錄時,在 DSH 界面彈卡片等待人工操作,5 分鐘超時

安裝

安裝方式 A 與方式 B 二選一,混用會產生重複插件行導致 DSH 啓動失敗。本文按 dsh CLI 的方式寫。

dsh CLI 安裝命令:

dsh plugin --profile web add github:q35888/dsh-plugin-browser

如果會使用 isolated 模式,再安裝 Chromium:

npx playwright install chromium

isolated 模式需要 npx playwright install chromium(約 95MB);只用 real 模式可跳過。

經過上面的步驟後,插件會在 DSH 的 ctx.tools 中註冊 browser_* 工具。

典型用法

一個來自資料中的示例:

你: 幫我看看 github 今天有什麼通知
模型: browser_navigate → browser_snapshot → 讀到通知列表 → 彙報給你

實際操作時,通常按這個順序:

1、先調用 browser_session,選擇 real 或 isolated 會話。

2、調用 browser_navigate 打開目標頁面。

3、調用 browser_snapshot 獲取頁面元素和 ref。

4、用 browser_click、browser_type、browser_select_option、browser_hover 等工具操作頁面。

5、需要固定某個標籤頁時,用 browser_tabs 的 switch。

幾個使用要點:

  • ref 是臨時的,頁面變化後先重新 browser_snapshot 再操作
  • 遇到驗證碼或二次驗證時,調用 browser_wait_human,在 DSH 界面操作完點確認
  • 新開的標籤頁自動跟隨;需要固定某個標籤頁時用 browser_tabs 的 switch
  • isolated 模式需要 npx playwright install chromium(約 95MB);只用 real 模式可跳過

適用場景與注意

這個插件適合需要在 DSH 會話裏訪問已登錄網站的場景:你已經在瀏覽器裏登錄過某個站點,模型就可以在這個插件提供的瀏覽器裏繼續讀取或操作頁面。

使用前需要注意:

  • 插件以當前 dsh 進程權限運行;browser_eval 和 browser_storage 能讀取瀏覽器裏的 cookies 和登錄憑據,請只在你信任的會話中使用本插件
  • 安裝前應檢查源碼與許可證,許可證爲 MIT
  • 同一個 DSH 進程裏的多個會話/子代理共享同一個瀏覽器標籤頁,併發使用時會互相干擾
  • isolated 模式下如果 DSH 意外退出,獨立瀏覽器進程可能殘留
  • 它依賴 DSH 的 rc 期工具 API;DSH 大版本升級後若失效,刪掉機器級配置裏的兩行即可完全回滾
  • macOS 無頭 isolated 模式設置 AGENT_BROWSER_ISOLATED_CHANNEL=chrome 可能擋住日常 Chrome

結尾

dsh-plugin-browser 的價值,是把瀏覽器自動化接回 DSH 的工具調用鏈路裏:模型可以直接導航、讀取頁面、操作元素,並在需要人工驗證時把操作交還給使用者。

倉庫地址:

https://github.com/q35888/dsh-plugin-browser

目錄頁 URL 未在本文事實中確認,這裏不額外給出。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜