{"id":641,"date":"2026-03-21T22:52:58","date_gmt":"2026-03-21T14:52:58","guid":{"rendered":"https:\/\/pa.yingzhi8.cn\/index.php\/2026\/03\/21\/tools-btw\/"},"modified":"2026-03-21T23:08:54","modified_gmt":"2026-03-21T15:08:54","slug":"tools-btw","status":"publish","type":"post","link":"https:\/\/pa.yingzhi8.cn\/index.php\/2026\/03\/21\/tools-btw\/","title":{"rendered":"BTW Side Questions"},"content":{"rendered":"<h1>BTW Side Questions<\/h1>\n<p><code>\/btw<\/code> lets you ask a quick side question about the <strong>current session<\/strong> without<br \/>\nturning that question into normal conversation history.<\/p>\n<p>It is modeled after Claude Code&#8217;s <code>\/btw<\/code> behavior, but adapted to OpenClaw&#8217;s<br \/>\nGateway and multi-channel architecture.<\/p>\n<h2>What it does<\/h2>\n<p>When you send:<\/p>\n<p>&#8220;`text  theme={&#8220;theme&#8221;:{&#8220;light&#8221;:&#8221;min-light&#8221;,&#8221;dark&#8221;:&#8221;min-dark&#8221;}}<br \/>\n\/btw what changed?<\/p>\n<pre><code>\nOpenClaw:\n\n1. snapshots the current session context,\n2. runs a separate **tool-less** model call,\n3. answers only the side question,\n4. leaves the main run alone,\n5. does **not** write the BTW question or answer to session history,\n6. emits the answer as a **live side result** rather than a normal assistant message.\n\nThe important mental model is:\n\n* same session context\n* separate one-shot side query\n* no tool calls\n* no future context pollution\n* no transcript persistence\n\n## What it does not do\n\n`\/btw` does **not**:\n\n* create a new durable session,\n* continue the unfinished main task,\n* run tools or agent tool loops,\n* write BTW question\/answer data to transcript history,\n* appear in `chat.history`,\n* survive a reload.\n\nIt is intentionally **ephemeral**.\n\n## How context works\n\nBTW uses the current session as **background context only**.\n\nIf the main run is currently active, OpenClaw snapshots the current message\nstate and includes the in-flight main prompt as background context, while\nexplicitly telling the model:\n\n* answer only the side question,\n* do not resume or complete the unfinished main task,\n* do not emit tool calls or pseudo-tool calls.\n\nThat keeps BTW isolated from the main run while still making it aware of what\nthe session is about.\n\n## Delivery model\n\nBTW is **not** delivered as a normal assistant transcript message.\n\nAt the Gateway protocol level:\n\n* normal assistant chat uses the `chat` event\n* BTW uses the `chat.side_result` event\n\nThis separation is intentional. If BTW reused the normal `chat` event path,\nclients would treat it like regular conversation history.\n\nBecause BTW uses a separate live event and is not replayed from\n`chat.history`, it disappears after reload.\n\n## Surface behavior\n\n### TUI\n\nIn TUI, BTW is rendered inline in the current session view, but it remains\nephemeral:\n\n* visibly distinct from a normal assistant reply\n* dismissible with `Enter` or `Esc`\n* not replayed on reload\n\n### External channels\n\nOn channels like Telegram, WhatsApp, and Discord, BTW is delivered as a\nclearly labeled one-off reply because those surfaces do not have a local\nephemeral overlay concept.\n\nThe answer is still treated as a side result, not normal session history.\n\n### Control UI \/ web\n\nThe Gateway emits BTW correctly as `chat.side_result`, and BTW is not included\nin `chat.history`, so the persistence contract is already correct for web.\n\nThe current Control UI still needs a dedicated `chat.side_result` consumer to\nrender BTW live in the browser. Until that client-side support lands, BTW is a\nGateway-level feature with full TUI and external-channel behavior, but not yet\na complete browser UX.\n\n## When to use BTW\n\nUse `\/btw` when you want:\n\n* a quick clarification about the current work,\n* a factual side answer while a long run is still in progress,\n* a temporary answer that should not become part of future session context.\n\nExamples:\n\n```text  theme={&quot;theme&quot;:{&quot;light&quot;:&quot;min-light&quot;,&quot;dark&quot;:&quot;min-dark&quot;}}\n\/btw what file are we editing?\n\/btw what does this error mean?\n\/btw summarize the current task in one sentence\n\/btw what is 17 * 19?\n<\/code><\/pre>\n<h2>When not to use BTW<\/h2>\n<p>Do not use <code>\/btw<\/code> when you want the answer to become part of the session&#8217;s<br \/>\nfuture working context.<\/p>\n<p>In that case, ask normally in the main session instead of using BTW.<\/p>\n<h2>Related<\/h2>\n<ul>\n<li><a href=\"\/tools\/slash-commands\">Slash commands<\/a><\/li>\n<li><a href=\"\/tools\/thinking\">Thinking Levels<\/a><\/li>\n<li><a href=\"\/concepts\/session\">Session<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>BTW Side Questions \/btw lets you ask a quick side quest [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-641","post","type-post","status-publish","format-standard","hentry","category-docs"],"_links":{"self":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/comments?post=641"}],"version-history":[{"count":2,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/641\/revisions"}],"predecessor-version":[{"id":713,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/posts\/641\/revisions\/713"}],"wp:attachment":[{"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/media?parent=641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/categories?post=641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pa.yingzhi8.cn\/index.php\/wp-json\/wp\/v2\/tags?post=641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}