Mensagens Duplicadas — Solução OpenClaw

Mensagens Duplicadas

O OpenClaw está enviando a mesma mensagem várias vezes? Veja como resolver.

Sintomas

  • Mesma resposta aparece 2+ vezes
  • Bot responde múltiplas vezes à mesma pergunta
  • Notificações duplicadas

Causas e Soluções

1. Múltiplas Instâncias do Gateway

Causa: Mais de um gateway rodando simultaneamente.

Diagnóstico:

ps aux | grep openclaw
# Se aparecer mais de um processo, problema encontrado

Solução:

# Matar todos os processos
pkill -f openclaw

# Iniciar apenas um
openclaw gateway start

2. Webhook Chamado Múltiplas Vezes

Causa: Serviço externo reenvia webhook por timeout.

Diagnóstico:

openclaw logs | grep webhook
# Procure por timestamps muito próximos

Solução:

# config.yaml
webhooks:
  deduplication:
    enabled: true
    window_seconds: 60

3. Retry de Mensagem no Canal

Causa: WhatsApp/Telegram reenvia mensagem que “falhou”.

Solução:

# config.yaml
channels:
  deduplication:
    enabled: true
    message_id_cache: 1000

4. Loop de Resposta

Causa: Bot responde a própria mensagem.

Diagnóstico: Verifique se o bot está em grupo e respondendo a si mesmo.

Solução:

# config.yaml
channels:
  ignore_self: true

5. Heartbeat Mal Configurado

Causa: Heartbeat dispara múltiplas vezes.

Solução:

# config.yaml
heartbeat:
  interval: 5m  # Não menos que 5 minutos
  overlap_protection: true

Deduplicação Manual

Por Message ID

deduplication:
  strategy: message_id
  cache_size: 1000
  ttl_seconds: 300

Por Conteúdo

deduplication:
  strategy: content_hash
  window_seconds: 60

Combinado

deduplication:
  strategy: hybrid
  message_id_cache: 1000
  content_window: 30

Verificar Logs

# Procurar duplicatas
openclaw logs | grep -E "message.*received" | uniq -d

# Ver se há múltiplos processamentos
openclaw logs | grep "processing message" | tail -50

Prevenção

Configuração Robusta

# config.yaml completo para evitar duplicatas
deduplication:
  enabled: true
  strategy: hybrid
  message_id_cache: 1000
  content_window: 60

channels:
  ignore_self: true
  
webhooks:
  timeout: 10000
  no_retry: false

Monitoramento

# Alerta se muitas mensagens em pouco tempo
openclaw logs | grep -c "sent message" 
# Se > 100 em 1 minuto, algo errado

Casos Específicos

WhatsApp Duplicando

  1. Verifique se só há uma sessão ativa
  2. Não abra WhatsApp Web no navegador enquanto usa OpenClaw
  3. Configure auto_reconnect para evitar sessões paralelas

Telegram Duplicando

  1. Verifique se só há um bot com esse token
  2. Configure webhook OU polling, não ambos
  3. Use drop_pending_updates: true ao iniciar

Discord Duplicando

  1. Verifique presença em múltiplos servidores
  2. Configure rate limiting apropriado

Ainda com Problemas?

  1. Pare tudo: pkill -f openclaw
  2. Limpe cache: rm -rf ~/.openclaw/cache/
  3. Reinicie limpo: openclaw gateway start
  4. Monitore: openclaw logs -f

Próximos Passos