BTW 附带问题
/btw(别名 /side)针对当前会话提出一个快速的旁路问题,而不会将其添加到对话历史中。它仿照 Claude Code 的 /btw,并适配了 OpenClaw 的 Gateway 和多通道架构。
两个旁路问题契约被刻意分开。BTW 是在会话实际使用的模型上提出的一次性问题,保留 harness 行为以及 Codex 线程分叉连续性,适用于通道入口(WhatsApp、Telegram 和 Discord)、TUI 以及嵌入式 tui --local;TUI 按设计保持使用 BTW。Side chat 使用持久、只读的 RPC 线程,面向 Control UI 类客户端。其第一个问题会惰性地从所选会话准备有界的可见上下文;临时历史失败仍可重试,并且不会作为空会话运行。通道无法使用 Side chat,因为它们没有 RPC 连接。
它的作用¶
- 将当前会话快照作为背景上下文(包括任何正在处理中的主运行提示)。
- 运行一个独立的一次性旁路查询,指示模型只回答旁路问题,不要恢复或引导主任务。
- 将答案作为实时旁路结果交付,而不是普通助手消息。
- 从不将问题或答案写入会话历史或
chat.history。
如果存在正在活动的主运行,则保持其不受影响。
附加到 /btw 消息的图片会在直接提供商运行时和 Codex harness 上随旁路问题一起发送。这包括带有 /btw 说明的照片,或者当通道将其作为回复上下文提供时,来自被回复消息的媒体。其他 harness 会将图片作为可选输入接收,并可能忽略它们。CLI 运行时改为接收一条文本说明,其中包含被省略图片的数量。如果媒体理解已经描述过某张图片,则不会附加该图片,因为其描述位于主对话提示中,而不是旁路问题中。
当它们的运行时提供 usage 时,已完成的直接提供商和 harness 旁路问题会通过已配置的 诊断管道 报告它。
这不会将该交互添加到会话历史或由会话派生的 /usage cost 总计中。
对于 Codex harness 会话,BTW 会将活动的 Codex app-server 线程分叉为一个临时子线程,而不是运行单独的提供商调用。这保持了 Codex OAuth 和原生工具/线程行为不变,并且分叉线程保留父线程当前的审批策略、沙箱和原生工具界面。分叉线程会收到一个边界提示,告知模型其之前的所有内容都是继承的参考上下文,而不是活动指令,并且只有边界之后的消息是活动的。/btw 需要一个已存在的 Codex 线程;请先发送一条普通消息。
符合条件的 Codex 旁路问题可以使用与主线程相同的 OpenClaw Gateway shell 工具。取消旁路问题或达到其超时时,会在释放该旁路线程之前停止由该旁路线程拥有的原生后台终端。主线程终端和 OpenClaw 管理的后台作业保留其现有生命周期。
对于 CLI 运行时别名,BTW 会以一次性旁路问题模式调用所属的 CLI 后端:它将清理后的对话上下文注入到一个新的 CLI 调用中,禁用工具捆绑和可复用会话状态,并添加后端支持的任何 no-resume/no-tools 标志。直接(非 CLI)运行时则使用直接的一次性提供商调用。
它不会做什么¶
/btw 不会创建持久会话、继续未完成的主任务,或将问题/答案数据持久化到转录历史中。分离的 BTW 结果不会在重新加载后保留。Control UI 的 Side chat 可以在重新加载后恢复其内存线程,但该线程会因会话重置、Gateway 重启、空闲过期或侧栏的清除按钮而清除。
交付模型¶
普通助手聊天使用 Gateway 的 chat 事件。分离的 BTW 使用单独的 chat.side_result 事件,以便客户端不会将其误认为常规对话历史。Control UI 不消费该事件;它调用 sessions.companion.* RPC,并在侧栏中渲染其有界的交互状态。
界面行为¶
| 界面 | 行为 |
|---|---|
| TUI | 在聊天日志中内联渲染,与正常回复有明显区别,可用 Enter 或 Esc 关闭。 |
| 外部通道 | 作为明确标注的一次性回复交付(Telegram、WhatsApp、Discord 没有本地临时覆盖层)。 |
| Control UI / web | 将 /btw 和 /side 路由到展开的 Side chat。只读线程以会话为键,从 Gateway 内存中恢复,并保留失败的问题以便重试。它可以通过垃圾桶按钮清除。Esc 折叠侧栏。 |
选择弹出窗口(Control UI)¶
在 Control UI 中高亮聊天消息内的文本会打开一个小型选择弹出窗口,其中包含一个操作:
- 在 Side chat 中提问 打开侧栏,并在其输入框中预填一个引用草稿,以便你可以输入关于所选内容的自己的问题。
该操作遵循常规 /btw 语义:问题和答案不会进入会话历史,主运行保持不受影响。
何时使用¶
在以下情况下使用 /btw:快速澄清、在长任务仍在进行时获取事实性旁路答案,或获取不应进入未来会话上下文的临时答案。
/btw what file are we editing?
/btw summarize the current task in one sentence
/btw what is 17 * 19?
对于任何你希望成为会话未来工作上下文一部分的内容,请改为在主会话中正常提问。
相关¶
原生命令目录和聊天指令。
侧边问题模型调用的推理努力级别。
会话键、历史记录和持久化语义。
向当前运行注入一条转向消息,而不结束它。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw