前言¶
DeepSeek Harness(DSH)桌面端右側邊欄可以同時掛着內置瀏覽器、終端、文件預覽以及各插件自己的頁面。對人來說點標籤頁切換即可;對模型來說,若沒有統一的「看清有哪些頁、打開/聚焦/關閉/展開某頁」入口,往往只能依賴零散工具,或重複造一套瀏覽器側能力。DSH 內置的邊欄瀏覽器面向用戶,本身不向模型註冊工具;社區裏已有 MIT 插件把頁面讀寫交給 browser_* 等專用工具。下面介紹的 dsh-sidebar-control 走另一條路:一個 sidebar 工具加一段精簡的系統提示概覽,在「標籤種類註冊表」之上做層級導航,內容動作仍交給各自負責的工具。
這是什麼¶
dsh-sidebar-control 由維護者 Dax233 發佈,在 SkillHub 社區目錄中歸類爲工作流插件。定位是:面向 Agent 的 DSH 右側 Sidebar 控制面——提供層級化的標籤概覽,跨 browser / terminal / file 等種類執行 open / focus / close,並通過 expand 做漸進式披露(展開某個標籤時再拉取內容與針對該標籤的精確工具列表)。它不創建 webview、不搭 loopback 橋、也不重新實現頁面讀取;通過 Cordis Inspect 通道的 Client provider(SidebarControl)與公開的 ctx.sidebarRight 服務與渲染端協作。
核心功能¶
單一工具與命令面¶
模型側只有一個工具:sidebar。README 中給出的子命令形態如下(結果爲純文本樹或回執,不會把頁面內容未經請求注入對話):
sidebar status → tree: tabId, kind, title, url/path, active, mounted
sidebar open {kind:"browser", url} → opens the user-visible in-app browser tab
sidebar open {kind:"browser", url, tabId} → navigates that existing browser tab in place
sidebar open {kind:"file", path, line?} → document-preview tab (relative paths resolve against the Session directory)
sidebar open {kind:"terminal"} → opens a visible terminal tab
sidebar expand {tabId, mode?} → content + the exact tools for it (mode: text/elements/html on browser tabs)
sidebar focus / close {tabId} → navigation verbs
與生態插件的分工¶
- 瀏覽器標籤:正文讀取、點擊等由 dsh-agent-browser(
browser_read、browser_act、browser_screenshot、browser_navigate等)負責;對本插件而言,sidebar expand瀏覽器標籤時會向該插件的 Client provider 要頁面文本並交出 tabId。 - 文件標籤:通過文檔預覽資源地址(
dsh-resource://file/session/<sessionId>/<path>)打開;expand返回有界文本摘錄與真實路徑,後續交給文件工具。 - 終端標籤:經 Sidebar 終端類型打開;
expand會列出適用的terminal_*工具。v0.1 起即說明:可見終端標籤與terminal_*工具會話不聲稱同一身份,避免假裝已綁定。 - 未知種類(其他插件頁面):僅清單級——可列出、focus、close,不可讀內容。
平臺行爲要點¶
- Sidebar 按 Session 隔離。命令作用在當前屏幕上該 Session 的 Sidebar;若某 Session 的 sidebar store 從未被 adopt,工具會報告「not on screen」,而不是寫入無人渲染的表面。
- 桌面殼策略:
sidebar open {kind:"browser"}在瀏覽器插件拋出裸ERR_FAILED (-2)之前就會拒絕 DSH Host 端口上的 loopback 主機名,並給出明確策略錯誤;file://按設計不可用,文件走資源地址。 - 漸進式披露:系統提示裏最多概覽少量標籤;完整內容與後續工具名只在
sidebar expand結果裏出現,便於控制上下文預算。 - 跨 Session(0.2.x):可向
status/open/focus/close/expand傳入sessionId。只讀status無需切換視圖;導航類命令在目標 Session 有 live-store 時直接寫其 live sidebar store。若目標 Session 自應用啓動後從未展示過,會先走與會話行點擊相同的路徑展示該 Session,再恢復原先 Session(回執會說明涉及哪些 Session 及切換耗時;0.2.1-rc.3 上測得約 130–160 ms,換到另一對話大致還需約 200–300 ms)。首次操作會「預熱」該 Session 的 store,之後在同一次應用運行中對該 Session 的操作可無縫進行。switchView: false可拒絕可見切換,適合不能打擾用戶的 Agent。文件標籤的expand可在不切換視圖的情況下工作(Host 直接讀文件),相對路徑相對目標 Session 工作目錄解析。仍有兩條限制來自所 adopt 瀏覽器插件的 Session 範圍約定:無法讀取其他 Session 瀏覽器標籤的內容(僅元數據);無法用tabId導航其他 Session 已有瀏覽器標籤(應在該 Session 新開標籤)。
系統提示中會附帶簡短工作流說明與最近一次見到的標籤樹;工具本身不碰頁面正文,提示注入面仍留在真正讀內容的工具側(那些工具通常把頁面內容當不可信數據處理)。
安裝與啓用¶
在 DSH Desktop profile 下安裝(命令來自倉庫 README):
dsh plugin --profile desktop add github:Dax233/dsh-sidebar-control
也可在插件管理頁通過 github:Dax233/dsh-sidebar-control 添加。bundle patch 掛載 Host 半部分;package.json 的 dsh.client 加載渲染端半部分。插件管理器可 live 應用 bundle;否則需重啓 DSH Desktop。
本地開發時使用 file: 路徑(改代碼後需重裝),README 示例爲 Windows 盤符路徑,請換成你本機克隆目錄:
dsh plugin --profile desktop add file:F:/github/dsh-sidebar-control
README 建議搭配瀏覽器內容插件:github:guanhaisen/dsh-agent-browser。
可選配置寫在 profile 的 cordis.patch.yml:
- id: dsh-sidebar-control
name: dsh-sidebar-control
config:
maxPromptTabs: 8 # tabs rendered in the system-prompt overview
maxTreeTabs: 40 # tabs rendered by sidebar status
maxExpandChars: 4000 # expand content budget (200..20000)
maxFileBytes: 524288 # files larger than this are not excerpted
典型用法¶
- 先
sidebar status看清當前 Session(或指定sessionId)邊欄標籤樹:tabId、kind、title、url/path、active、mounted。 - 需要新頁面時用
sidebar open:瀏覽器帶url;文件帶path與可選line;終端用kind:"terminal"。 - 要在已有瀏覽器標籤內改 URL 而非新開時,對同一
tabId再open。 - 上下文不夠時再
sidebar expand {tabId},按種類拿到摘錄內容與應使用的後續工具名;瀏覽器標籤可選mode:text/elements/html。 - 切換用戶注意力或清理標籤時用
sidebar focus/sidebar close。
適用場景與注意¶
適合需要在 DSH 工作流裏統一編排右側邊欄標籤、又不想在插件裏再實現一套瀏覽器讀寫的 Agent 開發者。與 dsh-agent-browser 等插件組合時,邊欄負責「地圖與導航」,內容工具負責「讀與動」。
安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,跨 Session 導航會觸發視圖切換(除非 switchView: false 或只讀/文件 expand 等例外路徑)。SkillHub 目錄頁與 GitHub 無 DeepSeek / 幻方官方從屬關係,屬於社區「一切皆插件」生態中的獨立條目。
結尾¶
dsh-sidebar-control 用單一 sidebar 工具把 DSH 右側邊欄變成 Agent 可查詢、可導航、可按需展開的控制面,並與 browser / file / terminal 專用工具分工明確。進一步瞭解可訪問社區目錄頁 dsh-sidebar-control 與源碼 github.com/Dax233/dsh-sidebar-control。