DSH Branch Map:长工程对话的分支图与主线管理

前言

在 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 推荐顺序操作即可复现主流程:

  1. 在会话视图切换器里打开 分支图 / Branch Map。
  2. 从主线开始:在某轮用 + 或 inspector 的 Fork from here 分叉。
  3. 在分支里 Save 结论,用 Save and return 带回父会话。
  4. 用 ⑂N 只展开需要的分支;需要全图时切换 Show all branches。
  5. 用 Mainline / Tree 在「阅读流」与「结构对比」之间切换。
  6. 上下文编辑:在 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 把长工程对话从「一条时间线」变成可比较、可回收结论、可派生干净上下文的分支图,主线保持简洁而不丢掉分叉历史。

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

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

小夜