前言¶
在 DSH 会话中,如果中途想问一个与当前任务无关的快速问题,常规做法要么打断任务(打断 agent),要么让问题混入历史(污染上下文)。Claude Code 的 /btw 提供了另一种选择:在任务运行时提出侧向问题,问答不进入会话历史,也不触发主请求流程。下面的插件把这个行为带到了 DSH,并提供一个浮动面板来展示答案。
是什么¶
wszw142857-beep/dsh-command-btw 是一个 DSH 插件,属于「记忆」分类。它为 DSH 实现了 /btw 命令:在输入框输入 /btw <问题> 后,命令立即返回,问题会被附加到会话的派生历史(session.deriveMessages())中,通过当前会话的 provider/model 路由进行一次不带工具的额外调用,答案流式写入上方的浮动面板。问题和答案只记录为日志事件,不进入模型可见的界面,因此不会污染后续请求的上下文。
核心功能¶
命令行为¶
在输入框输入 /btw <问题> 后,插件执行以下步骤:
- 命令立即返回——输入框马上清空,不会一直挂着这行命令等模型回答;
- 读取会话的派生历史(
session.deriveMessages()),即模型自己看到的那些消息; - 用会话当前的 provider/model 路由额外问一个问题,以上述转录为上下文,不带任何工具;
- 答案流式写入输入框上方的浮动面板。
问题和答案只记录为仅日志的 command/run 和 command/done 事件,不会追加到模型可见的界面上,因此下一次模型请求不包含它们。
浮动面板¶
浮动面板位于视口上方居中,固定定位,不随聊天滚动或输入框伸缩而移动。面板内的文字可自由拖选,点击「复制」可一键复制整条答案。按住标题栏可把面板拖到任意位置,窗口缩放时自动夹回视口内。
面板顶部显示「正在思考…」或「正在输出…」,文字逐步出现。点击「停止」可中止当前调用,已产出的文字保留并附 (已取消)。
面板底部有一个输入框,可直接发下一个 /btw,不必回到主输入框。追问会自己轮询,不会卡在「正在思考…」。面板打开时若页面上有选中文本,会自动附带到追问中,chip 显示字数,点击可移除。
面板内提供 ‹ n/m › 与 ←/→ 翻看本会话之前的问答,每条答案上方以灰斜体显示当时的问题。
点击 ✕ 关闭面板;Esc 仅在焦点位于面板内时关闭,不会抢走 DSH 打断 agent 的 Esc。
持久化与隔离¶
问答内容会持久化到 $DSH_HOME/data/dsh-btw/<session>.json,写入时做了防抖处理,并每周清理一次。每个会话独立的槽位,切换会话不会串台。
安装与启用¶
通过命令行安装:
dsh plugin --profile <name> add dsh-command-btw
或从 GitHub 安装:
dsh plugin --profile <name> add github:wszw142857-beep/dsh-command-btw
本包依赖 @deepseek-ai/schemastery 以激活 Config schema;能解析该包的 profile 通常已自带。
配置¶
在 插件 → BTW 临时提问 → 配置 中可调整以下字段:
| 字段 | 默认 | 含义 |
|---|---|---|
provider |
空 | 路由覆盖,需与 model 同时填写;留空则跟随当前会话 |
model |
空 | 路由覆盖,需与 provider 同时填写 |
maxAnswerTokens |
1200 | 答案输出上限 |
transcriptChars |
96000 | 转录预算(最新的优先保留) |
includeReasoning |
false | 是否把模型的推理过程放进转录 |
reasoningChars |
500 | 开启推理时每条保留的字符数 |
toolArgumentChars |
120 | 工具调用参数片段;0 表示不显示 |
同时填写 provider + model 可以让 /btw 使用比主对话更便宜/更快的模型。
限制¶
- 转录有上限(默认 96,000 字符,最新的优先);单条超预算的内容保留尾部(报错通常在末尾)。
- 图片替换为
[图片];工具结果以文本形式呈现。 - 旁路调用不触发
agent/request,因此不计入 token 统计,也不出现在请求头里。 - 聊天记录里保留一行中性指针(
已提交侧问:…)作为归档;答案本体在面板中。 - 面板固定定位在视口上方;若被拖到别处,重启后会回到默认位置。
适用场景与注意¶
适合需要在会话运行时快速提问、又不希望问题污染上下文或打断 agent 的场景。插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
小结¶
/btw 临时提问插件为 DSH 提供了一种在会话运行时提出侧向问题的机制,问答隔离于主流程之外,答案通过浮动面板展示。配置项支持路由覆盖和输出限制,适合需要在不干扰主任务的情况下进行快速查询或验证的场景。
- 插件目录:https://www.skillhub.cn/plugins/wszw142857-beep/dsh-command-btw
- GitHub:https://github.com/wszw142857-beep/dsh-command-btw