Skip to content

/btw 旁路提问

/btw 让你在当前会话中提出快速的旁路问题,而不会将该问题变成正式的对话历史记录。

这个功能模仿了 Claude Code 的 /btw 行为,并针对 OpenClaw 的 Gateway 和多渠道架构进行了适配。

就像跟龙虾耳语一句话——它会悄悄回答你,然后继续手头的任务,不留痕迹。

它做什么

当你发送:

text
/btw what changed?

OpenClaw 会:

  1. 快照当前会话上下文
  2. 发起一个独立的无工具模型调用
  3. 只回答旁路问题
  4. 不打断主任务运行
  5. 将 BTW 问题或答案写入会话历史
  6. 将答案作为实时旁路结果发出,而非普通 assistant 消息

核心心智模型:

  • 相同的会话上下文
  • 独立的一次性旁路查询
  • 无工具调用
  • 不污染未来上下文
  • 无记录持久化

它不做什么

/btw 不会

  • 创建新的持久会话
  • 继续未完成的主任务
  • 运行工具或 Agent 工具循环
  • 将 BTW 问答写入记录历史
  • 出现在 chat.history
  • 在页面重新加载后保留

它是刻意设计为临时性的。

上下文如何工作

BTW 将当前会话作为仅供参考的背景上下文

如果主任务当前正在运行,OpenClaw 会快照当前消息状态,将进行中的主提示作为背景上下文包含进来,同时明确告知模型:

  • 只回答旁路问题
  • 不要恢复或继续未完成的主任务
  • 不要发出工具调用或伪工具调用

这让 BTW 与主任务保持隔离,同时又能感知当前会话的内容。

交付模型

BTW 不会作为普通 assistant 记录消息发出。

在 Gateway 协议层面:

  • 普通 assistant 对话使用 chat 事件
  • BTW 使用 chat.side_result 事件

这种分离是刻意的。如果 BTW 复用普通 chat 事件路径,客户端就会将其视为普通对话历史。

因为 BTW 使用独立的实时事件且不会从 chat.history 重放,所以刷新后消失。

各界面行为

TUI

在 TUI 中,BTW 在当前会话视图中内联渲染,但保持临时性:

  • 与普通 assistant 回复视觉上有所区分
  • 可通过 EnterEsc 关闭
  • 重新加载后不重放

外部渠道

在 Telegram、WhatsApp、Discord 等渠道上,因为这些界面没有本地临时浮层的概念,BTW 会以清晰标注的一次性回复发出。

答案仍被视为旁路结果,不写入正式会话历史。

Control UI / Web

Gateway 正确地将 BTW 作为 chat.side_result 发出,且不将其包含在 chat.history 中,所以持久化合约在 Web 层面已经正确。

当前 Control UI 还需要专门的 chat.side_result 消费者来在浏览器中实时渲染 BTW。在该客户端侧支持落地之前,BTW 是一个 Gateway 层功能,在 TUI 和外部渠道有完整体验,但浏览器 UX 尚未完整。

何时使用 /btw

当你需要以下内容时使用 /btw

  • 对当前工作的快速澄清
  • 长任务运行时的事实性旁路答案
  • 不应成为未来会话上下文的临时答案

示例:

text
/btw what file are we editing?
/btw what does this error mean?
/btw summarize the current task in one sentence
/btw what is 17 * 19?

何时不要使用 /btw

如果你希望答案成为会话未来工作上下文的一部分,不要使用 /btw

这种情况下,直接在主会话中正常提问即可。

相关文档