메시지
이 페이지는 OpenClaw가 수신 메시지, 세션, 큐잉, 스트리밍, reasoning 가시성을 어떻게 처리하는지 하나로 연결해 설명합니다.메시지 흐름(상위 수준)
- 접두사, 큐잉, 그룹 동작은
messages.* - 블록 스트리밍과 청킹 기본값은
agents.defaults.* - 상한 및 스트리밍 토글은 채널별 재정의(
channels.whatsapp.*,channels.telegram.*등)
수신 중복 제거
채널은 재연결 후 동일한 메시지를 다시 전달할 수 있습니다. OpenClaw는 채널/계정/피어/세션/메시지 id를 키로 하는 수명이 짧은 캐시를 유지하므로 중복 전달이 또 다른 에이전트 실행을 트리거하지 않습니다.수신 디바운싱
같은 발신자의 빠르게 연속된 메시지는messages.inbound를 통해 하나의
에이전트 턴으로 묶을 수 있습니다. 디바운싱은 채널 + 대화별로 적용되며
응답 스레딩/ID에는 가장 최근 메시지를 사용합니다.
config(전역 기본값 + 채널별 재정의):
- 디바운스는 텍스트 전용 메시지에 적용되며, 미디어/첨부 파일은 즉시 플러시됩니다.
- 제어 명령은 디바운싱을 우회하므로 독립 실행 상태를 유지합니다.
세션과 디바이스
세션은 클라이언트가 아니라 게이트웨이가 소유합니다.- 다이렉트 채팅은 에이전트 메인 세션 키로 합쳐집니다.
- 그룹/채널은 자체 세션 키를 가집니다.
- 세션 저장소와 transcript는 게이트웨이 호스트에 있습니다.
수신 본문과 기록 컨텍스트
OpenClaw는 프롬프트 본문과 명령 본문을 구분합니다:Body: 에이전트에 전송되는 프롬프트 텍스트. 여기에는 채널 엔벌로프와 선택적 기록 래퍼가 포함될 수 있습니다.CommandBody: 지시문/명령 파싱을 위한 원시 사용자 텍스트.RawBody:CommandBody의 레거시 별칭(호환성을 위해 유지됨).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody(또는
RawBody)를 원래 메시지 텍스트로 설정하고, Body는 결합된 프롬프트로 유지해야 합니다.
기록 버퍼는 messages.groupChat.historyLimit(전역
기본값)과 channels.slack.historyLimit 또는
channels.telegram.accounts.<id>.historyLimit 같은 채널별 재정의를 통해 구성할 수 있습니다(0으로 설정하면 비활성화).
큐잉과 후속 처리
이미 실행이 활성화되어 있으면 수신 메시지는 대기열에 들어가거나, 현재 실행으로 유도되거나, 후속 턴용으로 수집될 수 있습니다.messages.queue(및messages.queue.byChannel)를 통해 구성합니다.- 모드:
interrupt,steer,followup,collect및 backlog 변형.
스트리밍, 청킹, 배치 처리
블록 스트리밍은 모델이 텍스트 블록을 생성하는 동안 부분 응답을 전송합니다. 청킹은 채널 텍스트 제한을 준수하며 fenced code가 분리되지 않도록 합니다. 핵심 설정:agents.defaults.blockStreamingDefault(on|off, 기본값 off)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(유휴 시간 기반 배치)agents.defaults.humanDelay(블록 응답 사이의 사람 같은 지연)- 채널별 재정의:
*.blockStreaming및*.blockStreamingCoalesce(Telegram이 아닌 채널은 명시적인*.blockStreaming: true필요)
reasoning 가시성과 토큰
OpenClaw는 모델 reasoning을 노출하거나 숨길 수 있습니다:/reasoning on|off|stream이 가시성을 제어합니다.- 모델이 생성한 reasoning 콘텐츠는 여전히 토큰 사용량에 포함됩니다.
- Telegram은 초안 버블에 reasoning 스트림을 지원합니다.
접두사, 스레딩, 응답
발신 메시지 서식은messages에서 중앙 관리됩니다:
messages.responsePrefix,channels.<channel>.responsePrefix,channels.<channel>.accounts.<id>.responsePrefix(발신 접두사 단계적 적용), 그리고channels.whatsapp.messagePrefix(WhatsApp 수신 접두사)replyToMode및 채널별 기본값을 통한 응답 스레딩