Mensajes
Esta página reúne cómo OpenClaw maneja los mensajes entrantes, las sesiones, el encolado, la transmisión en tiempo real y la visibilidad del razonamiento.Flujo de mensajes (visión general)
messages.*para prefijos, encolado y comportamiento en grupos.agents.defaults.*para los valores predeterminados de transmisión por bloques y fragmentación.- Sustituciones por canal (
channels.whatsapp.*,channels.telegram.*, etc.) para límites y opciones de transmisión.
Eliminación de duplicados entrantes
Los canales pueden volver a entregar el mismo mensaje después de reconexiones. OpenClaw mantiene una caché de corta duración con claves de canal/cuenta/par/sesión/id de mensaje para que las entregas duplicadas no desencadenen otra ejecución del agente.Antirrebote de entrada
Los mensajes consecutivos rápidos del mismo remitente pueden agruparse en un único turno del agente mediantemessages.inbound. El antirrebote se aplica por canal + conversación
y usa el mensaje más reciente para el encadenamiento de respuestas/IDs.
Configuración (valor global predeterminado + sustituciones por canal):
- El antirrebote se aplica a mensajes de solo texto; los medios/adjuntos se vacían de inmediato.
- Los comandos de control omiten el antirrebote para que sigan siendo independientes — excepto cuando un canal habilita explícitamente la coalescencia de MD del mismo remitente (por ejemplo, BlueBubbles
coalesceSameSenderDms), donde los comandos de MD esperan dentro de la ventana de antirrebote para que una carga útil de envío dividido pueda unirse al mismo turno del agente.
Sesiones y dispositivos
Las sesiones pertenecen al Gateway, no a los clientes.- Los chats directos se consolidan en la clave de sesión principal del agente.
- Los grupos/canales obtienen sus propias claves de sesión.
- El almacén de sesiones y las transcripciones residen en el host del Gateway.
Cuerpos entrantes y contexto del historial
OpenClaw separa el cuerpo del prompt del cuerpo del comando:Body: texto del prompt enviado al agente. Puede incluir envolturas del canal y envolturas opcionales del historial.CommandBody: texto bruto del usuario para el análisis de directivas/comandos.RawBody: alias heredado deCommandBody(se mantiene por compatibilidad).
[Chat messages since your last reply - for context][Current message - respond to this]
CommandBody (o
RawBody) en el texto original del mensaje y mantener Body como el prompt combinado.
Los búferes de historial se configuran mediante messages.groupChat.historyLimit (valor global
predeterminado) y sustituciones por canal como channels.slack.historyLimit o
channels.telegram.accounts.<id>.historyLimit (establece 0 para deshabilitarlo).
Encolado y seguimientos
Si ya hay una ejecución activa, los mensajes entrantes pueden ponerse en cola, dirigirse a la ejecución actual o recopilarse para un turno de seguimiento.- Configura esto mediante
messages.queue(ymessages.queue.byChannel). - Modos:
interrupt,steer,followup,collect, además de variantes de backlog.
Transmisión en tiempo real, fragmentación y agrupación
La transmisión por bloques envía respuestas parciales a medida que el modelo produce bloques de texto. La fragmentación respeta los límites de texto del canal y evita dividir bloques de código con delimitadores. Configuraciones principales:agents.defaults.blockStreamingDefault(on|off, desactivado de forma predeterminada)agents.defaults.blockStreamingBreak(text_end|message_end)agents.defaults.blockStreamingChunk(minChars|maxChars|breakPreference)agents.defaults.blockStreamingCoalesce(agrupación basada en inactividad)agents.defaults.humanDelay(pausa de estilo humano entre respuestas por bloques)- Sustituciones por canal:
*.blockStreamingy*.blockStreamingCoalesce(los canales que no son Telegram requieren*.blockStreaming: trueexplícito)
Visibilidad del razonamiento y tokens
OpenClaw puede exponer u ocultar el razonamiento del modelo:/reasoning on|off|streamcontrola la visibilidad.- El contenido del razonamiento sigue contando para el uso de tokens cuando el modelo lo produce.
- Telegram admite la transmisión del razonamiento en la burbuja de borrador.
Prefijos, encadenamiento y respuestas
El formato de los mensajes salientes está centralizado enmessages:
messages.responsePrefix,channels.<channel>.responsePrefixychannels.<channel>.accounts.<id>.responsePrefix(cascada de prefijos salientes), además dechannels.whatsapp.messagePrefix(prefijo entrante de WhatsApp)- Encadenamiento de respuestas mediante
replyToModey valores predeterminados por canal
Respuestas silenciosas
El token silencioso exactoNO_REPLY / no_reply significa “no entregar una respuesta visible para el usuario”.
OpenClaw resuelve ese comportamiento según el tipo de conversación:
- Las conversaciones directas no permiten silencio de forma predeterminada y reescriben una respuesta silenciosa simple a una breve alternativa visible.
- Los grupos/canales permiten silencio de forma predeterminada.
- La orquestación interna permite silencio de forma predeterminada.
agents.defaults.silentReply y
agents.defaults.silentReplyRewrite; surfaces.<id>.silentReply y
surfaces.<id>.silentReplyRewrite pueden sustituirlos por superficie.