dsh-btw:在 DSH 会话里做不污染主线的 btw 旁问

前言

在 DSH 里跑长任务时,主会话往往已经堆了不少上下文。中途若有个术语、某段输出想确认含义,直接在主输入框里插一句,回答会进入主会话记忆,可能打断当前任务节奏,也会让后续轮次带上未必需要的旁支信息。

下面介绍的 dsh-btw(npm 包名 dsh-btw-plugin)面向这类需求:在继承当前会话上下文的前提下,用独立浮窗做一次性旁问;回答默认只留在弹窗里,需要留痕时再经摘要预览后「送入主会话」。维护者为 yanzoro926,仓库 yanzoro926/dsh-btw,分类为客户端插件,许可证 MIT(见仓库 README)。

这是什么

一句话定位:btw(by the way)旁问——临时对话框,继承会话上下文,可选上下文范围与选中文本引用,旁问专用模型与参数;默认不把问答写回主会话,可选压缩摘要经确认后写入。

核心功能

以下能力均来自官方 README,安装前可在 GitHub README 对照界面截图。

打开方式与回答展示

  • 输入框右侧 btw 按钮,或输入 /btw 命令,打开独立浮窗。
  • 回答流式显示,支持 Markdown;Enter 发送,Shift+Enter 换行。

继承会话上下文

  • 自动携带当前会话模型可见历史。
  • 上下文栏可在「自动 / 最近 40 条 / 最近 120 条 / 全部 / 全部但不含工具输出」之间切换,显示将发送条数与估算 token;超出上限时从旧到新裁剪并标出省略条数。

弹窗内追问与选区引用

  • 同一弹窗可继续追问;前几轮问答作为上下文回传(有上限),仍不写回主会话。
  • 先选中一段文字再点 btw,弹窗引用该段(最多 2000 字符);引用条右侧 × 可清除。

独立模型与交互

  • 可为旁问单独选模型,并调温度、最大输出 tokens、推理强度;设置只作用于 btw。
  • 每条回答显示本次 token 用量;失败可重试,可随时停止生成。
  • 浮窗可拖动、缩放,双击标题栏最大化;位置与大小会记住。
  • 切换会话时窗口自动隐藏,切回恢复;只有点 ×(或 Esc)才关闭并清空。

送入主会话

点弹窗头部「送入主会话」后:

  1. 用当前旁问模型生成四节压缩摘要(我问了什么 / 结论 / 关键细节 / 仍未解决,最多约 900 字;失败则用本地兜底摘要)。
  2. 在预览层检查、修改,点「确认送入」。

写入后,主会话下一轮请求会带上这条记录,DSH 显示为上下文/通知卡,不会立刻触发主会话回复,也不创建新 turn。摘要确认写入上限 8000 字,写入不可撤销;同一段对话写入后会显示「已送入 ✓」并禁用。

隐私(默认行为)

行为 会不会发生
向主会话追加消息 默认不会;只有「确认送入」才追加一条 user/message(source.kind='btw')
创建 Agent / 子会话 / 会话文件 不会
写入标题、压缩、搜索索引、turn/step 不会
插件自己持久化问题或回答 不会
调用模型 provider 会——旁问即正常模型调用

弹窗内问答、引用和草稿只在页面内存;关闭即丢弃。

安装与启用

要求 DSH Desktop 0.2.1 或更新。

从 npm 安装(命令来自 README):

dsh plugin --profile desktop add dsh-btw-plugin

然后完全退出并重新打开 DSH Desktop(不是刷新页面)。打开任意会话,输入框右侧出现 btw 即表示安装成功。

插件以当前 DSH 进程权限运行;安装前建议阅读 源码与 LICENSE,确认符合你的环境与安全预期。社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

典型用法

  1. 点输入框右侧 btw,或输入 /btw 后回车,打开弹窗。
  2. 输入问题,Enter 发送。
  3. 顶部「上下文」栏调整本次旁问携带多少会话历史,点「刷新」重新读取。
  4. 右侧模型下拉切换旁问专用模型;⚙ 可调温度、输出上限、推理强度和按钮显隐。
  5. 需要先问某段输出时:选中文字再打开 btw,引用会带进问题。
  6. 结论值得主会话记住时:「送入主会话」→ 等待摘要 → 预览修改 →「确认送入」。

配置与限制

可在 Cordis 插件配置里覆盖以下键(默认值见 lib/logic.js,完整表见 README):

键 默认 作用
enabled true 关闭后不注册任何路由
maxParentMessages 200 「自动」范围下最多携带父会话消息条数
maxRangeMessages 1000 「全部」/「不含工具输出」硬上限
defaultRecentMessages 40 「最近 N 条」默认值
maxPriorTurns 20 弹窗内追问回传历史上限
maxQuestionChars 8000 单次问题长度上限
requestTimeoutMs 300000 单次旁问超时
summaryTimeoutMs 60000 送入摘要生成超时
maxSummaryChars 8000 确认写入时摘要长度上限

已知限制摘录:引用跨 shadow DOM 可能取不到选区;上下文栏 token 为粗估;浮窗偏好存 localStorage 不跨设备;目标会话正在生成时会拒绝写入摘要。package.json 当前版本 0.5.6,Node >=22.5。

结尾

dsh-btw 把「继承上下文的一次性旁问」和「可选、可编辑的摘要入主线」拆开:日常确认不打断主任务,需要时再让主会话看见结构化结论。

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

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

Xiaoye