前言¶
在 DeepSeek Harness(DSH)里做智能体或多路对话时,原生界面通常一次只聚焦一条会话。要在几条会话之间来回切换,就要反复点侧边栏,对话轨迹、上下文和 composer 无法并排对照。下面介绍的 dsh-session-grid 由社区维护者 abluefan 发布,分类为客户端插件:它把主区域切成 n 个并列 pane,每格渲染一条完全独立的会话,对话、轨迹、上下文、编队、composer 均为原生 UI,而不是缩略图预览。
这是什么¶
dsh-session-grid 的定位是:在一个页面的 main 区域里,用 n 个 pane 同时渲染 n 条独立 session。它解决的是「多会话并行查看与操作」的问题,适合需要在同屏对比多条对话、或多任务并排推进的场景。插件当前在 GitHub 上星标为 0,版本 0.0.1,许可证 MIT;运行环境要求 DSH ≥ 0.2.1(package.json 中 engines 为 dsh >= 0.2.1-rc.2)。
核心功能¶
经 README 核实,插件具备以下能力:
- 横向单行排列:多个 pane 横向排布,不换行。
- 拖动手柄重排:每格左上角有
⠿手柄,可调整 pane 顺序。 - 侧边栏进出网格:侧边栏每一行提供
⊞(加入网格)与▦(移出网格)。 - 布局持久化:布局写入
localStorage,刷新页面后恢复。 - 网格内新建会话:在网格页点「新会话」时,在最左边新开一格,不会跳回原生单页布局。
- 空白格清理:
pruneBlankPanes()会清理累积的未命名空白格——有内容的格一律保留,空白格只保留最左那一个。
实现上,Host 入口为 index.js(空壳),全部 UI 逻辑在 lib/client.js。
安装与启用¶
安装前请自行查看仓库源码与 MIT 许可证;插件在当前 dsh 进程权限下运行,与任何 DSH 官方渠道无绑定关系。社区目录可在 SkillHub 插件页 或 awesome-dsh-plugin 中查找,该目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
通过插件市场(推荐)¶
在 awesome-dsh-plugin 目录中找到本插件,或在 dsh 的 插件 → 发现 里搜索 dsh-session-grid,点安装。
手动安装¶
任选一种方式,不要两种同时用。
A. 复制 + 手写 insert(适合本地开发)
- 把插件目录复制到
$DSH_HOME/profiles/web/node_modules/dsh-session-grid/。 - 在
$DSH_HOME/profiles/web/cordis.patch.yml增加:
- insert:
- id: session-grid
name: 'dsh-session-grid'
- 重启 dsh,或让 Loader 重载配置。
B. 使用 dsh plugin add(需要包已发布到 npm)
dsh plugin --profile web add dsh-session-grid
若采用 B,包名会进入 dsh.profile.bundles,bundles 层会读取包内自带的 cordis.patch.yml;此时不要再做 A 的第 2 步,否则同一 id 会被插入两次,DSH 启动会直接失败。
典型用法¶
- 安装并启用插件后,打开 web profile 下的 DSH 主界面。
- 在侧边栏某条会话行上点
⊞,将该会话加入网格;需要移出时点▦。 - 用每格左上角的
⠿拖动,调整同屏各会话的左右顺序。 - 在网格视图下点「新会话」,会在最左侧新增一格并继续停留在网格页。
- 刷新浏览器后,网格布局会从
localStorage恢复;长期留大量空白格时,依赖pruneBlankPanes()保留有内容格与最左一个空白格。
以上步骤均来自项目 README 中的交互说明,无额外配置字段需手写。
适用场景与注意¶
适合谁:需要在同屏并排操作多条 DSH 会话的开发者或重度用户,例如对照不同 prompt、并行看多路 agent 轨迹,或在编队/composer 之间快速切换而不丢失上下文。
已知限制(README 原文):
TurnNavigator在 pane 宽度小于 900px 时会自动隐藏——这是原生组件的设计,不是本插件缺陷。- 拖放图片会同时附加到所有 pane——属于 DSH 原生行为,与网格布局无关。
安装与使用前,建议在 GitHub 仓库核对 lib/client.js 等行为是否符合你的安全与合规要求。
结尾¶
dsh-session-grid 把 DSH 主区域变成可持久化的多会话网格,每格仍是完整原生 UI,适合多路对话同屏工作流。更多信息见 SkillHub 目录页 与 GitHub 仓库。