dsh-btw
Transient /btw side questions for DeepSeek Harness: immediate while the main agent is busy, context-sharing, tool-free, one-shot, cache-aware, and invisible to the main session catalog.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:iyllyt/dsh-btw说明文档
阅读完整 README ↗dsh-btw
为 DeepSeek Harness 复刻的 /btw 旁路提问插件。
个人很喜欢 Claude Code 里的
/btw指令,于是为 DeepSeek Harness(DSH)做了一个复刻插件。
/btw 用来在不打断主 Agent 的情况下快速问一个与当前上下文有关的问题。问题由独立的一次性模型请求回答,结果显示在输入框上方的临时面板中;它不会成为主对话消息,也不会写入 DSH 的普通会话目录。
本项目是非官方社区插件,与 Anthropic、Claude Code 或 DeepSeek AI 没有关联。
/btw 是做什么的?
/btw 可以理解成在主会话旁边“顺手问一句”。当 Agent 正在执行一个较长任务时,你经常会临时想确认一个细节:刚才提到的配置文件叫什么、某段已经读过的代码为什么这样写、之前决定采用哪个方案。直接发送普通消息会改变主会话的走向并增加后续上下文,而另开会话又会失去当前任务已经积累的信息。
BTW 解决的正是这个夹缝问题:它读取截至提交时父会话可安全复用的上下文,独立生成一次回答,然后把结果放进可关闭的临时面板。主 Agent 继续原来的任务,问题和回答也不会进入普通会话历史。
它的核心价值是:
- 不打断主任务:主 Agent 正在思考或调用工具时仍可提问,BTW 在旁路独立运行。
- 不污染主上下文:临时问题不会改变主任务方向,也不会占用后续对话历史。
- 不用重新交代背景:它知道父会话已经讨论过的代码、结论和决策。
- 快速确认细节:适合答案已经存在于当前上下文中的短问题。
典型用法:
/btw 刚才说的配置文件叫什么?
/btw 为什么这里选择队列而不是直接执行?
/btw 我们最终决定使用哪种缓存策略?
/btw 这个报错和刚才修改的代码有关吗?
什么时候不该用 /btw?
| 需求 | 应该选择 |
|---|---|
| 询问当前会话已经知道的内容,只需要一次快速回答 | /btw |
| 需要读取尚未看过的文件、执行命令或联网搜索 | 普通消息或 subagent |
| 需要连续追问、共同讨论或改变实现方案 | 普通消息 |
| 需要真正修改文件或执行操作 | 普通消息或带工具的 subagent |
BTW 没有工具权限,也没有后续轮次。它不是免费的本地查询,而是额外的一次模型请求;插件会尽可能复用父请求的共享 prompt/cache 前缀,以降低重复上下文的成本。
这一交互定位参考了 Claude Code 官方 /btw 文档,DSH 版本的底层实现、私有 sidechain 和缓存兼容层均为本项目独立实现。
功能
| 能力 | 行为 |
|---|---|
| 主任务并行 | 主 Agent 忙碌时也可以提交 /btw,主任务不会被暂停 |
| 共享上下文 | 复用父会话当前的模型配置、系统提示词、工具 schema 和安全消息前缀 |
| 一次性回答 | 只进行一轮模型生成,不执行工具,也不会继续追问 |
| 会话隔离 | 不向主 SessionStore 写入用户消息、回答或隐藏 Session |
| 临时界面 | Markdown 回答显示在 composer 上方,不遮挡输入框 |
| 隐私存档 | 可选择私有 JSONL、仅内存或完全不保存三种 sidechain 模式 |