前言¶
在 DeepSeek Harness(DSH)里做方案设计、改架构、对比实现路径时,对话往往不是一条直线:你先走 A 方案,发现不行再 fork 出 B;某个分支里已经写清楚的结论,又要回到父会话里继续往下推。普通 transcript 会把这些分叉摊平成时间线,主线每次都要重新扫一遍旧决策,既费上下文,也看不清「哪条路是当前采纳的主链」。
dsh-branch-map(npm 包名 dsh-branch-map,GitHub:Matthew-Laplace/dsh-branch-map)是社区维护的工作流类插件,在 DSH Web UI 里增加 Conversation View / 分支图,把每轮对话做成节点、把分叉收成可展开项,并在不改动源会话的前提下支持结论回收、分支比较和上下文编辑。
这是什么¶
插件定位一句话:面向工程场景的长对话分支图——保持主链可读,同时保留每一次 fork、保存的结论和显示层上的上下文裁剪。
- 维护者:Matthew-Laplace(仓库 README 署名 MIT © 2026 syc-ai)
- 分类:工作流
- 运行环境:DSH
>=0.2.2-rc.1 <0.3.0,需 Web UI profile(注册conversation.view与 composer dock) - 许可:MIT
插件本体不发起外网请求;会话图数据通过 Host 的 sessionQuery 读取,分支元数据落在本地 sidecar 文件。
核心功能¶
主链视图(Mainline)¶
竖向、偏阅读的轮次链。每张卡片上方是 AI conclusion,下方是你的 压缩意图;结论轮与决策轮会高亮,并有 conclusion rail 汇总已保存结论。
分叉点默认收成 ⑂N 药丸;展开某一分支时,到根的路径仍可见。工具栏提供 Follow / Pin;选中分支后主线可跟随。中央锚点与固定的 inspector 便于滚轮逐步浏览轮次时两侧界面稳定。
树视图(Tree)¶
工具栏切换 Mainline / Tree,以整洁的竖向树展示轮次与折叠间隙。三档 LOD:标题 + 意图(≥80%)、仅标题(≥50%)、点状(<50%)。当前路径、当前会话、选中项与侧分支用不同视觉状态区分。两种视图各自独立「相机」,但分支展开、结论与主线状态共享。
上下文编辑与派生会话¶
下列能力均强调 可逆:编辑落在新分支或新派生会话上,源会话日志不会被重写。
| 能力 | 作用 |
|---|---|
| Hide / restore | 仅影响显示;真实 session log 与模型上下文不变 |
| Context path preview | 预览下一轮请求将带入的轮次(标注为 prediction),可导出 Markdown |
| Rewind here | 从选中轮新建分支,只保留截止该轮的上下文 |
| Merge conclusions | 汇总子分支已存结论为一条可编辑消息并填入 composer |
| Derive session(Phase 5) | 通过 Host agents.create({ seed }) 生成去掉选定轮次的干净派生会话;记录 parentSession,在图上显示为子分支 |
README 中的工程闭环示意:
mainline ──┬── approach A ── conclusion A
│ └─ return conclusion
├── approach B ── conclusion B
│ └─ choose as mainline
└── cleaned derivation ── continue
数据落盘与隐私¶
- 分支元数据(标签、分叉点、结论、派生会话血缘):
$DSH_HOME/plugins/branch-map/meta.json - 显示偏好(主线、隐藏轮次、模式、浏览状态):浏览器
localStorage - 派生会话为真实 DSH session,由
agents.create创建
安装与启用¶
DSH 生态里插件可通过自定义索引或包管理器安装;不要凭仓库名自行拼接未经文档记载的 dsh plugin add github:... 命令。以下与 README 一致。
方式一:DSH 插件市场索引¶
在 DSH 中打开 Plugins,启用 Experimental plugins → Custom plugin indexes,添加索引 URL:
https://cdn.jsdelivr.net/gh/Matthew-Laplace/dsh-branch-map@v0.2.0/market/index.json
然后在 Discover 标签页找到 dsh-branch-map 并安装。
方式二:npm / 插件管理器¶
标准 DSH bundle,可用插件管理器指定 dsh-branch-map@0.2.0,或先查看包信息:
npm view dsh-branch-map
当前 package 版本为 0.2.0(以 package.json 与上述索引 URL 为准)。
典型用法¶
按 README 推荐顺序操作即可复现主流程:
- 在会话视图切换器里打开 分支图 / Branch Map。
- 从主线开始:在某轮用
+或 inspector 的 Fork from here 分叉。 - 在分支里 Save 结论,用 Save and return 带回父会话。
- 用
⑂N只展开需要的分支;需要全图时切换 Show all branches。 - 用
Mainline / Tree在「阅读流」与「结构对比」之间切换。 - 上下文编辑:在 inspector 中隐藏轮次、预览 context path,再 Rewind 或 Derive session。
若要让模型真正不再看到已删轮次,README 明确:隐藏只动显示;需干净上下文时应使用 Derive session,并注意长会话 seed 可能达到数 MB、跨轮压缩摘要仍可能提及已移除轮次等限制。
适用场景与注意¶
适合谁:在 DSH Web UI 里进行多方案并行、需要决策树可视化、要把分支结论合回主线、或要从某一轮「裁剪后继续」的工程对话。
安装前宜自查:
- 插件与 DSH 进程同权限运行,会读写
$DSH_HOME下 sidecar 与通过 Host API 创建派生会话;安装前应浏览仓库源码并确认 MIT 许可证与版本要求。 - 面向 Web UI;不改变 DSH append-only log 格式。
- 隐藏轮次若锚定某分叉,该分支锚点可能移动到最近可见轮次。
社区目录页(SkillHub 等)为独立站点,与 DeepSeek / 幻方无官方从属关系;发现与安装仍以 README 记载路径为准。
结尾¶
dsh-branch-map 把长工程对话从「一条时间线」变成可比较、可回收结论、可派生干净上下文的分支图,主线保持简洁而不丢掉分叉历史。