dsh-conversation-branches:在主对话中开启独立问答分支

在 DeepSeek Harness(DSH)应用开发中,常遇到需要在当前对话上下文中针对特定片段进行深入分析的需求。直接在主对话中插入会打断上下文,而新建会话又过于繁琐。dsh-conversation-branches 插件通过选区提问的方式,在右侧详情列提供 IM 风格的独立问答分支,解决了这一痛点。

插件简介

该插件由 Caramel-Geass 维护,采用 MIT 许可证。它允许用户选中主对话文本,随即在详情列开启独立的流式问答会话,且数据随主会话持久化。

安装与启用

这是一个 dsh bundle 插件,通过 dsh.bundle 声明,添加后无需手写挂载配置,会自动成为 profile 的 composition 层。

安装命令如下:

dsh plugin --profile <name> add @deepseek-ai/dsh-conversation-branches

核心功能

  • 选区提问:选中主对话文本即弹出提问框,针对选中片段发起独立问答,不打断主对话。
  • IM 气泡对话:分支以聊天气泡呈现,支持流式输出及同一分支内的多轮追问。
  • 随会话持久化:分支数据作为 fork/branch log-only 事件写入会话日志,重新加载时按顺序重放。
  • 定位高亮:点击分支卡片中的“选中片段”可定位回主对话并短暂高亮。
  • 折叠 / 删除:分支卡片可折叠为一行,支持删除。

典型用法

  1. 在主对话正文中选中一段文本。
  2. 弹出提问框,输入问题后回车(或点击’提问’)。
  3. 右侧详情列出现分支面板,开始流式回答。
  4. 可继续’追问’;点击’选中片段’定位回主对话;折叠或删除分支。

技术细节

依赖项

  • 运行依赖:@deepseek-ai/dsh-session、@deepseek-ai/dsh-typert-protocol。
  • Peer 依赖:react、@deepseek-ai/dsh-client-connection。

命名空间解析

插件自挂载 conversationBranches Remote 命名空间。由于挂载者与本插件是兄弟 fiber,直接通过 ctx.remote.conversationBranches 的 fiber-store 链解析会导致死锁。因此,统一通过 ctx.get('remote.conversationBranches') 走共享 reflect store 解析。

总结

dsh-conversation-branches 通过提供一种非侵入式的分支交互方式,增强了 DSH 会话的灵活性。开发者可参考 GitHub 仓库 获取更多源码与开发细节。

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

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

小夜