前言¶
DSH 社区目录是一个独立站点,与 DeepSeek / 幻方没有官方从属关系。在 DSH「一切皆插件」的思路下,很多开发者会围绕自己的会话流程加装轻量工具。
长会话里常见的问题是:中间有大量调试、报错、反复修改和终端输出,最后真正需要留下的却只有结论、决策、待办和文件产出。dsh-sessiongraph 是 lwklbb 维护的一个 DSH web 插件,用来读取当前会话,把内容整理成可编辑、可复制的结构化大纲与导图。
下面介绍它的功能、安装方式、典型用法和提取规则。
这是什么¶
dsh-sessiongraph 是一个给 DSH 用的小插件,目标是把当前会话整理成可编辑、可复制的结构化大纲与导图。
它的特点是:
- 只在当前 DSH 会话页面上增加一个按钮入口。
- 不接管原来的输入框。
- 不修改会话持久化文件。
- 只读当前页面已有的会话快照。
- 真正功能在浏览器侧完成。
MIT许可,维护者是lwklbb。
package.json 中的 package 名是 dsh-sessiongraph,仓库地址是 https://github.com/lwklbb/DSH-SessionGraph。
核心功能¶
插件在会话输入框上方右侧增加一个 SessionGraph ▾ 按钮。
点击后,它会读取当前会话内容,提取以下信息:
- 会话目标
- 最终结论
- 关键要点
- 决策与取舍
- 待办 / 下一步
- 文件 / 产出
同时,它会过滤一些明显不需要进入导图的内容,例如:
stack trace- 终端日志
stdout、stderr、exit codenpm err、pnpm errwarning、debug、verbose日志- 重复试错过程
- 大段终端命令输出
整理结果可以在弹窗里继续编辑,支持手动修改节点、增加子节点、删除不想要的节点,也支持一键复制导出结果。
三种导图模式¶
插件支持三种模式:
| 模式 | 内容 | 适合场景 |
|---|---|---|
| 默认导图 | 会话目标、最终结论、关键要点、决策与取舍、待办、文件 / 产出 | 平时整理一段会话 |
| 精简导图 | 只保留最终结论和待办 | 快速复盘、交接、写 commit 前看一眼 |
| 详细导图 | 默认导图 + 压缩后的时间线 | 会话比较长,想回头看过程时使用 |
导出格式¶
目前支持这些格式:
Markdown大纲MermaidmindmapPlantUMLmindmapXMind缩进文本- 待办清单简介
这些格式都适合复制后继续编辑,例如贴进文档、代码仓库说明、复盘记录或思维导图工具。
安装与启用¶
插件要求:
engines.node: >=20dsh.client.platform: web
在插件目录里执行:
dsh plugin --profile web add .
这条命令的作用是把当前目录作为插件加入 DSH 的 web profile。
安装后重启或刷新 DSH,打开一个已有内容的会话,就能看到输入框上方右侧的 SessionGraph ▾ 按钮。
如果只是想确认安装入口,不建议凭仓库名直接拼接远程安装命令;已核实资料里给出的本地安装方式就是上面的 dsh plugin --profile web add .。
典型用法¶
下面是一组常见流程:
- 打开一个已经有一定内容的 DSH 会话。
- 点击输入框上方右侧的
SessionGraph ▾按钮。 - 选择默认导图、精简导图或详细导图。
- 在弹窗里检查生成的节点。
- 手动删除无关节点,补充遗漏结论或待办。
- 点击一键复制,导出 Markdown、Mermaid、PlantUML、XMind 缩进文本或待办清单简介。
这个流程适合用在:
- 一次开发会话结束后做简短复盘。
- 把长对话压缩成一份可交接的要点。
- 写
commit message或任务记录前快速回顾结论。 - 把会话中的文件产出整理成清单。
提取规则¶
主要解析逻辑在 lib/extractor.js。当前实现是本地规则,不依赖额外模型。
大致流程如下:
- 从当前
ConversationSnapshot里读取用户消息和助手消息。 - 默认跳过
reasoning/thinking内容。 - 对每一行做清理,过滤明显噪声。
- 优先保留最后几条助手回复里的结论。
- 识别一些结论类关键词。
- 从文本里抓取疑似文件路径,放进“文件 / 产出”节点。
它会识别这些关键词:
结论总结完成结果决定待办下一步TODODecisionSummary
文件路径会被放到“文件 / 产出”节点里,便于后续整理。
需要注意的是,这套规则不是完整记录所有过程,而是为了快速得到一份现在还能用的信息。
项目结构¶
仓库结构大致如下:
DSH-SessionGraph/
├─ cordis.patch.yml
├─ lib/
│ ├─ index.js # host 侧入口,目前保持 no-op
│ ├─ client.js # 浏览器 UI 和 slot 注册
│ └─ extractor.js # 会话解析、导图生成、格式导出
├─ test/
│ └─ extractor.test.mjs
├─ docs/
│ └─ sessiongraph-showcase.png
├─ package.json
├─ LICENSE
└─ README.md
其中:
lib/index.js是 host 侧入口,目前只是空实现。lib/client.js负责浏览器侧 UI 和 slot 注册。lib/extractor.js负责会话解析、导图生成和格式导出。
核心函数包括:
extractMessages(snapshot):从会话快照提取可用消息。summarizeSession(snapshot, mode):按模式生成导图树。exportGraph(tree, format):把导图树导出为Markdown、Mermaid、PlantUML、XMind或TODObrief。
适用场景与注意¶
适合以下场景:
- DSH 会话比较长,希望快速提取结论。
- 需要在开发、调试、排查问题后整理一份要点。
- 需要把会话中的待办和文件产出单独复制出来。
- 想把一次会话转成可编辑的
Markdown、Mermaid、PlantUML或XMind大纲。
使用前需要注意:
- 它只读取当前页面已有的会话快照,不修改会话持久化文件。
- 它会主动过滤一部分过程噪声,因此结果不是完整聊天记录。
- 它会以当前 DSH 进程拥有的权限运行,安装前应检查源码、依赖和许可证。
- 当前实现面向 web 端,依赖关系在
package.json中声明。
项目地址:
- GitHub:
https://github.com/lwklbb/DSH-SessionGraph - 许可证:
MIT © 2026 lwklbb