Pular para o conteúdo principal

Arquitetura Geral

Visão de Alto Nível

O sistema de AI Agents da INCI Brasil é construído com uma arquitetura modular que separa responsabilidades em três camadas principais:

Componentes e Responsabilidades

1. Chatwoot - Camada de Interface

Função: Gerenciamento de conversas e interface de atendimento

Responsabilidades:

  • Receber mensagens dos canais (WhatsApp, Instagram, Webchat)
  • Armazenar histórico de conversas
  • Prover interface web para atendentes humanos
  • Gerenciar status de conversas (aberta, resolvida, pendente)
  • Conectar com WhatsApp Business API oficial da Meta

Tecnologia: Ruby on Rails (Docker) Versão: v4.0.1 URL: https://chatwoot.zamply.com.br


2. N8N - Camada de Orquestração

Função: Backend e cérebro do sistema

Responsabilidades:

  • Receber webhooks do Chatwoot quando nova mensagem chega
  • Processar lógica de negócio (regras, condições, roteamento)
  • Consultar Dify para respostas baseadas em IA
  • Executar integrações com sistemas externos
  • Gerenciar fallback e handoff para humanos
  • Processar filas de mensagens

Arquitetura:

  • 1 serviço editor: Interface visual para criar/editar workflows
  • 10 réplicas webhook: Recebem requisições HTTP dos webhooks
  • 25 réplicas worker: Processam jobs da fila (concurrency: 250)

Tecnologia: Node.js (modo queue) URL: https://n8n-queue.incibrasil.com.br


3. Dify - Camada de Inteligência

Função: IA e recuperação de contexto (RAG)

Responsabilidades:

  • Armazenar base de conhecimento estruturada
  • Processar consultas usando RAG (Retrieval Augmented Generation)
  • Gerenciar agentes de IA
  • Prover interface para equipe alimentar/corrigir conhecimento
  • Integrar com LLMs (GPT, Claude, etc.)

Tecnologia: Python/FastAPI (Docker) Versão: v0.13.0 URL: https://dify.zamply.com.br


4. MySQL - Camada de Dados

Função: Armazenamento e persistência

Responsabilidades:

  • Armazenar dados de conversas, contatos, agentes
  • Logs de processamento
  • Insights de campanhas
  • Webhooks recebidos

Schema Principal: Ver documentação do banco de dados (em desenvolvimento)


Fluxo de Processamento de Mensagem

Mensagem Recebida (Incoming)


Escalabilidade

Dimensionamento Horizontal

O sistema é preparado para escalar horizontalmente:

  • N8N Workers: Podem ser aumentados conforme demanda
  • N8N Webhooks: Podem ser replicados para mais requisições/segundo
  • Chatwoot Sidekiq: Workers paralelos para processar jobs

Limites Atuais

ComponenteConfiguraçãoLimite Estimado
N8N Webhooks10 réplicas~1000 req/s
N8N Workers25 réplicas (conc: 250)~6250 jobs simultâneos
Chatwoot16 CPU / 32GB RAM~10k conversas ativas
DifyCompartilhado~100 req/s

Segurança e Isolamento

Comunicação entre Componentes

  • Todas as comunicações entre serviços são via HTTPS
  • APIs protegidas com tokens de autenticação
  • Chatwoot usa tokens por conta (multi-tenant)
  • N8N workflows isolados por conta/projeto

Dados Sensíveis

  • Tokens e credenciais armazenados como variáveis de ambiente
  • Banco de dados com acesso restrito
  • Logs sem informações pessoais sensíveis (compliance LGPD)

Monitoramento

Métricas Importantes

  • Taxa de resposta da IA: % de mensagens respondidas sem handoff
  • Tempo médio de resposta: Latência total do fluxo
  • Taxa de sucesso: % de mensagens processadas sem erro
  • Uso de recursos: CPU, memória, disco

Logs

Cada componente mantém logs próprios:

  • Chatwoot: Logs no container Docker
  • N8N: Logs por execução de workflow
  • MySQL: Tabela logs com payloads completos

Próximos Passos