@deepseek-ai/dsh-fusion
Fuse two or more DeepSeek Harness conversations into one durable, continuable session
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:omdsh-dev/dsh-fusion说明文档
阅读完整 README ↗dsh-fusion
English | 中文
面向 DeepSeek Harness 的多会话融合 bundle。它把两个或更多现有会话在调用时的当前模型表层,组合成一个拥有独立 id、标题、agent 和持久化日志的新会话;保留消息会成为目标会话自身的原生日志事件,新会话可继续对话,不会修改任何源会话。
能力
- 融合 2 到 32 个会话,部署默认上限为 8。
chronological按事件时间合并;by-source按调用者给出的源顺序分组。- 默认按稳定 message id 去除 fork 会话共享的历史前缀,不会把偶然相同的自然语言误判为重复。
- 只投影 user/assistant 的文本块;忽略 reasoning、tool call 和 tool result。
- 继承调用者的 cwd、provider/model 选项和创建时记录的 agent preset。
- Host 提供 Workspace 注册表时,把新会话自动加入调用者/同 cwd 源会话所在分组。
- 标题优先采用显式输入,其次采用 Agent 规划标题,最后根据源会话当前标题自动生成。
- 生成确定性的
session/title、可忽略的融合清单、不可信历史边界,以及带合法目标 turn/step 结构的原生user/message/assistant/message,随后执行session/flush持久化检查点。 - 默认只允许融合与调用者 cwd 相同的会话;跨工作区必须由部署显式启用。
- 规划输入使用标签安全 JSON;目标会话以系统级规则和表层边界把后续历史标记为不可信背景,避免旧会话内容获得当前授权。
- 可选启动一个临时、无工具的 DSH Agent,先判断话题是否值得融合,再以结构化方案剪枝、按话题分组和重排;方案引用会由服务端逐项校验。
安装
本包是自带 cordis.patch.yml 的 DSH bundle:
dsh plugin --profile web add /path/to/dsh-fusion
重启 DSH 进程后,profile 会加载 @deepseek-ai/dsh-fusion,界面斜杠菜单中出现 /fuse,模型工具目录中出现 conversation_fuse。所选 profile 必须提供 agents、commands、sessions、sessionQuery、systemPrompt 和 tools 服务。@deepseek-ai/dsh-fusion/invariant 是供带 invariants 服务的组合按需挂载的可选入口,不在默认 bundle 中启用。
界面操作
在任一 DSH 对话的标题栏点击 融合对话。弹窗会自动包含当前对话,并列出同工作区内其他非空对话,可执行以下操作:
- 按标题或 session id 搜索并多选来源。
- 设置可选的新对话标题;留空时根据源对话标题自动生成。
- 选择按时间顺序或按来源分组。
- 决定是否去除 fork 产生的共享历史。
- 可启用 使用 Agent 智能规划,让临时 DSH Agent 判断融合价值并自动剪枝、分组和排布;Agent 不建议融合时不会创建新会话。
- 创建后新对话会进入当前来源所在分组,可直接打开;若列表仍在同步,按钮会在新对话出现后自动可用。
弹窗通过 DSH 的命令通道执行并保留命令记录。手动模式不会发起额外模型调用;启用智能规划后,只有已经过工作区授权、文本投影和字节限制的候选快照会发送给临时规划 Agent。也可以在输入框中手动使用:
/fuse [更多会话ID...]
例如,当前会话为 session-research,希望再融合实现与评审会话:
/fuse session-implementation session-review
/fuse 会自动把当前会话作为第一个来源,因此只需填写其他会话 id;也可用逗号分隔。默认按时间顺序融合并去除 fork 产生的共享历史。无参数时会显示用法;无效、跨工作区或不存在的会话会直接显示错误。