前言¶
在 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 会话(命名形如 ❓<主题>),主对话不被打断。
核心功能¶
下面按使用路径介绍已核实的能力。
划选提问与内嵌面板¶
- 在任意对话(主对话或已有追问)中划选文本,点击浮层「提问」。
- 右侧「追问」面板展开为内嵌对话:引文与问题在侧边栏流式回答,输入框固定在底部,不跳转大窗口。
- 右侧面板即使处于收起状态,点「提问」也会自动展开,保证操作有可见反馈。
划选限制(来自源码约束):单条消息内、非流式输出中、不超过 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-sidebar 的 openTab 预填引文,不经划选浮层:
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 侧改动浏览器硬刷新即可)。
典型用法¶
经过上面的安装步骤,可按下面流程使用。
- 打开任意 DSH 对话,划选一段文本,点浮层「提问」。
- 右侧「追问」面板出现引文与输入框。输入问题,Enter 发送(Shift+Enter 换行)。
- 回答在侧边栏流式显示。底部输入框左侧可选上下文策略,右侧可选模型与查看 context 占用环;继续追问都在面板内完成。
- 需要回看历史追问时,切到「追问记录」Tab,按树形结构找到目标会话并跳转。
- 调模型或默认策略:设置 → 侧边卡片 → 「追问」→ 齿轮「功能配置」。
新追问时,模型选择与主对话共用 session.models/selectModel 数据。全量继承模式下模型座只读置灰(fork 子会话沿用主对话模型);压缩/裁切模式下为本地草稿,追问会话建好后应用。
适用场景与注意¶
适合谁
- 长对话中频繁对局部内容追问,又不想离开主会话上下文的 DSH 用户。
- 需要类 Codex 侧边提问或 Claude Code
/btw体验、且已在用dsh-better-sidebar的开发者。
使用前注意
- 插件以当前
dsh进程权限运行,安装前建议阅读 GitHub 源码 与 MIT 许可证。 - 依赖链:
dsh-sidebar-qa→dsh-better-sidebar@0.14.0+→ DSH0.1.0-rc.8+。环境过旧时先升级 DSH。 - SkillHub 目录页(skillhub.cn/plugins/ChenRuoT/dsh-sidebar-qa)为社区独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件是社区第三方拓展,非内置能力。
结尾¶
dsh-sidebar-qa 把「划选 → 侧边追问 → 独立会话」串成一条零打断链路:主对话继续,追问有记录、可嵌套、可配置上下文与模型。若你已在用 DSH Web 与 better-sidebar,可按上文命令安装试用。