前言¶
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.0engines.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 所列郵箱。