BTW 사이드 질문
/btw를 사용하면 현재 세션에 대해 빠른 사이드 질문을 할 수 있으며,
그 질문이 일반 대화 기록에 들어가지 않습니다.
이는 Claude Code의 /btw 동작을 모델로 하지만, OpenClaw의
Gateway 및 다중 채널 아키텍처에 맞게 조정되었습니다.
기능
다음과 같이 보내면:- 현재 세션 컨텍스트를 스냅샷합니다.
- 별도의 도구 없는 모델 호출을 실행합니다.
- 사이드 질문에만 답합니다.
- 메인 실행은 그대로 둡니다.
- BTW 질문이나 답변을 세션 기록에 쓰지 않습니다.
- 답변을 일반 assistant 메시지가 아니라 실시간 사이드 결과로 내보냅니다.
- 동일한 세션 컨텍스트
- 별도의 일회성 사이드 쿼리
- 도구 호출 없음
- 이후 컨텍스트 오염 없음
- transcript 지속성 없음
하지 않는 것
/btw는 다음을 하지 않습니다:
- 새 영구 세션을 만들지 않습니다.
- 미완료된 메인 작업을 계속하지 않습니다.
- 도구나 에이전트 도구 루프를 실행하지 않습니다.
- BTW 질문/답변 데이터를 transcript 기록에 쓰지 않습니다.
chat.history에 나타나지 않습니다.- 다시 로드해도 유지되지 않습니다.
컨텍스트 작동 방식
BTW는 현재 세션을 배경 컨텍스트 전용으로 사용합니다. 메인 실행이 현재 진행 중이라면 OpenClaw는 현재 메시지 상태를 스냅샷하고 진행 중인 메인 프롬프트를 배경 컨텍스트로 포함하면서, 모델에 다음을 명시적으로 지시합니다:- 사이드 질문에만 답할 것
- 미완료된 메인 작업을 재개하거나 완료하지 말 것
- 도구 호출이나 의사 도구 호출을 내보내지 말 것
전달 모델
BTW는 일반 assistant transcript 메시지로 전달되지 않습니다. Gateway 프로토콜 수준에서:- 일반 assistant 채팅은
chat이벤트를 사용합니다. - BTW는
chat.side_result이벤트를 사용합니다.
chat 이벤트 경로를 재사용하면,
클라이언트가 이를 일반 대화 기록처럼 취급하게 됩니다.
BTW는 별도의 실시간 이벤트를 사용하고 chat.history에서 재생되지 않기 때문에,
다시 로드하면 사라집니다.
표면 동작
TUI
TUI에서 BTW는 현재 세션 보기 안에 인라인으로 렌더링되지만 여전히 일시적입니다:- 일반 assistant 응답과 시각적으로 구분됨
Enter또는Esc로 닫을 수 있음- 다시 로드 시 재생되지 않음
외부 채널
Telegram, WhatsApp, Discord 같은 채널에서는 BTW가 로컬 일시적 오버레이 개념이 없기 때문에 명확히 라벨이 붙은 일회성 응답으로 전달됩니다. 답변은 여전히 일반 세션 기록이 아니라 사이드 결과로 처리됩니다.Control UI / 웹
Gateway는 BTW를chat.side_result로 올바르게 내보내며, BTW는
chat.history에 포함되지 않으므로 지속성 계약은 웹에 대해서도 이미 올바릅니다.
현재 Control UI는 브라우저에서 BTW를 실시간으로 렌더링하기 위해 전용
chat.side_result 소비자가 아직 필요합니다. 해당 클라이언트 측 지원이 제공되기 전까지 BTW는 Gateway 수준 기능으로서 TUI와 외부 채널에서는 완전하게 동작하지만, 브라우저 UX는 아직 완성되지 않았습니다.
BTW를 사용할 때
다음이 필요할 때/btw를 사용하세요:
- 현재 작업에 대한 빠른 확인
- 긴 실행이 아직 진행 중일 때 사실 기반 사이드 답변
- 이후 세션 컨텍스트의 일부가 되어서는 안 되는 임시 답변
BTW를 사용하지 말아야 할 때
답변이 세션의 이후 작업 컨텍스트 일부가 되어야 한다면/btw를 사용하지 마세요.
그 경우에는 BTW를 사용하는 대신 메인 세션에서 일반적으로 질문하세요.