Mensagens
Esta página reúne como o OpenClaw lida com mensagens de entrada, sessões, enfileiramento, streaming e visibilidade do raciocínio.Fluxo de mensagens (visão geral)
messages.*para prefixos, enfileiramento e comportamento em grupos.agents.defaults.*para streaming em blocos e padrões de fragmentação.- Substituições por canal (
channels.whatsapp.*,channels.telegram.*, etc.) para limites e alternâncias de streaming.
Deduplicação de entrada
Canais podem reenviar a mesma mensagem após reconexões. O OpenClaw mantém um cache de curta duração com chave por canal/conta/par/sessão/id da mensagem para que entregas duplicadas não acionem outra execução do agente.Debouncing de entrada
Mensagens rápidas e consecutivas do mesmo remetente podem ser agrupadas em um único turno do agente viamessages.inbound. O debouncing é delimitado por canal + conversa
e usa a mensagem mais recente para encadeamento/IDs de resposta.
Configuração (padrão global + substituições por canal):
- O debounce se aplica a mensagens somente de texto; mídia/anexos são enviados imediatamente.
- Comandos de controle ignoram o debounce para permanecerem independentes.
Sessões e dispositivos
As sessões pertencem ao gateway, não aos clientes.- Conversas diretas colapsam na chave principal de sessão do agente.
- Grupos/canais recebem suas próprias chaves de sessão.
- O armazenamento de sessões e as transcrições ficam no host do Gateway.
Corpos de entrada e contexto de histórico
O OpenClaw separa o corpo do prompt do corpo do comando:Body: texto do prompt enviado ao agente. Pode incluir envelopes do canal e wrappers opcionais de histórico.CommandBody: texto bruto do usuário para análise de diretivas/comandos.RawBody: alias legado paraCommandBody(mantido por compatibilidade).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (ou
RawBody) com o texto original da mensagem e manter Body como o prompt combinado.
Os buffers de histórico são configuráveis via messages.groupChat.historyLimit (padrão global) e substituições
por canal como channels.slack.historyLimit ou channels.telegram.accounts.<id>.historyLimit (defina 0 para desativar).
Enfileiramento e acompanhamentos
Se uma execução já estiver ativa, mensagens de entrada podem ser enfileiradas, direcionadas para a execução atual ou coletadas para um turno de acompanhamento.- Configure via
messages.queue(emessages.queue.byChannel). - Modos:
interrupt,steer,followup,collect, além de variantes com backlog.
Streaming, fragmentação e agrupamento
O streaming em blocos envia respostas parciais conforme o modelo produz blocos de texto. A fragmentação respeita os limites de texto do canal e evita dividir código delimitado. Principais configurações:agents.defaults.blockStreamingDefault(on|off, desativado por padrão)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(agrupamento baseado em inatividade)agents.defaults.humanDelay(pausa semelhante à humana entre respostas em blocos)- Substituições por canal:
*.blockStreaminge*.blockStreamingCoalesce(canais não Telegram exigem*.blockStreaming: trueexplícito)
Visibilidade do raciocínio e tokens
O OpenClaw pode expor ou ocultar o raciocínio do modelo:/reasoning on|off|streamcontrola a visibilidade.- O conteúdo de raciocínio ainda conta para o uso de tokens quando produzido pelo modelo.
- O Telegram oferece suporte ao streaming do raciocínio para o balão de rascunho.
Prefixos, encadeamento e respostas
A formatação de mensagens de saída é centralizada emmessages:
messages.responsePrefix,channels.<channel>.responsePrefixechannels.<channel>.accounts.<id>.responsePrefix(cascata de prefixos de saída), além dechannels.whatsapp.messagePrefix(prefixo de entrada do WhatsApp)- Encadeamento de respostas via
replyToModee padrões por canal