message.
Para chats grupales siempre activos, combine messages.groupChat.unmentionedInbound: "room_event" con messages.groupChat.visibleReplies: "message_tool". El agente escucha, decide cuándo resulta útil responder y ya no necesita el antiguo patrón de prompt que respondía NO_REPLY.
Compatibilidad actual: canales de servidores de Discord, canales y canales privados de Slack, mensajes directos de Slack con varias personas y grupos o supergrupos de Telegram. Los demás canales grupales conservan su comportamiento actual, salvo que la página del canal indique que admiten eventos ambientales de sala.
Configuración recomendada
Establezca el comportamiento global de los chats grupales:groupPolicy, la lista de permitidos de la sala y la lista de remitentes permitidos habituales.
Después de guardar la configuración, el Gateway aplica en caliente los ajustes de messages. Reinícielo únicamente cuando la observación de archivos o la recarga de la configuración estén deshabilitadas (gateway.reload.mode: "off").
Qué cambia
Conmessages.groupChat.unmentionedInbound: "room_event":
- los mensajes permitidos de grupos o canales que no incluyan una mención se convierten en eventos discretos de sala
- los mensajes con menciones siguen siendo solicitudes del usuario
- los comandos de control de texto y los comandos nativos siguen siendo solicitudes del usuario
- las solicitudes de cancelación o detención siguen siendo solicitudes del usuario
- los mensajes directos siguen siendo solicitudes del usuario
message(action=send) para publicar en la sala.
Las indicaciones de escritura y las reacciones de estado del ciclo de vida permanecen suprimidas para los eventos de sala. La única excepción explícita de confirmación es messages.ackReactionScope: "all", que envía la reacción de confirmación configurada; utilice un ámbito más restringido o "off" cuando la sala deba permanecer completamente en silencio.
Ejemplo de Discord
groupPolicy: "allowlist", incluir el canal en la lista es lo que lo permite (enabled: false deshabilita una entrada):
Ejemplo de Slack
Las listas de canales permitidos de Slack priorizan los identificadores. Utilice identificadores de canal comoC12345678, no #channel-name. Incluir el canal en channels.slack.channels es lo que lo permite (enabled: false deshabilita una entrada):
Ejemplo de Telegram
Para los grupos de Telegram, el bot debe poder ver los mensajes grupales normales. SirequireMention: false, deshabilite el modo de privacidad de BotFather o utilice otra configuración de Telegram que entregue al bot todo el tráfico del grupo.
-1001234567890. Lea chat.id desde openclaw logs --follow, reenvíe un mensaje del grupo a un bot auxiliar de identificación o inspeccione getUpdates de la API de bots.
Política específica del agente
Utilice una anulación del agente cuando varios agentes compartan la misma sala, pero solo uno deba tratar las conversaciones sin menciones como contexto ambiental:agents.entries.*.groupChat.unmentionedInbound específico del agente anula messages.groupChat.unmentionedInbound para ese agente.
Modos de respuesta visible
El valor predeterminado demessages.groupChat.visibleReplies es "automatic" para las solicitudes normales del usuario en grupos o canales. Mantenga ese valor predeterminado cuando el texto final del asistente deba publicarse de forma visible sin una llamada explícita a la herramienta de mensajes.
Para las salas ambientales siempre activas, se sigue recomendando messages.groupChat.visibleReplies: "message_tool", especialmente con modelos de última generación fiables en el uso de herramientas, como GPT-5.6 Sol. Permite que el agente decida cuándo intervenir llamando a la herramienta de mensajes. Si el modelo devuelve texto final sin llamar a la herramienta, OpenClaw mantiene ese texto final en privado y registra metadatos de entrega suprimida.
Los eventos de sala siguen siendo estrictos incluso cuando otras solicitudes grupales utilizan respuestas automáticas. Los eventos ambientales de sala sin menciones siempre requieren message(action=send) para generar una salida visible.
Historial
messages.groupChat.historyLimit establece el valor global predeterminado del historial de grupos (50 si no se configura; debe ser un entero positivo). Los canales pueden anularlo con channels.<channel>.historyLimit y algunos canales también admiten límites de historial por cuenta. Establezca historyLimit: 0 en el nivel del canal para deshabilitar el contexto del historial grupal de ese canal.
Los canales que admiten eventos de sala conservan como contexto los mensajes ambientales recientes de la sala. Telegram mantiene una ventana móvil por grupo, siempre activa y limitada por historyLimit; los turnos de solicitudes del usuario seleccionan las entradas posteriores a la última respuesta registrada del bot, mientras que los turnos de eventos de sala reciben toda la ventana reciente para que el modelo pueda ver sus propias publicaciones recientes. openclaw doctor --fix elimina la clave de modo obsoleta includeGroupHistoryContext de Telegram.
Solución de problemas
Si la sala muestra actividad de escritura o uso de tokens, pero ningún mensaje visible:- Confirme que la sala esté permitida por la lista de canales permitidos y la lista de remitentes permitidos.
- Confirme que
requireMention: falseesté configurado en el nivel de sala esperado. - Compruebe si
messages.groupChat.unmentionedInboundo la anulación del agente es"room_event". - Inspeccione los registros en busca de metadatos de carga final suprimida o
didSendViaMessagingTool: false. - Para las solicitudes grupales normales, mantenga o restaure
messages.groupChat.visibleReplies: "automatic"si desea que las respuestas finales se publiquen automáticamente. Para las salas ambientales que utilicenmessage_tool, emplee un modelo o entorno de ejecución que llame a las herramientas de forma fiable.
channels:history (pública), groups:history (privada) o mpim:history (mensajes directos con varias personas).