dsh-conversation-tree:把工作区对话与分支画成一棵树

前言

在 DeepSeek Harness(DSH)里做探索性对话时,常见做法是从某一轮再开一条会话试另一条路。分支多了之后,会话列表只能看到平行条目,很难一眼看清「谁从谁分出来、分在第几轮、哪条还在动、各条各自吃了多少 token」。若还要把某条分支的结论汇总回主线,往往得在多个聊天页之间来回翻。

dsh-conversation-tree 是面向 Web 的 DSH 插件:在同一工作区内,把对话及其通过插件分叉出的分支绘制成可平移、缩放的树形画布,并附带用量明细、对比、带回摘要、归档与子树删除等管理能力。分支仍是普通 DSH 会话,模型、工具与斜杠命令不受影响。

这是什么

  • 名称:dsh-conversation-tree(npm 包名 @jiangyuxue666/dsh-conversation-tree)
  • 维护者:jiangyuxue666
  • 分类:记忆(社区目录 SkillHub 归类)
  • 许可:MIT
  • 定位:工作区级的对话树视图;树关系除注册表外,也会在分支会话日志中记录边,注册表丢失时可从日志恢复祖先链。

插件以当前 DSH 进程权限运行,安装前建议自行审阅仓库源码与许可证。

核心功能

下面按「看图谱 → 分叉 → 管理」顺序说明 README 中已列出的能力。

工作区画布与节点信息

  • 每条对话一棵树,多棵树排在同一块画布上;当前对话排在首位并高亮。
  • 节点详情包括:来源、分支轮次、层级、当前会话轮次与步数、token 明细、缓存命中率、模型。
  • 无分支的对话默认收在画布底部,点一下展开;多棵树时可用标题行箭头收起单棵树。
  • 未读点:某分支在你上次查看后有新活动,节点右上角显示小点。

分叉与备注

  • 在任意已完成轮次底部执行「对话树分支」,新会话继承该轮之前的上下文,并记录来源对话、轮次与分支点摘要。
  • 侧栏「从这里再分一支」可对当前对话再分叉,无需回到聊天页滚到底。
  • 可为对话或分支起备注,显示在节点上;备注写在插件注册表,不写会话日志。搜索可命中标题与分支点片段。新建分支默认把分叉那句截成 18 字作备注。

对比、导出与整树概览

  • 选中节点后侧栏「对比」再选另一节点,或 Shift + 点击,并排查看轮次、步数、工具调用、用量、模型及各自开头几条问与最后结论。
  • 导出:将整棵树的层级、标题与备注导出为 Markdown 提纲。
  • 这棵树走到哪了:一键让模型读完树上分支,输出一段话(各条结论、卡点、哪条值得留);仅在点击时执行,不自动跑。

带回、归档与删除

  • 带回:后台读取来源会话当前上下文(含继承上下文与已有压缩摘要),用来源当前所选模型及服务商生成摘要;预览、编辑并确认后,才以排队消息送入目标会话。生成过程不创建可见会话,也不向来源对话追加消息;上下文可能含敏感数据,发送前须自行检查。
  • 归档与删除在侧栏;删除范围仅限本插件创建的分支。根对话不可删除;分支归档走 DSH 原生归档,可撤销。
  • 子树删除在 README 标明已在 macOS 与 Windows 上验证 JSONL 会话后端;其他平台仍可创建、查看与带回。

搜索与键盘

跨树搜索标题与分支点片段并居中;支持方向键、Enter、Home/End、+/-、f。拖拽空白平移,滚轮缩放;右下角按钮适应画布(小树最多放大到 150%)。

范围与限制(使用前须知)

  • 树只管理通过「对话树分支」创建的会话;DSH 原生分支按钮创建的会话不在此视图。
  • 工作区会话超过 2000 个时仅显示前 2000 个并提示;很大时用量统计只覆盖当前对话附近若干棵树。
  • 关系数据存放在 $DSH_HOME/conversation-tree.json;侧边栏或其它插件删除会话后,树会在下次读取时校正节点关系。

安装与启用

要求 DSH 版本 >=0.2.2-rc.1 <0.3.0。安装会写入 profile 的 dsh.profile.bundles,重启 DSH 后生效。

推荐用 GitHub 压缩包地址安装(README 写明不需要 git、不需要 GitHub SSH 密钥):

dsh plugin --profile web add https://github.com/jiangyuxue666/dsh-conversation-tree/archive/refs/heads/main.tar.gz

要固定版本,将 refs/heads/main 换成 refs/tags/<version>;README 示例为 refs/tags/v0.11.1。package.json 中当前版本为 0.11.2,固定时可改用对应 tag。

也可用仓库简写(部分环境下 github: 会走 git/SSH,无密钥可能报 Permission denied):

dsh plugin --profile web add github:jiangyuxue666/dsh-conversation-tree

简写失败时改用压缩包地址。也可在 DSH「设置 → 插件 → 添加插件」中填写上述任一地址。

本地开发以目录链接挂载:

dsh plugin --profile web add /path/to/dsh-conversation-tree

修改后重启 DSH 即可,无需重新安装。

典型用法

按 README 给出的步骤操作即可复现基本流程:

  1. 打开目标对话,定位到需要分叉的轮次。
  2. 点击消息底部的「对话树分支」。
  3. 点击顶部「对话树」标签,查看整个工作区的树。
  4. 单击节点看详情,双击打开会话。
  5. 拖拽平移、滚轮缩放;需要时用右下角按钮适应画布。
  6. 在来源节点侧栏点「带回」,选目标对话并生成摘要;检查预览后点「发送」才排队送入目标。
  7. 在侧栏底部归档或删除子树。

适用场景

  • 在同一工作区里并行试多条方案(改 prompt、换工具链、不同模型),需要看清分支血缘与各条 token 用量。
  • 长任务拆成多线探索后,要用「对比」或「这棵树走到哪了」做阶段性收口,再把摘要「带回」主线。
  • 分支增多后,用备注、搜索和导出 Markdown 提纲做归档与交接。

不适合指望管理 DSH 原生分支按钮产生的会话,或依赖 Linux 等平台上的子树删除(删除能力以 README 兼容性说明为准)。

结尾

dsh-conversation-tree 把「分叉会话」从列表条目升级为可缩放管理的树:血缘、用量、对比、带回与归档集中在一页。社区目录与源码如下,功能与安装命令以仓库 README 为准。

  • 目录页:https://www.skillhub.cn/plugins/jiangyuxue666/dsh-conversation-tree
  • GitHub:https://github.com/jiangyuxue666/dsh-conversation-tree
羽毛球分组比赛记分
小程序二维码

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

小夜