← 返回文章

dsh-synapse:把会话做成画布节点的非线性对话工作区

更新于

把会话做成画布节点的非线性对话工作区。

dsh-synapse 的官方界面或演示截图
封面:来源 · 以仓库为准

liangmianya 的 dsh-synapse 把同一工作区里的会话、追问和分支摆到一张可拖拽、可缩放的画布上。它不新建一套聊天记录,而是给 DeepSeek Harness 的原生会话加一层地图视图:卡片之间按 DSH 自己的 fork 关系连线,消息正文仍从原来的会话日志读取。

dsh-synapse 的界面或功能演示截图
DSH 原生对话顶部的“会话地图”入口(仓库截图)

先确认装进哪套 profile

DSH 按 profile 分套安装插件,桌面 App 与命令行各用一套。命令行用户执行:

corepack pnpm dsh plugin --profile web add dsh-synapse
corepack pnpm dsh web

桌面 App 则把 web 换成 desktop。插件要求 DSH 0.1.7-rc.2 及以上、Node.js 22.19.0 及以上,旧版本不兼容。桌面端装完要重启 App,命令行装完要重启 dsh web 并刷新页面。从 App 内的插件页面安装时,App 会自动装进它自己用的那套,不用管 profile。自检方法很朴素:页面顶部看不到“会话地图”开关,通常就是装到了另一套 profile。

地图上保存了什么

画布节点对应真实会话,分支按 DSH 原生 fork 关系连接,不做二次编排。选中回答里的文字可以直接带入新的追问,常用补充词可以编辑;在地图和原生对话之间切换时,当前上下文保持一致,仍是同一个 DSH 会话。Synapse 只投影已经提交的事件,不拦截生成中的内容。

追问与分支的走法

长任务里常见的动作是“沿着这个方案再问一层”或“换一个实现思路对比”。原生对话的历史沿单条时间线展开,早先的分叉不容易并排比较;在会话地图里,可以直接在卡片上分叉,旧分支留在原位,新分支单独延伸。需要回到早先的结论时,缩放画布比翻聊天记录更容易定位。

数据放在哪里

布局和每轮对话的短预览存在 $DSH_HOME/synapse/,消息正文按需从 DSH 会话记录读取。删掉这个目录只会丢布局,不会丢会话;布局文件可以单独清理,会话正文仍要随 DSH 的会话目录一起迁移。README 还写明插件不修改 prompt、模型请求、工具 schema、provider 路由,也不碰可复用的 KV-cache 前缀;内置 patch 通过 profile 的 bundle 列表引入,桌面与命令行都适用。

适合它的任务

同时比较三套技术方案、让每个方案各自追问几轮,最后回到分叉点做取舍;或者一个长任务中途换方向,需要保留原路线备查。分叉前不必复制大段上下文,回答里的选区可以直接带过去。短问答和一次性脚本不需要画布,节点反而增加点击成本。

与聊天记录、思维导图的差别

原生会话列表是线性的,分支被折叠在历史里;思维导图工具能画结构,但内容通常是另存一份。dsh-synapse 的取舍是“地图只做导航,事实仍归 DSH”,因此不会出现两份内容不一致的问题。这套做法把探索过程留在 DSH 内,不必再导出到外部笔记。代价是它依赖 DSH 的 fork 语义,换到别的宿主就用不了。

限制

版本门槛不低:DSH 要 0.1.7-rc.2 及以上,Node.js 要 22.19.0 及以上,宿主升级后还要跟着更新;桌面与命令行的 profile 分离,第一次安装容易装错,两套 profile 的会话与布局也互不相通。画布节点多起来后仍需要手动整理,拖拽与缩放能缓解定位问题,但 README 没有承诺自动布局能解决复杂项目。本文按官方 README 与仓库元数据整理,未在本机完整实测。

适合谁

适合长期用 DSH 做方案研究、代码重构或多路线实验的人,尤其是那些经常回看“当时为什么选了这条”的用户。只做简短问答、或者习惯用外部笔记整理结论的人,原生会话已经够用。

官方入口