前言¶
在 DSH 裏做聯網、讀頁、截圖或簡單頁面交互時,常見做法是再掛一層 Playwright、Puppeteer 之類運行時,或走外部瀏覽器自動化服務。多一層依賴,往往意味着額外下載、版本對齊和 Host 進程裏的包體積。若你本機已經裝了 Microsoft Edge,且希望 agent 通過 Host 插件直接連 DevTools 協議(CDP)控制瀏覽器,可以看一下維護者 lingziba 發佈的 dsh-edge-browser(倉庫 lingziba/dshedge,社區目錄分類爲聯網工具)。
下面介紹它是什麼、提供哪些工具、如何安裝,以及典型調用順序與使用注意。
這是什麼¶
dsh-edge-browser 是 DeepSeek Harness 的 Host 插件:在 DSH agent 與 Edge 之間插入一組 edge_* 工具,由插件進程經 CDP 啓動或接管本機 Edge(--remote-debugging-port),完成開標籤、導航、執行 JS、取正文、截圖、點擊、輸入等操作。實現上只使用 Node.js 內置 node: 模塊和自研 WebSocket 客戶端,README 寫明零第三方依賴,不通過 Playwright/Puppeteer 下載瀏覽器。
數據流可以概括爲:
DSH agent ──edge_* 工具──▶ 插件(Host 進程) ──CDP──▶ Edge (--remote-debugging-port)
│ ▲
└── 專用 user-data-dir ───┘
HTTP /json/* 管理調試目標,WebSocket 下發 CDP 命令。默認使用專用配置目錄(Windows 上爲 %LOCALAPPDATA%\dsh-edge-browser\profile),既滿足 Chromium 136+ 對「遠程調試須非默認 profile」的要求,也避免動到你日常使用的 Edge 會話。只有真正操作瀏覽器時才建立 WebSocket;關閉標籤頁不會因此退出整個瀏覽器實例。
核心功能:11 個 edge_* 工具¶
安裝後由 bundle 提供下表工具(名稱與作用均來自倉庫 README):
| 工具 | 作用 |
|---|---|
edge_status |
只讀探測:調試端口是否可達、版本、可執行文件、配置目錄、當前標籤頁 |
edge_launch |
啓動或複用可控制的 Edge,可選直接打開網址;headless: true 可無頭運行 |
edge_tabs |
列出標籤頁,取得 targetId |
edge_open |
新標籤打開網址,並設爲後續調用的默認目標 |
edge_navigate |
讓已有標籤跳轉,並等到 document.readyState === 'complete' |
edge_eval |
在頁面執行 JS 表達式,返回 JSON 文本(支持 await Promise) |
edge_text |
取 document.body.innerText 正文,以及標題、地址 |
edge_screenshot |
截圖落盤(PNG/JPEG、可整頁),返回路徑供 read_image 查看 |
edge_click |
按 CSS 選擇器或可見文本點擊;滾動到可見處後發真實鼠標事件 |
edge_type |
聚焦輸入框、清空、輸入文本,可 submit: true 回車 |
edge_close |
關閉某個標籤頁;shutdown: true 可退出整個可控制實例 |
README 給出的典型鏈路是:edge_launch → edge_navigate → edge_text / edge_eval;需要視覺確認時用 edge_screenshot,再配合 read_image。
安裝與啓用¶
插件需放在之後不會移動的目錄:DSH profile 記錄的是該目錄的絕對 link 路徑,移動後需重新安裝。
1、取得插件代碼¶
README 提供兩種方式(二選一):
git clone https://github.com/lingziba/dshedge.git D:\dsh-plugins\dshedge
# 或網頁上 Code → Download ZIP,解壓到同一位置
以下示例路徑 D:\dsh-plugins\dshedge 請換成你本機實際目錄。
2、裝進 DSH profile¶
plugin_manager install_bundle target=D:\dsh-plugins\dshedge
3、驗證¶
裝完後讓 agent 執行一次 edge_status:README 說明應能看到 插件構建:1.0.4 以及 Edge 版本信息。
若暫時不想啓動瀏覽器,可在插件目錄執行(期望 20/20,秒級,校驗 schema 是否被當前 DSH 接受):
node test/definitions.mjs
package.json 要求 Node.js >=20;包名爲 dsh-edge-browser,許可證 MIT。
卸載¶
plugin_manager remove_bundle target=dsh-edge-browser
注意:target 是包名 dsh-edge-browser,不是倉庫名 dshedge。
配置(均可省略)¶
bundle 行 config 支持以下字段(默認值見 README):
| 字段 | 默認 | 說明 |
|---|---|---|
port |
9222 |
Edge 調試端口 |
executablePath |
自動探測 | Windows / macOS / Linux 常見安裝位置與 PATH;可用環境變量 DSH_EDGE_PATH 覆蓋 |
userDataDir |
按平臺 | 各平臺 dsh-edge-browser/profile 路徑 |
headless |
false |
默認顯示窗口 |
windowSize |
— | 例如 1440,900 |
defaultTimeoutMs |
30000 |
單個 CDP 操作默認超時 |
launchTimeoutMs |
25000 |
等待調試端口就緒上限 |
典型用法¶
在 agent 側,可按 README 推薦順序組織調用:
edge_launch(必要時帶初始 URL 或headless)edge_navigate或edge_open到目標頁edge_text或edge_eval取內容與頁內數據- 需要交互時用
edge_click、edge_type - 需要畫面時用
edge_screenshot,再用 DSH 的read_image讀返回路徑
維護者在 README「驗證狀態」一節記錄了宿主進程內 11/11 工具、定義自檢 20/20、以及 smoke.mjs / live.mjs 的端到端結果(含 example.com、baidu.com 等);你若在本機復現,應在非受限進程下跑 node test/smoke.mjs 或 node test/live.mjs --url https://example.com,並知悉受限沙箱下 Edge 渲染進程可能因令牌限制在 WebSocket 連頁面時失敗——插件正常運行路徑在 Host 進程,不受該限制影響。
適用場景與注意¶
適合誰: 已在 Windows / macOS / Linux 安裝 Edge、希望 DSH agent 在本機完成導航、正文提取、截圖和輕量 DOM 交互,且不想爲 Host 再引入 Playwright/Puppeteer 的開發者。
權限與安全: 插件以當前 DSH Host 進程權限運行,能啓動瀏覽器、讀寫專用 profile、在頁面執行任意 JS。安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認路徑與配置符合你的安全策略。
生態說明: DeepSeek Harness 採用「一切皆插件」的擴展方式;SkillHub 目錄頁 是社區收錄站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-edge-browser 把 Edge 自帶的 CDP 接到 DSH 的 edge_* 工具鏈上:專用 profile、懶加載 WebSocket、無第三方瀏覽器自動化依賴。若你的 workflow 需要「本機 Edge + agent 可讀頁可截圖可點擊」,可按 README 的 plugin_manager install_bundle 安裝,用 edge_status 確認構建與版本後,再按 launch → navigate → text/eval 的路徑接入會話。