前言¶
在 DeepSeek Harness(DSH)中执行主任务时,经常会遇到一种夹缝问题:主 Agent 还在继续工作,你临时想确认一个当前上下文里已经出现过的细节。直接发送普通消息,会把问题带入主会话,可能影响后续任务;另开一个会话,又会缺少刚才讨论过的背景。
dsh-btw 是 iyllyt 维护的非官方社区插件,许可证为 MIT。它为 DSH 提供 /btw 旁路提问:在主 Agent 忙碌时提交一次与当前上下文相关的快速提问,回答显示在临时面板中,不进入主会话历史。
这是什么¶
一句话定位:dsh-btw 是面向 DSH 的一次性旁路问答插件。
它复用父会话当前可共享的上下文,生成一次回答;主任务继续执行,BTW 的问题和回答不写入普通会话历史。
核心功能¶
- 主任务并行:主 Agent 忙碌时也可以提交
/btw,主任务不会被暂停。 - 共享上下文:复用父会话当前的模型配置、系统提示词、工具 schema 和安全消息前缀。
- 一次性回答:只进行一轮模型生成,不执行工具,也不会继续追问。
- 会话隔离:不向主 SessionStore 写入用户消息、回答或隐藏 Session。
- 临时界面:Markdown 回答显示在 composer 上方,不遮挡输入框。
- 隐私存档:可选择私有 JSONL、仅内存或完全不保存三种 sidechain 模式。
- 缓存保护:Anthropic/pi-ai 路由把缓存边界移回共享前缀;其他路由交给 provider 管理。
- 可取消:关闭面板会中止请求,并支持独立超时控制。
安装¶
下面是已核实事实中给出的 web profile 安装命令:
dsh plugin --profile web add github:iyllyt/dsh-btw
该插件是非官方社区插件,与 Anthropic、Claude Code 或 DeepSeek AI 没有关联。许可证为 MIT。安装前建议检查源码与许可证,并确认它将在当前 DSH 进程权限下运行。
典型用法¶
先在主会话发送至少一条消息,然后在输入框输入:
/btw 刚才说的配置文件叫什么?
也可以用来确认当前上下文中的设计选择或报错关系:
/btw 为什么这里选择队列而不是直接执行?
/btw 我们最终决定使用哪种缓存策略?
/btw 这个报错和刚才修改的代码有关吗?
交互方式:
↑/↓:滚动长回答Enter/Space/Esc:关闭回答- 请求未完成时点击
Cancel:中止本次 BTW
适用场景与限制¶
适合用于当前上下文已知细节的快速提问,例如确认刚才提到的配置文件、已经讨论过的方案、已读代码中的选择。
不适合以下需求:
- 读取尚未看过的文件
- 执行命令
- 联网搜索
- 连续追问
- 真正修改文件或执行操作
原因是 BTW 没有工具权限,也没有后续轮次;它是额外的一次模型请求,不等同于普通消息或带工具的子任务。
隐私与存档¶
- 可选择
private-jsonl、memory或none三种 sidechain 模式。 - 默认 sidechain 模式为
private-jsonl,写入$DSH_HOME/btw-sidechains/v1。 private-jsonl目录权限为0700,文件权限为0600,并按天数和最大数量自动清理。- 会话隔离方面,BTW 不向主 SessionStore 写入用户消息、回答或隐藏 Session。
- 卸载插件不会自动删除已经写入
$DSH_HOME/btw-sidechains/v1的私有审计记录。
配置与兼容性¶
- 当前版本:
0.2.0 - 目标 DSH:
0.1.0-rc.6 - Node.js:
>=22 - 配置覆盖会替换同一插件行的整个
config,而不是递归合并;覆盖时需写出希望保留的全部字段。 - Anthropic/pi-ai 路由会把缓存边界移回共享前缀;其他路由交给 provider 管理。
- pi-ai 缓存桥接会在预期的 rc.6 adapter internals 改变时 fail closed。