dsh-sidebar-control:面向 Agent 的 DSH 右側邊欄控制面

前言

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

典型用法

  1. 先 sidebar status 看清當前 Session(或指定 sessionId)邊欄標籤樹:tabId、kind、title、url/path、active、mounted。
  2. 需要新頁面時用 sidebar open:瀏覽器帶 url;文件帶 path 與可選 line;終端用 kind:"terminal"。
  3. 要在已有瀏覽器標籤內改 URL 而非新開時,對同一 tabId 再 open。
  4. 上下文不夠時再 sidebar expand {tabId},按種類拿到摘錄內容與應使用的後續工具名;瀏覽器標籤可選 mode:text / elements / html。
  5. 切換用戶注意力或清理標籤時用 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。

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

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

小夜