Mensajes duplicados en OpenClaw: Como evitar que tu agente envie spam en WhatsApp
Tu agente envia el mismo mensaje dos veces? Respondemos con la configuracion exacta que elimina los duplicados en produccion.
Los mensajes duplicados son uno de los problemas mas frustrantes de los agentes de IA en WhatsApp. Tu cliente te escribe "si" y el agente responde dos veces. O peor: envia el mismo mensaje de presentacion a un lead dos veces. Eso destruye la credibilidad.
Por que pasa
OpenClaw usa Baileys para conectarse a WhatsApp. Baileys puede emitir el mismo evento de mensaje varias veces por reconexiones del WebSocket, duplicacion de paquetes, o timing issues entre el gateway y la sesion del modelo.
Ademas, si un usuario envia dos mensajes rapidos (como "Si" + "Dale!"), el gateway puede procesarlos como dos solicitudes independientes al modelo, generando dos respuestas.
La solucion: debounce
El debounce es un mecanismo que espera X milisegundos despues del ultimo mensaje antes de procesarlo. Si llegan mas mensajes durante esa ventana, se agrupan en uno solo.
La configuracion minima que recomendamos:
{
"channels": {
"whatsapp": {
"debounceMs": 10000
}
},
"messages": {
"queue": {
"mode": "collect"
},
"inbound": {
"debounceMs": 5000,
"byChannel": {
"whatsapp": 10000
}
}
}
}Que hace cada parametro
**channels.whatsapp.debounceMs (10000)**: Espera 10 segundos despues del ultimo mensaje de WhatsApp antes de procesarlo. Si el usuario envia "Si" y 5 segundos despues "Dale!", ambos se agrupan en un solo input para el modelo.
**messages.queue.mode ("collect")**: Agrupa mensajes que llegan mientras el agente esta procesando una respuesta anterior. Sin esto, si llegan 3 mensajes mientras el agente piensa, genera 3 respuestas.
**messages.inbound.debounceMs (5000)**: Debounce general para todos los canales. Segunda capa de proteccion.
**messages.inbound.byChannel.whatsapp (10000)**: Debounce especifico para WhatsApp que sobrescribe el general.
Por que 10 segundos y no menos?
Con 3 segundos (el minimo que sugieren algunos), el agente responde rapido pero sigue siendo vulnerable a mensajes enviados con 4-5 segundos de diferencia. Con 10 segundos:
- Cubres el escenario comun de alguien que escribe en dos mensajes seguidos
- La respuesta tarda 10 segundos en llegar, lo cual es mas natural โ nadie responde instantaneamente
- Eliminas el 99% de los duplicados
Instrucciones adicionales en AGENTS.md
Ademas de la configuracion tecnica, agrega en AGENTS.md:
"Despues de enviar un mensaje, asume que se envio correctamente. NUNCA reenvies un mensaje porque no estas segura si llego. Si necesitas confirmar, espera la respuesta del usuario."
Esto previene que el agente re-envie mensajes por inseguridad sobre la entrega.
Cola de mensajes atascados
OpenClaw tiene un sistema de reintentos automaticos para mensajes que fallaron. Si el gateway se desconecta, los mensajes se encolan y se reintentan al reconectar. Esto puede causar duplicados cuando el mismo mensaje se envia por el reintento y por el agente que ya lo reintento manualmente.
**Solucion**: Monitorear la carpeta `~/.openclaw/delivery-queue/` y limpiar mensajes atascados. En Open2Claw, nuestro panel de gestion detecta y limpia automaticamente los mensajes encolados.
Necesitas ayuda con tu agente OpenClaw?
Configuramos, optimizamos y gestionamos agentes de ventas por WhatsApp.
Contactanos