dsh-sidebar-control:驅動 DSH 右欄內置瀏覽器的 Agent 工具

前言

DeepSeek Harness(DSH)桌面版在右側側欄裏自帶 Browser 面板:標籤、地址欄、Electron <webview> 會話都在界面上,但在 0.2.2-rc.1 這一檔構建裏,面板往往只是 UI,模型側未必有對應的控制工具。若要讓 Agent 去讀頁、點按鈕、填表單,常見做法是再掛一套 Playwright 或獨立 Chromium——多一個配置、多一輪登錄,token 開銷也隨「整頁快照」疊上去。

下面介紹社區插件 Sidebar Control(npm 包名 dsh-sidebar-control,維護者 clusterstar1229)。它在不下載額外瀏覽器的前提下,把右欄裏你正在看的那個頁面暴露爲單一模型工具 builtin_browser,並針對長頁閱讀做了按 query 檢索、diff 增量和 batch 多步合併,目標是把第二次、第三次讀頁的 token 和往返次數壓下去。

這是什麼

Sidebar Control 是 DSH 客戶端 類插件:Agent 在 Harness 內置側欄 Browser 裏讀真實 DOM、點真實控件、輸入、按鍵、滾動、等待和截圖,不另起第二個瀏覽器進程,也不捆綁 Chromium/Playwright。實現上基於 MIT 許可的 dsh-sidebar-browser,複用其動作面與長輪詢橋;本包在此基礎上增加 query 範圍內的 read、相對上次的 diff、多標籤 tabs / focus / close_tab,以及最多 12 步的 batch,依賴列表爲空。

當前發佈版本爲 0.2.1(2026-11-08),許可證 MIT,作者 Hongrui Zhao。在 DSH 生態裏,插件由社區目錄(如 SkillHub 條目)收錄,與 DeepSeek / 幻方無官方從屬關係;安裝與審閱仍以 npm 包與 GitHub 倉庫爲準。

與整頁快照相比,多做了什麼

多數側欄瀏覽器插件用一次大 snapshot(默認上限約 12k 字符)回答所有問題——讀一次尚可,連讀三次成本很高。Sidebar Control 把差異化放在後續讀取上,可與同基礎的 dsh-sidebar-browser 對比如下(均來自項目 README):

場景 dsh-sidebar-browser Sidebar Control
讀長頁 全文 + refs read 帶 query,BM25(英文詞 + 中文二元組)只回命中段落
看動作改了什麼 再 snapshot diff 只回新增/消失段落
多步表單 每步一次調用 batch 單次最多 12 步
點擊後等待 固定 350 ms + 加載窗口 頁面穩定即返回,README 稱常見約 100 ms
多標籤 單標籤 tabs / focus / close_tab

項目在 15,521 字符的 test/long-article.html fixture 上給出過字符與約合 token 標註:例如 read { query: "wall-clock" } 約 199 字符(≈50 token),而同頁默認 snapshot 截斷到 12,000 字符(≈3,000 token)。這些數字來自插件自身的 chars ≈ tokens 輸出,token 列宜看數量級;字符數爲實測值。

核心能力(工具 builtin_browser)

插件只向模型註冊一個工具,故意命名爲 builtin_browser,表示驅動的是宿主面板而非外掛瀏覽器。0.2.1 支持的動作包括(節選,完整表見 README):

  • 導航與會話:status、open、navigate / back / forward / reload、close;open / 標籤相關操作按 Session 隔離(0.2.1 加固)。
  • 頁面認知:snapshot(文字 + 編號 refs,可限 max_text_chars / max_refs)、read(可選 query + max_chars)、diff、screenshot(過大時降採樣)。
  • 交互:click、type(submit: true 提交表單)、press(含修飾鍵)、select、scroll、wait(要求可見元素)、eval(頁面內 JS,需互信頁面)。
  • 編排:batch 一次執行多步(navigate/click/type/…/read/diff/snapshot 等),校驗每步並報告 ran N of M。
  • 多標籤:tabs 列表、focus / close_tab 按 tab_id。

refs 綁定在最近一次 snapshot 上;導航後舊 ref 會失敗並提示重新快照。只想知道「變了一點什麼」時優先 diff,不必整頁重拍。

安裝與版本要求

適用 DeepSeek Harness 桌面版,且需已啓用右欄內置 Browser。package.json 聲明:

  • engines.dsh: >=0.2.2-rc.1 <0.3.0
  • engines.node: >=20

官方安裝命令(README 原文):

dsh plugin --profile desktop add dsh-sidebar-control@0.2.1

或在應用內:設置 → 插件 → 安裝 bundle,填寫 dsh-sidebar-control@0.2.1。從 npm 安裝後,插件管理器可爲後續版本提供 Update。從 0.1.x 升級無配置遷移;若曾從 checkout 安裝,建議改回 npm 以便收到更新。

兼容矩陣摘要:桌面 0.2.2-rc.1 已做 110 步現場測試;低於 0.2.2-rc.1 的桌面版不支持(無右欄 Browser 服務);dsh web 構建下頁面自動化受限(跨域 iframe),tabs / focus 仍可用;macOS / Linux 桌面爲「預期可用」,README 註明主要戰役在 Windows 上完成。

典型用法

經上面的步驟裝好插件後,可按 README 教程復現兩類流程。

1. 用 batch 完成搜索,只讀命中段落

在 Bing 等站點上,把輸入、等待結果、read 合成一次調用:

builtin_browser({
  action: "batch",
  steps: [
    { action: "type", selector: "#sb_form_q", text: "DeepSeek Harness", submit: true },
    { action: "wait", text: "DeepSeek Harness" },
    { action: "read", query: "deepseek harness plugin", max_chars: 700 },
  ],
})

README 給出的示例返回裏,第三步約爲 700 chars ≈ 206 tokens,而不是 12k 級整頁快照。

2. 本地 HTML 報告(經 http 提供)

當前桌面構建可能攔截 file://,需用本機 HTTP serve 目錄後再 open:

python -m http.server 8000 --bind 127.0.0.1 --directory ./out
builtin_browser({ action: "open", url: "http://127.0.0.1:8000/report.html" })
builtin_browser({ action: "snapshot", max_refs: 20 })
builtin_browser({ action: "read", query: "Q3 revenue", max_chars: 800 })
builtin_browser({ action: "screenshot" })

需要點選控件時用 snapshot;只要摘要用 read;要看版式用 screenshot。

更基礎的順序仍是:先 open 或已有標籤 → snapshot 拿 refs → click / type 等 → 動作後用 diff 或再 snapshot。

適用場景與注意

適合誰:已在 DSH 桌面版使用右欄 Browser、希望 Agent 與你在同一標籤、同一會話裏操作頁面,且希望在長文、多步表單場景下控制 token 的開發者。

環境與權限:

  • 插件隨當前 DSH 進程運行;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,確認其行爲符合你的安全策略。
  • 頁面內容對模型是不可信數據,不是系統指令;eval 等同在頁面內開 devtools,僅用於可信頁面。
  • Harness 主界面需打開:Client 半運行在 Harness 頁面裏;open / focus / close_tab / screenshot 需要調用 Session 在屏幕上,讀與點擊可在後臺進行。
  • 若未來 Harness 自帶同名 builtin_browser 工具,不要與本案同時啓用,避免同名註冊競爭。
  • 固定寬度站點在窄側欄可能橫向滾動;插件不注入縮放或改樣式。
  • 本地頁面優先用 http://127.0.0.1;內置 Browser 對下載、權限彈窗、頂層跳轉等仍有沙箱限制。

結尾

Sidebar Control 補齊了 DSH 右欄 Browser 的 Agent 控制面:同一 webview、同一 cookie,加上 read / diff / batch 降低長頁與多步任務的 token 與往返成本。查閱條目與版本說明可到社區目錄 SkillHub 與倉庫 clusterstar1229/dsh-sidebar-control;問題可走 GitHub Issues 或 README 所列郵箱。

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

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

小夜