Introducción
Si estás usando Hermes Agent con Discord como gateway, probablemente te topaste con un problema molesto: los mensajes se repiten. El bot responde múltiples veces al mismo mensaje, o procesa mensajes antiguos que ya había procesado antes.
La causa raíz está en una configuración que viene activada por defecto: discord.history_backfill. En este post te explico qué hace, por qué causa problemas y cómo desactivarla.
¿Qué es discord.history_backfill?
Cuando Hermes se conecta a un servidor de Discord, puede “repasar” el historial de mensajes recientes de los canales a los que tiene acceso. Esto se llama history backfill.
La idea es noble: si el bot estuvo offline un rato, puede ponerse al día con lo que se perdió. Pero en la práctica, genera varios problemas:
Bot se conecta → Lee últimos 100 mensajes → Procesa cada uno → Responde a todos
El problema es que esos mensajes ya fueron procesados antes. El bot no tiene forma de saber que ya respondió a ellos en una sesión anterior.
Los síntomas
- El bot responde múltiples veces al mismo mensaje
- Al reiniciar el gateway, repite respuestas de días anteriores
- En canales activos, el bot se “atasca” procesando historial en vez de atender mensajes nuevos
- Logs llenos de
Processing message from 3 days ago...
La solución
Desactivar el backfill:
hermes config set discord.history_backfill false
Después reiniciá el gateway:
hermes gateway restart
✔️ Consejo: Si querés mantener el backfill pero limitarlo, podés configurar `discord.history_limit` a un número bajo (ej: 5). Así solo repasa los últimos 5 mensajes en vez de los 100 por defecto.
¿Por qué viene activado por defecto?
La lógica original era que el bot no se perdiera nada al reconectarse. Pero en la práctica, la mayoría de los gateways (Discord, Telegram, WhatsApp) ya manejan la entrega de mensajes de forma confiable. El backfill es redundante y genera más problemas de los que resuelve.
Es uno de esos casos donde el “por si acaso” termina siendo peor que no tenerlo.
Otros gateways afectados
El problema no es exclusivo de Discord. Cualquier gateway que soporte backfill puede tener el mismo comportamiento:
- Telegram —
telegram.history_backfill - WhatsApp —
whatsapp.history_backfill - Slack —
slack.history_backfill
La solución es la misma: desactivarlos a menos que tengas un motivo específico para mantenerlos.
⚠️ Advertencia: Si desactivás el backfill, el bot **no procesará mensajes antiguos** al reconectarse. Esto es lo normal y esperado. Si necesitás que procese algo específico, envialo manualmente.
Conclusión
Si tu bot de Hermes está repitiendo mensajes o respondiendo a cosas de hace días, lo más probable es que history_backfill esté activado. Desactivarlo es la solución más simple y efectiva.
hermes config set discord.history_backfill false
hermes gateway restart
Un minuto de configuración que te ahorra muchos dolores de cabeza.
“`yaml