dsh-sidebar-qa:在 DSH 侧边栏划选即问,主对话零打断

前言

在 DSH 里做长对话时,经常需要对某段回复追问细节,又不想打断主线程。常见做法是开新会话、复制粘贴上下文,或切到子窗口——步骤多,主对话也容易被打断。

dsh-sidebar-qa 把这类追问收进右侧侧边栏:划选文本、点「提问」,在同工作区自动建独立会话,主对话继续跑。交互上接近 Codex 的侧边提问,或 Claude Code 的 /btw

这是什么

dsh-sidebar-qa 是 ChenRuoT 维护的 DSH Web 客户端插件,基于 dsh-better-sidebar 注册的第三方拓展 Tab。当前版本 0.4.0,MIT 许可证,GitHub 约 31 stars。

它解决的核心问题:在对话里划选任意文本 → 右侧面板内嵌问答 → 自动创建同工作区独立 DSH 会话(命名形如 ❓<主题>),主对话不被打断。

核心功能

下面按使用路径介绍已核实的能力。

划选提问与内嵌面板

  1. 在任意对话(主对话或已有追问)中划选文本,点击浮层「提问」。
  2. 右侧「追问」面板展开为内嵌对话:引文与问题在侧边栏流式回答,输入框固定在底部,不跳转大窗口。
  3. 右侧面板即使处于收起状态,点「提问」也会自动展开,保证操作有可见反馈。

划选限制(来自源码约束):单条消息内、非流式输出中、不超过 2000 字符。

上下文策略

每次新追问可在三种策略间切换(面板内 chip + 配置默认值 historyStrategy):

  • 全量继承inherit):sessions.fork 从主会话最近已完成 turn 分叉,完整历史随种子继承,首条请求复用主会话消息前缀,利于 DeepSeek 前缀缓存命中。主对话正在回答时会自动降级为「压缩」。
  • 压缩compressed,默认):快速模型压缩较早窗口,近期原文保留。
  • 机械裁切trim):取最近 trimWindowMessages 条消息原文,无 LLM 成本。

智能摘要与独立会话

首条追问前,host 侧用快速无思考模型把主对话上下文压成摘要,与划选引文一起注入首条消息。摘要失败时降级为「仅近期对话 + 引文 + 问题」,问答不中断。

每个追问是同工作区独立会话,可继续追问、可归档。在追问对话里再划选提问,会生成嵌套子追问。

追问记录

侧边栏另有「追问记录」Tab:按根(主)会话分组,以分层树列出当前工作区内所有嵌套追问。节点可折叠,显示最近访问时间;点击跳转后追问记录 Tab 保持开启。已归档或已删除的追问会置灰标注,可从记录中移除(清理 localStorage 映射,不影响 DSH 侧会话本身)。

两段式命名

划选时先用首行文本占位命名;首次回答完成后,host 基于「问题 + 回答」提炼 ≤15 字最终标题并覆盖重命名。

可配置项

配置走 DSH 设置服务 sidebarqa 命名空间。Web 入口:DSH 设置 → 侧边卡片 → 「追问」卡片右上角齿轮「功能配置」。

默认 说明
historyStrategy compressed 默认上下文策略
trimWindowMessages 10 机械裁切保留条数(1–256)
summarizeProvider '' 摘要模型渠道;空则继承被追问会话
summarizeModel deepseek-v4-flash 摘要模型
summarizeReasoningEffort off 摘要思考模式
answerProvider deepseek-official 子对话回答渠道
answerModel deepseek-v4-flash 子对话回答模型
answerReasoningEffort off 子对话思考模式

界面文案与模型侧提示词跟随 DSH 语言设置;回答语言跟随提问/划选内容,不被界面语言绑定。

跨插件调用

外部插件可通过 dsh-better-sidebaropenTab 预填引文,不经划选浮层:

ctx.betterSidebar.openTab(
  { type: 'dsh-sidebar-qa:ask', meta: { quote: { text: '选中的内容', role: 'user' } } },
)

安装与启用

前置依赖

dsh-better-sidebar 必须安装,且需 0.14.0+(对应 DSH 0.1.0-rc.8;rc.7 及更早无法解析本插件 peer 依赖)。未安装时本插件不激活,无 UI 与行为。

dsh plugin --profile web add dsh-better-sidebar@latest

安装插件

# 通过 npm(推荐)
dsh plugin --profile web add dsh-sidebar-qa

# 或本地路径
dsh plugin --profile web add <本仓库路径>

安装后重启 dsh web(host 侧改动需重启;client 侧改动浏览器硬刷新即可)。

典型用法

经过上面的安装步骤,可按下面流程使用。

  1. 打开任意 DSH 对话,划选一段文本,点浮层「提问」。
  2. 右侧「追问」面板出现引文与输入框。输入问题,Enter 发送(Shift+Enter 换行)。
  3. 回答在侧边栏流式显示。底部输入框左侧可选上下文策略,右侧可选模型与查看 context 占用环;继续追问都在面板内完成。
  4. 需要回看历史追问时,切到「追问记录」Tab,按树形结构找到目标会话并跳转。
  5. 调模型或默认策略:设置 → 侧边卡片 → 「追问」→ 齿轮「功能配置」。

新追问时,模型选择与主对话共用 session.models/selectModel 数据。全量继承模式下模型座只读置灰(fork 子会话沿用主对话模型);压缩/裁切模式下为本地草稿,追问会话建好后应用。

适用场景与注意

适合谁

  • 长对话中频繁对局部内容追问,又不想离开主会话上下文的 DSH 用户。
  • 需要类 Codex 侧边提问或 Claude Code /btw 体验、且已在用 dsh-better-sidebar 的开发者。

使用前注意

  • 插件以当前 dsh 进程权限运行,安装前建议阅读 GitHub 源码 与 MIT 许可证。
  • 依赖链:dsh-sidebar-qadsh-better-sidebar@0.14.0+ → DSH 0.1.0-rc.8+。环境过旧时先升级 DSH。
  • SkillHub 目录页(skillhub.cn/plugins/ChenRuoT/dsh-sidebar-qa)为社区独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件是社区第三方拓展,非内置能力。

结尾

dsh-sidebar-qa 把「划选 → 侧边追问 → 独立会话」串成一条零打断链路:主对话继续,追问有记录、可嵌套、可配置上下文与模型。若你已在用 DSH Web 与 better-sidebar,可按上文命令安装试用。

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

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

小夜