MARKETING: anti-spam no worker (jitter humano, batching irregular, guardrails de texto)
Comportamento aplicado apenas a mensagens MARKETING no worker, após a API persistir a intenção (renderPlan).
Jitter humano
- Estado em Redis por
tenantId+environment+ instância (id ou nome). - Variáveis:
MARKETING_RANDOM_DELAY_MIN_MS/MARKETING_RANDOM_DELAY_MAX_MS(padrão 8s–25s).
Batching irregular (micro-atraso)
- Atraso extra aleatório por mensagem depois do jitter humano, antes de render/envio.
- Desligar:
MARKETING_IRREGULAR_BATCH_ENABLED=0 - Faixa:
MARKETING_IRREGULAR_BATCH_MIN_MS(padrão 250),MARKETING_IRREGULAR_BATCH_MAX_MS(padrão 1400).
Guardrails de texto (com marketingOptions.aiRewriteEnabled)
- Compara texto reescrito com um histórico curto em Redis (últimas mensagens aprovadas do mesmo fluxo).
- Três checagens: similaridade (Jaccard em tokens), repetição de bigramas, diversidade lexical mínima.
- Desligar:
MARKETING_TEXT_GUARDRAILS_ENABLED=0 - Limiares:
MARKETING_GUARDRAIL_MAX_SIMILARITY,MARKETING_GUARDRAIL_MAX_BIGRAM_SHARE,MARKETING_GUARDRAIL_MIN_LEXICAL_DIVERSITY,MARKETING_GUARDRAIL_MIN_TOKENS_FOR_DIVERSITY.
Fluxo: reescrita padrão → guardrails → se reprovar, uma reescrita strict → se reprovar de novo, texto original (sem bloquear envio).
Traces
marketing.irregular_batch.applied,marketing.guardrails.summary,marketing.ai.rewrite.output/marketing.ai.rewrite.fallback(campos extras conforme implementação).