dsh-browser:爲 DSH 提供共享真實瀏覽器的插件

前言

在 DeepSeek Harness(DSH)裏讓 agent 操作網頁,常見做法是走無頭瀏覽器或遠程截屏轉播:模型能「操作」,但人往往看不到同一塊頁面,遇到登錄、人機驗證時也很難及時接手。dsh-builtin-browser(倉庫 wqty123/dsh-browser)走的是另一條路:給 DSH 裝一個真實、可見、可與用戶共享的瀏覽器,agent 通過 20 個 browser_* 工具驅動,用戶與 agent 操作的是同一個頁面,需要時可以直接接管。

下面介紹這個插件的定位、能力、安裝方式與典型用法。事實來自 GitHub 倉庫 README 與 package.json(當前版本 v0.1.15)。

這是什麼

dsh-builtin-browser 是維護者 wqty123 發佈的 DSH 插件,npm 包名同爲 dsh-builtin-browser,許可證 MIT。SkillHub 目錄將其歸類爲客戶端插件;GitHub 上約 19 stars。

一句話:安裝插件 = 獲得一個與用戶共享、可被 agent 驅動的真實瀏覽器。

與無頭方案的區別在於:瀏覽器是原生 WebContentsView,不是轉播截圖;有桌面外殼時嵌入外殼視圖,純 dsh web 環境下插件也可自託管——自行拉起 Electron 窗口(標題 dsh-browser),無需額外配置。

核心功能

共享真實瀏覽器與人機同頁

用戶直接看到 agent 在做什麼,可隨時上手接管;agent 驅動的就是用戶眼前的窗口。

20 個 browser_* 工具

安裝後 agent 自動獲得一整套瀏覽器工具,覆蓋打開、查看、操作、填表、截圖、下載、登錄態管理等。常用入口如下:

想做什麼 工具 說明
打開頁面 browser_open 打開 URL,返回帶編號元素的快照
瞭解頁面 browser_snapshot 輸入框、按鈕、鏈接的編號清單
操作頁面 browser_execute 在頁面內執行 JS(原生 setter,框架友好)
填寫表單 browser_fill 一次填寫多個字段,可選提交
看到頁面 browser_screenshot PNG 截圖,可存文件交給視覺模型

完整清單與參數見倉庫 工具參考

DOM 級驅動與框架友好

browser_snapshot 返回帶編號的交互元素;browser_execute 在頁面內執行 JS,受控輸入使用原生 setter 並觸發 input/change 事件,React、Vue 頁面也能較可靠地交互。

多標籤與任務級會話隔離

支持並行打開 URL,查看、切換、關閉、重置標籤。每個 DSH 任務(會話)擁有獨立的瀏覽器會話(獨立標籤頁與歷史),併發任務互不搶頁面;同一任務內多次調用複用同一會話。

登錄態、人機驗證與下載

  • browser_auth:導出/恢復 cookie,重啓後登錄態不丟;自託管實例的 cookie 也會落盤持久化。
  • browser_challenge:檢測 Cloudflare、reCAPTCHA、hCaptcha、Turnstile 等挑戰,提示人工在共享窗口完成。
  • browser_download:在頁面上下文內攜帶會話 cookie 下載文件(上限 256MB)。

操作歷史、回放與安全限制

  • browser_history 記錄操作日誌;browser_replay 可按序號回放某一步。
  • browser_restrict 以白名單限制允許的瀏覽器動作;只讀工具(browser_snapshotbrowser_contentbrowser_screenshot 等)不受限。

多格式內容抓取

browser_content 支持以 html、markdown、txt、json 抓取頁面,可配合 CSS selector、字符上限與超時控制。

架構與自託管

插件通過 cordis.patch.yml 掛載三層:browser(seam)、browser-electron(provider)、tool-browser(工具層)。沒有桌面外殼時,插件通過 host-main.js 拉起 Electron 子進程,經本機 TCP JSON-RPC 驅動;子進程崩潰會自動重啓。README 註明 Electron 33.x 有合成器缺陷,建議版本 ≥ 40

安裝與啓用

環境要求:

  • 已安裝 DeepSeek Harness,且配置了 web profile
  • Node.js ≥ 22.19(見 package.jsonengines
  • Electron 運行時:桌面外殼通常自帶;純 dsh web 下插件會自動定位環境中版本最新的 Electron 二進制

README 徽章標明當前在 Windows 上驗證過;其他平臺是否可用需自行驗證。

安裝命令(README 官方寫法):

# 方式一:從 npm 安裝(已發佈)
dsh plugin --profile web add dsh-builtin-browser

# 方式二:從源碼目錄安裝(獨立倉庫,一插件一倉庫)
dsh plugin --profile web add <本倉庫路徑>

安裝前建議閱讀源碼與 MIT 許可證,確認插件將以當前 dsh 進程權限運行。

典型用法

安裝完成後,agent 即可調用 browser_* 工具。一個常見流程是:先打開頁面,再讀快照,再操作或填表。

1. browser_open(url)     → 打開頁面,得到帶編號元素的快照
2. browser_snapshot()    → 查看可交互元素編號
3. browser_execute(...)  → 按編號或選擇器執行點擊、提交等 JS
4. browser_screenshot()  → 需要視覺定位時截圖,可選 savePath 落盤

批量填表可用 browser_fill 一次填寫多個字段;需要持久登錄時,人工登錄後用 browser_auth 導出 cookie,下次恢復。

操作紀律(README 摘要):表單提交優先 form.requestSubmit(),點擊優先 element.click();座標點擊是最後手段,取座標後應立即點擊,點擊前用 document.elementFromPoint(x, y) 驗證命中。

適用場景與注意

適合誰

  • 需要在 DSH 裏做網頁自動化,且希望人能看到、能接管同一瀏覽器的開發者
  • 需要處理登錄態、人機驗證、帶 cookie 下載等「真實瀏覽器」場景的智能體工作流
  • 使用 DSH 桌面外殼或純 dsh web 環境,希望零額外配置拉起可見瀏覽器窗口的用戶

注意事項

  1. 插件以當前 dsh 進程的權限運行,安裝前應檢查源碼與許可證。
  2. 瀏覽器可見視圖、列布局等由宿主外殼(如 apps/desktop)負責;本插件只消費 electronViewHost,無外殼時走自託管。
  3. 帶 ✅ 守衛的動作受 browser_restrict 白名單約束;配置項見 README 中的 cordis.patch.yml 說明(如 httpOnly 默認 true,僅允許 HTTP(S) 導航)。
  4. SkillHub(skillhub.cn)是社區插件目錄,與 DeepSeek、幻方無官方從屬關係;DSH 生態理念是「一切皆插件」。

結尾

dsh-builtin-browser 把「共享真實瀏覽器」做成可安裝的 DSH 插件:裝好即用、人機同頁、20 個 browser_* 工具覆蓋從打開頁面到登錄態與下載的常見需求。若你正在 DSH 裏搭建需要可見、可接管的網頁 agent,可以從目錄頁或 GitHub 獲取包與文檔。

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

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

小夜