前言¶
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。