dsh-ask-in-sidebar:基于主对话快照的侧边栏提问插件

在 DSH Web 的使用场景中,用户往往需要对助手回答中的某一段具体文本进行追问。如果直接在主对话中追加消息,会破坏当前的流式输出和上下文连贯性;如果开启新的会话,则过于沉重且难以回溯。dsh-ask-in-sidebar 插件通过创建一个临时的、隔离的侧边栏,解决了这一痛点。

这是一个由 Ruiming-cn 维护的联网工具类插件。它允许用户在主对话中选中助手文本后,在右侧面板中基于主对话的快照进行提问和讨论,且不修改主对话内容。

核心功能

  1. 选区交互:在主 DSH 对话中选中助手回答中的任意文本(方案、术语、解释等),选区旁会出现一个浮动操作按钮“在侧边栏提问”。
  2. 侧边栏面板:点击按钮后,右侧会打开一个临时面板。面板内显示引用的选中文本、问题输入框,以及持续更新的讨论记录和实时流式输出。
  3. 思考过程展示:面板中支持展示可折叠的思考过程,并显示思考时间、首字时间、总耗时和 token 用量(可用时)。
  4. Markdown 渲染:回答内容以 Markdown 安全渲染,支持标题、列表、行内代码、代码块、引用、链接和表格。
  5. 快照机制:首个问题基于主对话在发起提问时的已有 LLM 消息历史快照 + 引用文本进行回答。同一侧边栏讨论内支持连续追问。
  6. 状态管理:关闭面板即丢弃当前讨论及其 host 端内存快照。重新选中其他助手文本发起新提问时,会建立新的讨论并重新获取主对话上下文快照。

安装与启用

该插件要求本地 DSH Web profile,以及 Node.js 20+ 环境。

安装命令:

dsh plugin --profile web add github:Ruiming-cn/dsh-ask-in-sidebar

也可以通过以下方式安装:
* 从固定版本 Release 安装:

    dsh plugin --profile web add https://github.com/Ruiming-cn/dsh-ask-in-sidebar/archive/refs/tags/v0.2.0.tar.gz
  • 从本地检出构建后安装:
    npm run build
    dsh plugin --profile web add /path/to/dsh-ask-in-sidebar

典型用法

  1. 打开 DSH Web 对话。
  2. 选中助手回答中的一段文本。
  3. 点击出现的“在侧边栏提问”按钮。
  4. 在面板的问题输入框中输入问题(例如“为什么这么做?”或“这是什么意思?”),按 Enter 或点击“发送”。
  5. 在面板中阅读回答,并可继续追问。
  6. 随时关闭面板返回主对话。

适用场景与注意

适用场景:适合需要对特定技术细节进行深入探讨,且不希望打断主对话流,也不希望引入复杂工具调用的场景。

重要注意:

  • 上下文复用:模型上下文跟随主会话。主对话很长时,侧栏请求也会较大,因为完整派生历史会被复用。
  • 权限限制:插件不向侧栏模型提供任何工具,因此无法从面板调用 host 工具或修改工作区。
  • 渲染限制:Markdown 渲染是轻量实现,未覆盖全部 Markdown 扩展语法(例如复杂表格嵌套、脚注、任务列表等)。
  • 进程内状态:临时快照是进程内状态。Host 重启后快照会丢失;重启后的追问会回退到当前主对话上下文快照。
  • 技术依赖:面板是纯 DOM 浮层,不是 DSH 原生 slot,依赖当前 Web UI 的 data-chat-flow-kind="assistant-step" 对话 DOM 约定。

总结

dsh-ask-in-sidebar 为 DSH Web 用户提供了轻量级的上下文追问能力。通过快照机制和独立的侧边栏视图,它在保持主对话完整性的同时,提供了针对性的讨论空间。

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

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

小夜