dsh-browser-annotate:帶註釋功能的瀏覽器工具與真實 Chromium 集成

前言

DeepSeek Harness (DSH) 代理在與網頁交互時,通常缺乏直觀的反饋機制和深度調試能力。開發者需要代理能像人類一樣操作頁面、查看細節,並攜帶上下文與對話。

dsh-browser-annotate 插件解決了這個問題。它通過一個 Electron 桌面應用提供真實的 Chromium 瀏覽器環境,並集成了 Chrome DevTools Protocol (CDP) 訪問權限。插件與桌面應用通過本地 HTTP 循環迴環通信(127.0.0.1:7391),爲代理提供了一套完整的瀏覽器操作工具,同時支持用戶通過右鍵註釋直接向對話注入前端事實。

核心功能

插件提供十二種瀏覽器操作工具,覆蓋從基礎導航到複雜交互的全鏈路:

  1. openBrowserPage:在瀏覽器中打開新標籤頁,若目標不可達會返回真實的 Chromium 錯誤。
  2. navigatePage:支持 URL 導航、刷新、前進和後退。
  3. readPage:獲取頁面可訪問性樹快照,支持通過選擇器範圍限定。
  4. screenshotPage:支持視口或元素截圖,並作爲圖片附件返回。
  5. clickElement / hoverElement / typeInPage:基於元素引用或選擇器進行點擊、懸停和輸入,支持回車提交。
  6. dragElement:通過引擎執行拖拽,若引擎不支持則回退到 Playwright 的 dragAndDrop。
  7. handleDialog:處理 alert/confirm/prompt 對話框,不再自動回答。
  8. runPlaywrightCode:通過 CDP 在應用 Chromium 上執行自定義 Playwright 函數。
  9. cdp:支持調用任何 Chrome DevTools Protocol 方法(如 Input、DOM、Runtime、Network 等)。
  10. annotations:讀取和管理用戶創建的註釋隊列。

此外,插件具備以下特性:

  • 右鍵註釋與檢查:在瀏覽器中右鍵點擊元素,可快速添加註釋或進入開發者模式檢查 DOM。
  • 註釋隊列機制:支持將選中的元素信息(包括 CSS 選擇器、DOM 路徑、截圖、計算樣式等)加入隊列,最後統一注入到對話中。
  • 雙欄佈局:左側爲 DSH Web UI,右側爲真實 Chromium 瀏覽器,互不干擾。

安裝與啓用

安裝該插件需使用 DSH 的插件命令,該倉庫不作爲 npm 包發佈。

# 安裝插件
dsh plugin --profile web add github:iimaguest/dsh-browser-annotate

# 更新到最新提交
dsh plugin --profile web update dsh-browser-annotate

# 卸載插件
dsh plugin --profile web remove dsh-browser-annotate

安裝後,DSH 啓動時會加載該插件。若未啓動桌面應用,代理調用瀏覽器工具時會收到“桌面瀏覽器未連接”的提示,而不會導致程序崩潰。

使用示例

  1. 啓動桌面應用:在終端運行以下命令啓動 Electron 應用,並傳入 DSH Web UI 的 token 地址。
    ./dev.sh 'http://127.0.0.1:3090/?token=…'
後續啓動可省略 URL,應用會讀取 `.dev-url` 文件。
  1. 操作瀏覽器:代理可以使用上述十二種工具對頁面進行操作。
  2. 管理註釋:用戶可以在瀏覽器中右鍵添加註釋,或使用插件提供的命令管理隊列。
    # 列出當前隊列中的註釋(結果附帶截圖)
    annotations list

    # 將註釋隊列注入到對話輸入框中
    annotations inject

    # 清除已注入或未處理的註釋
    annotations clear

架構與限制

插件與桌面應用各司其職:

  • 插件端:提供 DSH 側的 HTTP 路由和工具定義,不加載任何 DSH 服務。
  • 桌面端:運行真實 Chromium,處理頁面渲染和用戶交互。

已知限制:

  • 標籤頁關閉:Electron 應用中的標籤頁關閉需手動操作(快捷鍵 ⌘W),代理工具尚未實現自動關閉標籤頁。
  • CDP 限制:Electron 不支持 Target.createTarget 和 Target.createBrowserContext API,因此無法通過代理直接創建新的瀏覽器上下文,只能通過 openBrowserPage 打開新標籤頁。
  • 啓動安全:首次啓動 macOS 的 DMG 安裝包時,由於系統安全限制,通常需要右鍵打開或手動在“隱私與安全性”中允許運行。

結尾

dsh-browser-annotate 通過將真實的瀏覽器環境、CDP 訪問權限與註釋隊列機制結合,填補了 DSH 在網頁交互和深度調試方面的空白。它既能讓代理像操作員一樣使用瀏覽器,也能讓人類通過直觀的註釋將前端事實直接反饋給智能體。

GitHub 倉庫

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

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

小夜