dsh-btw:在 DSH 里用 /btw 旁问,不打断当前回合

前言

在 DeepSeek Harness(DSH)里跑长任务时,常会想顺手问一句:某个缩写什么意思、某段逻辑在哪个文件里。若把问题写进正常 prompt,通常要等当前 turn 结束,回答还会进入下一轮请求的上下文,既拖慢主任务,又容易把对话搅乱。

社区插件 dsh-btw(维护者 douglarek)提供 slash 命令 /btw:在主任务继续跑、队列与 Esc 不受影响的前提下,用当前会话同一路由(provider / model)向模型发起一次「旁问」。回答默认不进入模型对话;会话日志里以 command 生命周期记录,重载、fork、回放仍可见。

DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。下文功能与安装方式均以 GitHub 仓库 README 为准。

这是什么

dsh-btw 归类为「模型推理」类插件。一句话:/btw <question> 让会话自己的模型回答旁问,不排队、不打断正在执行的 turn,且默认不把答案写进后续请求的上下文。

命令交互参考 Grok Build 的 /btw(绕过 prompt 队列、金色高亮的 /btw 行、答案留在主 turn 之外)。一处刻意差异:Grok 默认用 live session;本插件默认 standalone(context: none,不带任何会话),若需 Grok 行为可设 context: session。

核心功能

与正常 prompt 的差异

Prompt /btw
是否等待当前 turn 是 否
是否进入模型下一次请求 是 否
是否看到会话对话 是 仅当 context: session
是否使用工具 是 否
在会话日志中的形态 消息 仅 command 生命周期

使用体验(README 已说明)

  • 输入后立刻出现一行问题与 Answering…,随后展示答案;composer 在命令被接纳后即清空,而非等模型答完。
  • 答案由当前会话的 provider 与 model 生成;默认问题独立(context: none),context: session 时会附带 bounded 对话 transcript。
  • 答案按 Markdown 渲染(标题、列表、引用、表格、代码块、粗体、链接等)。
  • 模型先 reasoning 再答时,行内上方有可折叠 Thinking 块,旁问继承会话当前的 thinking level。
  • 摘要行可折叠/展开(问题单行省略、chevron 切换);Esc、草稿与队列均不受影响。

旁问结果不是 model message,不会出现在下一次请求里;以 command/run、command/done 写入 session log,在 transcript 中只出现一次。

架构要点

  • Host(index.js、lib/):通过 ctx.commands.register() 注册 btw;handler 立即返回,实际请求在 lib/answer-runner.js 中用 ctx.llm.stream() 完成(固定旁问策略、无 tools)。llm 与 commands 为硬注入,profile 无这两项时插件不激活。
  • Client(client.js):注册 conversation.chat.commandview 的 btw 视图,自管 Markdown 解析与 --dsw-alias-* 主题 token。

安装与启用

在 DSH profile 中执行(README 原文,两种形式均可):

plugin_manager install_bundle  target=github:douglarek/dsh-btw
plugin_manager install_bundle  target=/absolute/path/to/dsh-btw

bundle 会插入名为 dsh-btw 的 Host 行,并通过 dsh.client 声明浏览器端;启用该行后,composer 命令菜单可用 /btw,对话区注册对应渲染器。

插件以当前 DSH 进程权限运行;安装前请自行查看仓库源码与 MIT 许可证(package.json 中版本为 0.2.0,需 Node >=20)。

配置

默认值与 cordis.patch.yml 一致,可在 patch 中覆盖:

Key Default 含义
enabled true 是否挂载命令
context none none 为独立问题;session 在问题前附带 bounded transcript
description 旁问:不打断当前任务地提问 · Ask a side question without interrupting composer / 列表下的说明文案
maxContextChars 12000 附带 transcript 的码点预算
maxToolResultChars 1200 transcript 内单条 tool 结果上限
includeToolResults true transcript 是否含 tool 输出
timeoutMs 120000 单次旁问超时(0 会被拒绝)
temperature 0.2 旁问采样温度
maxTokens unset 可选输出上限
reasoningEffort unset 可选 thinking level;unset 时继承会话路由
provider, model unset 可选固定路由;须同时提供;unset 时继承会话最新路由或 profile 默认模型

从未发过请求的会话若要用旁问,须在配置中同时指定 provider 与 model,否则无路由可继承。

典型用法

在 composer 中消息必须以 /btw 开头(Harness 命令平面只在字节零解析命令,行中嵌入的 /btw 会当作普通 prompt):

/btw what does WBC stand for?
/btw which file owns the retry loop?

可先保持 context: none 问通用知识;需要结合当前任务上下文时再改为 context: session,并按需调 maxContextChars 与 includeToolResults 控制成本。

适用场景与限制

适合:长 turn 执行中快速查术语、定位文件或逻辑,又不想打断 agent 或污染主对话链路的 DSH 用户。

需注意(README Limitations):

  • 答案一次性返回,行内不能流式 token(command plane 只 settle handler 一次)。
  • 同一 run 可能有两条 command/done(executor 与插件各一条);Chat 会合并到同一行。
  • 含 reasoning 时 lifecycle 用 <<<btw:reasoning>>> / <<<btw:answer>>> 标记内联存储;未适配的通用 command 卡可能把标记当正文显示。
  • 旁问不支持 tools、图片与 plan-mode;仅文本。
  • 第三方 Host 命令无法在 / 列表使用官方六种 glyph,仅显示名称与本插件 description。

结尾

dsh-btw 把「旁问」做成 DSH 内一条不抢队列的 slash 命令:主任务继续、答案默认不进下一轮上下文,需要时再打开 context: session 对齐 Grok 式会话旁问。

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

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

小夜