前言¶
在 DeepSeek Harness(DSH)裏讓模型操作網頁,常見做法是 HTTP 抓取或外掛 Playwright/Puppeteer。前者拿不到登錄態和複雜交互;後者往往再拉一層瀏覽器二進制或依賴棧,和日常瀏覽器 profile 也容易攪在一起。若你需要「已登錄、可點擊填表、多標籤、上傳下載」,又希望工具形態與 DSH 原生 browser_* 一致,可以看一下社區插件 dsh-browser-harness(npm 包名 @xumi0920/dsh-browser-harness)。它用零依賴 CDP 內核實現 13 個 browser_* 工具,連接你單獨啓動的 Chromium 系瀏覽器,並按 DSH 任務給插件自建的標籤頁分組。
這是什麼¶
dsh-browser-harness 由 Xumi0920 維護,分類爲 聯網工具,源碼與文檔在 GitHub,社區目錄頁:skillhub.cn/plugins/Xumi0920/dsh-browser-harness。社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係。
一句話定位:在 DSH 中提供與 Harness 對齊的 browser_ 工具集,通過 Chrome DevTools Protocol 驅動專用、已登錄*的 Chromium 內核瀏覽器(Chrome、Edge、Brave、Chromium、Vivaldi、Opera、Arc 等),以無障礙樹 + ref(e1、e2…)爲主做頁面理解與操作,截圖/PDF 作補充;插件自建的標籤頁按 DSH 會話(Task)分組,不影響你日常工作標籤頁。
當前版本 v1.10.0,許可 MIT;運行時除宿主提供的 @deepseek-ai/dsh-tools peer 外爲零依賴(構建產物僅使用 Node 內置 fetch / WebSocket)。
核心功能¶
工具一覽¶
安裝生效後,模型可調用的工具包括(名稱與 README 一致):
browser_status 端點 / 瀏覽器版本 / 標籤頁 / 當前標籤頁
browser_wait 出現/消失、URL/文本變化、response、network_idle、delay
browser_navigate 打開 URL,或 back / forward / reload
browser_snapshot 緊湊引用(e1…);frameId、offset/limit 完整分頁、checked/selected/expanded
browser_act click / hover / highlight / drag / type / fill / selectOption / check / uncheck / press / scroll / dialog;可選 expectUrl/expectText/expectSelector 斷言
browser_extract text / html / JS / network / console / frames
browser_screenshot 整頁或元素級 PNG 路徑
browser_pdf 頁面 PDF 路徑
browser_diagnose 截圖 + console + 網絡失敗 + 活動請求診斷包
browser_upload 文件輸入上傳,路徑限制在 uploadDir
browser_download 觸發並等待下載,文件落在 downloadDir
browser_task status / pause / resume / close / start,任務生命週期
browser_tabs list / use / new / close
設計要點(資料中明確的能力)¶
- 真實登錄態:接自己起好的專用 Chromium 實例,登錄一次長期有效;文檔明確建議不要指向日常瀏覽器。
- 文本優先:快照基於無障礙樹與 ref,比純截圖喂視覺模型更省 token;截圖、PDF 爲補充。
- 按任務標籤組:插件自建的標籤頁按 DSH 會話分組;headless 環境下標籤組自動跳過,其它工具仍可用。
- 操作與併發:快照按頁串行;click 默認做遮擋/命中檢查(錯誤碼
E_CLICK_INTERCEPTED);導航等待load至complete;跨任務標籤衝突可返回E_TAB_LOCKED/E_TAB_OWNER_CONFLICT等。 - 只讀模式:配置
readOnly: true時阻止 click/fill/type、JS、上傳/下載及部分 tabs/task 變更,導航與快照/提取仍可用於檢查。 - 失敗診斷:頁面工具失敗時自動寫入
<stateDir>/diagnostics/<lane>/,錯誤信息附帶診斷路徑;敏感 URL、token 類字段在輸出中盡力脫敏,但頁面正文/HTML/截圖仍可能含敏感數據。 - 邊界:上傳限定
uploadDir、下載限定downloadDir、截圖/PDF 限定screenshotDir;browser_tabs use對非自建頁需顯式{borrow:true}等規則見倉庫 SECURITY.md 與 docs/architecture.md。
環境要求(README 表格):
| 要求 | 說明 |
|---|---|
| DSH | >=0.2.1-rc.5(不設上限) |
| Node | >=22 |
| 瀏覽器 | 任一 Chromium 內核 + remote debugging(默認端口 9331,詳見 docs/configuration.md) |
| 平臺 | Windows / Linux 已驗證;macOS 單測 CI 通過,真實 Chromium 端到端未實測 |
安裝與啓用¶
插件發佈於 GitHub Packages:@xumi0920/dsh-browser-harness(npmjs 上同名包爲其它項目,勿混淆)。官方給出三種方式,詳見 docs/install.md:
- 插件頁(推薦):DSH Web → 插件頁 → 添加插件 → 安裝第三方插件(npm 包名 / Git 倉庫 / 本地目錄),或在「發現」標籤頁安裝市場條目。
- 創造模式一句話:在創造模式會話中讓 DSH 執行:
把 @xumi0920/dsh-browser-harness 安裝到當前 profile。 - 手動安裝(GitHub Packages,classic PAT):需 scope
read:packages的 classic PAT(不支持 fine-grained token)。Windows 示例如下:
npm config set "@xumi0920:registry" "https://npm.pkg.github.com"
npm config set "//npm.pkg.github.com/:_authToken" "<YOUR_GITHUB_TOKEN>"
& "$env:LOCALAPPDATA\\Programs\\DeepSeek Harness\\resources\\runtime\\cli\\bin\\dsh.cmd" `
plugin --profile desktop add "@xumi0920/dsh-browser-harness"
手動 npm config set 會把 token 寫入 ~/.npmrc;README 建議裝完後刪除 token 配置並撤銷 PAT。熱插拔方面:application: applied 已生效時無需重啓;若返回 restart-required,需按 restartReason 重啓 DSH 以加載新 JS 模塊。
啓用前請知悉:第三方插件與 DSH 同進程權限運行。安裝前應閱讀源碼、MIT 許可證及 SECURITY.md,確認 cdpUrl、目錄邊界與只讀策略符合你的安全要求;不要把 remote debugging 指向日常瀏覽器。
典型用法¶
經過上面的安裝步驟,先啓動專用 Chromium(默認 remote debugging 9331),確認 http://127.0.0.1:9331/json/version 可訪問。然後在任意 DSH 會話中讓模型按 README 推薦的順序調用:
browser_status → browser_navigate {url} → browser_snapshot → browser_act {action:"click", ref}
browser_extract {mode:"text" | "html" | "js" | "network" | "console" | "frames"}
若首次 browser_status 返回 connected:false,按 docs/configuration.md 檢查瀏覽器是否已啓動、端口與 profile 配置是否一致。
更細的工作流、獨立庫與 CLI(包內 bh)見 docs/usage.md;標籤組行爲見 docs/tab-groups.md。
適用場景與注意¶
| 場景 | 建議 |
|---|---|
| 登錄態頁面、點擊/填表、上傳下載、多標籤、截圖 | 用本插件 |
| 公開頁面純讀取 | 優先 DSH 自帶 web_fetch(更快,不佔瀏覽器) |
| headless 環境 | 標籤組自動跳過;其它工具正常 |
| 日常瀏覽器 | 不要指向它;使用專用 profile 實例 |
DSH 生態理念是「一切皆插件」;本插件屬於社區貢獻的聯網工具類擴展,星標與迭代以 GitHub 倉庫爲準。遇到登錄牆或需 force 關閉標籤等敏感操作時,文檔要求停手由人確認。
結尾¶
dsh-browser-harness 把 DSH 原生的 browser_* 工具落到可維護的 TypeScript 實現上:零依賴 CDP、專用已登錄瀏覽器、ref 驅動的交互與按任務分組的標籤頁。若你的智能體工作流需要真實瀏覽器會話而不是單次 HTTP 抓取,可按官方安裝方式接入,並從配置文檔把端口與目錄邊界設清楚。