dsh-plugin-mind-tree:把 DSH 会话事件日志变成可导航的思维树

前言

在 DeepSeek Harness(DSH)里跑长对话、多轮工具调用、子代理或会话分叉时,上下文往往散在事件流里:哪一轮被编辑重试、哪条是批准分支、token 花在哪,单靠聊天窗口很难一眼看清。常见做法是翻日志或自己记笔记,既慢又容易漏掉分支关系。

下面介绍社区插件 dsh-plugin-mind-tree(界面名「思维树」):遍历当前会话的完整事件日志,识别各类分支节点,在右侧栏渲染紧凑纵向大纲树,并支持 token 统计、三档过程信息削减,以及 Mermaid / 大纲 / Obsidian 画布导出;无 GUI 的终端会话里还可通过宿主注册的 mind_tree 工具生成同样格式的输出。

这是什么

dsh-plugin-mind-tree 由 ShOpenMind 维护,仓库 github.com/ShOpenMind/dsh-plugin-mind-tree,MIT 许可证。在 SkillHub 目录中归类为「模型推理」。

一句话定位:遍历 DSH 对话上下文,列出分支节点,并把它们渲染成思维树(含会话血缘 / 会话森林),同时提供导出与终端侧 mind_tree 工具。

核心功能

思维树与导航

插件遍历当前会话的完整事件日志,把「轮次 → 消息 → 工具调用 → 结果」组织成紧凑纵向大纲树(适配窄侧栏、纵向滚动)。默认只展开最新一轮,工具栏可「展开全部/折叠全部」,点三角逐级展开。点轮次前的三角展开时会自动定位到对话中对应位置;有对话位置的行右侧提供 ↗ 跳转。

轮次统计与搜索

每轮显示消息条数与 token 消耗;输入/输出/缓存读/缓存写/思考/合计/耗时等在详情面板中细分。工具栏搜索框按文本过滤节点(保留祖先结构、命中行高亮),清空即恢复。

过程信息三档削减

展示与导出共用档位,宿主始终返回完整数据,可随时切回「完整」:

档位 保留内容 README 实测(2491 节点 / 15 轮)
精简(默认) 轮次 + 用户真实发言 + 全部分支点 + 每轮「工具活动 ×N」聚合 + 每轮答复 119 节点,大纲约 8 KB
标准 精简 + 实质性过程文本(≥60 字)与每条工具调用(不含工具输出) 1259 节点,约 136 KB
完整 全部节点,与事件日志一一对应 2491 节点,约 286 KB

分支节点识别

插件会标记例如:替换分支(消息编辑/重试后旧内容脱离上下文)、llm/retry、用户选择(ask_user_question)、批准决策(approval/asked / approval/decided)、派生子代理/工作流/团队(subagent、subagent_fork、workflow、spawn_teammate)、目标变化(goal/change)、任务分解(todo_write)、计划模式(plan/mode)、上下文压缩(compaction/*)、会话分叉(turn/end 的 forked)等。

会话血缘与会话森林

跨会话展示派生(子代理)与分叉关系;点击子会话可直接打开或查看其思维树。

导出

三种格式均支持「另存为」,可直接存进 Obsidian 库:

  1. 思维导图 Markdown(默认):内嵌 Mermaid mindmap,Obsidian 打开即可显示(零插件);去噪后保留轮次、分支点、用户真实发言与子会话。
  2. 大纲 Markdown:全量节点(YAML + 嵌套列表),适合 Markmap / Markmind 等。
  3. Obsidian 画布 .canvas:原生画布格式,导入后可拖拽编辑。

GUI 还可导出含分支标记与 token 统计的 Markdown / Canvas;配色可在工具栏「配色 ▾」中自定义(保存在本机 localStorage)。

其他 GUI 行为

  • 会话产生新事件时自动刷新。
  • 左侧会话列表行「…」菜单可选「查看思维树」。
  • 首次加载会自动展开右侧栏并定位到思维树页签。

安装与启用

不要使用以 .git 结尾的 GitHub 仓库地址或 …/main.tar.gz 类 archive 包(README 说明会导致 git 依赖或「无法从依赖变更中确定安装了哪一个包」)。本插件尚未发布到 npm,裸包名 dsh-plugin-mind-tree 查不到。

方式一(推荐):插件页粘贴 Release 的 .tgz

在 DSH 插件页 → 添加插件 粘贴固定链接(始终指向最新 release):

https://github.com/ShOpenMind/dsh-plugin-mind-tree/releases/latest/download/dsh-plugin-mind-tree.tgz
  1. 点「添加插件」→ 粘贴地址 →「安装」(约半分钟)。
  2. 在插件列表中启用「思维树 / dsh-plugin-mind-tree」。
  3. 完整重启 DSH(仅刷新网页不够):桌面版 Command + Q / Ctrl + Q 后重开;npx @deepseek-ai/dsh web 则 Control + C 后重新执行。

网络不通时,可在 Releases 下载 .tgz,用本地文件路径安装。升级若遇「下载的安装包校验失败」,README 建议改用带版本号的地址,例如:

https://github.com/ShOpenMind/dsh-plugin-mind-tree/releases/download/vX.Y.Z/dsh-plugin-mind-tree-X.Y.Z.tgz

方式二:命令行

dsh plugin 通过档案目录下的 pnpm 转发,使用 add:

dsh plugin --profile <档案名> add https://github.com/ShOpenMind/dsh-plugin-mind-tree/releases/latest/download/dsh-plugin-mind-tree.tgz
# 或本地目录
dsh plugin --profile <档案名> add /absolute/path/to/dsh-plugin-mind-tree

装好后仍需在插件页启用(plugin add 只装包)。

前置条件

  • GUI 思维树页签:档案需包含 @deepseek-ai/dsh-web-app(桌面版 / dsh web 默认包含)。
  • 纯终端档案:仅 mind_tree 工具可用。
  • Node:engines 要求 >=22。
  • DSH 版本:peerDependencies 为 @deepseek-ai/dsh: ">=0.2.0-rc.2 <0.3.0"(optional peer);不匹配时安装/激活可能被 DSH 拦截。

宿主半区代码变更需完整重启应用才会生效;跨版本升级前 README 建议运行仓库内 tools/integration-test.mjs 与 tools/host-test.mjs。

典型用法

网页侧

安装、启用并重启后,右侧栏出现「思维树」标签页。在树中展开轮次、搜索过滤、切换过程信息档位,再用导出菜单生成 Mermaid 导图、大纲或 .canvas。

终端 / Agent:mind_tree 工具

插件不提供独立 CLI 子命令;终端入口为宿主注册的 mind_tree 工具(与 GUI 导出共用 lib/format.js):

参数 说明
sessionId 目标会话;省略则用当前会话
format mindmap(默认)/ outline / canvas / json
view tree(默认)/ lineage / forest;后两者仅 outline、json
level compact(默认)/ standard / full;作用于 outline 与 json
writeTo 绝对路径;写文件并只返回摘要(推荐,避免大内容进上下文)

不写文件时返回内容超过 4 万字符会截断并提示改用 writeTo。例如让 agent 执行:

dsh -p "把当前会话的思维导图导出到 D:/vault/x.md"

(由 agent 调用 mind_tree 并传入合适的 writeTo。)

适用场景与注意

适合谁:需要审计长会话结构、理清分支与 token 消耗、把会话归档到 Obsidian 或 Markmap 工作流的 DSH 用户。

权限与安全:插件在当前 DSH 进程权限下运行,可读取会话事件并通过 writeTo 写文件。安装前应查看 源码与 LICENSE;缺失依赖或工具注册失败时,README 说明会写入宿主日志并在 GUI 显示兼容性横幅(客户端探针的 hostWarnings)。

生态说明:DSH 采用「一切皆插件」思路;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

经过上面的步骤,你可以在 GUI 里导航整段对话的分支与 token,或在终端用 mind_tree 导出与界面一致的 Mermaid / 大纲 / 画布。更多信息见目录页 skillhub.cn/plugins/ShOpenMind/dsh-plugin-mind-tree 与 GitHub ShOpenMind/dsh-plugin-mind-tree。

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

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

小夜