READMESource: main@d153884b
dsh-btw
在智能体干活的时候,用 /btw <问题> 快速问个小问题,完全不打断主线任务。
Claude Code /btw 的 dsh 移植版:旁路用一次性子代理回答,只能看(继承主对话上下文)、不能用任何工具、单轮流式输出;你的问题永远不落盘,记录只显示「提问 + 回答」。
安装
要求:dsh ≥ 0.1.1-rc.2(装有 web UI 的常规安装)。
# 方式 A:git 安装(推荐)
dsh plugin --profile web add https://github.com/kezboardpj/dsh-btw
# 方式 B:本地克隆后链接安装
git clone https://github.com/kezboardpj/dsh-btw
dsh plugin --profile web add /path/to/dsh-btw
# 方式 C:从 npm 按名安装
dsh plugin --profile web add dsh-btw-side
profile 名按你的实际配置替换(
web/tui/ 自定义)。 安装后重启 dsh(插件不支持热加载)。
用法
在主输入框输入完整一行,回车:
/btw 刚才那个 config 文件叫什么名字?
输入框上方会弹出悬浮面板,问题自动带进去并立即开始回答(流式输出):
- 主智能体继续干活,旁路子代理并发回答,全程不打断主任务
- 子代理只能看:完整继承主对话上下文(无截断、无 48KB 上限),不能动任何工具
- 单轮回答;面板只显示提问 + 回答(不显示思维链;模型幻觉出的工具调用标记会被截掉)
- 按 Esc 或点 × 关闭面板;回答中可点「停止」取消
- 发送按钮旁的 btw 小胶囊也能打开面板(空面板手动输入)
- 你的问题永远不落盘;旁路子会话以一次性子代理记录保留:子代理面板只读查看,不能继续对话
- 后续
/btw会回放最近 20 条旁路问答作为上下文(线程记忆)
与 Claude Code 的差异
| 维度 | Claude Code | dsh-btw(本插件) |
|---|---|---|
| 启动前提 | 需已完成第一轮对话 | 无——第一轮就能 /btw |
| 进行中 turn 的事件 | 能看到"除正在写的回复外的一切" | 能看到(派生历史含已提交事件,正在流式写的不含) |
| 问题落盘 | 不落盘(内存线程) | 不落盘 |
| 答案显示 | 浮层(Esc/←/x) | 悬浮面板(流式 + Esc/×/停止) |
| 答案持久化 | 内存线程,退出即没 | 面板即看即走 + 一次性子代理记录(面板只读可回溯) |
| 线程上下文 | 回放最新 20 条 | 回放最新 20 条 |
| 子代理记录 | 不显示(除非 f 转正) | 只读记录:只显示提问+回答,不含主对话历史 |
工作原理
/btw <q> + Enter
→ web 端拦截:主输入框清空,悬浮面板弹出并自动提问(不走命令、不经模型)
→ client → host RPC(插件自有 /btw 路由,loopback 专用)btw/ask
→ fork 一次性子代理(空种子 + subagent/descriptor 身份)
- 主对话派生历史 = 运行时上下文注入(模型可见,不进子会话日志)
- 线程回放 = 运行时上下文注入(同上)
- 工具全部滤空 + 显式"无工具"指令 + 禁止输出工具调用语法
→ 单轮回答;client 250ms 轮询 btw/poll 流式取回文本
→ btw/cancel 可中止;主输入框零痕迹,问题不落盘
License
MIT
No comments yet. Be the first to write one.