Pular para conteúdo

O que você vai aprender

  • Como montar o agente em n8n: webhook → classificação → LLM → tools → resposta.
  • Como escolher entre Claude Sonnet e Haiku para cada módulo, com critério de custo × qualidade.
  • Como conectar tools (Bling, Supabase pgvector, Pix) via HTTP node ou função custom.
  • Como configurar RAG quando a base de conhecimento é grande.
  • Como ativar logging estruturado para o monitoramento posterior.

Por que isso importa

O agente em n8n self-host é a stack composable canônica do método (Princípio 7 do DPIA). Pesquisa E §10 e Pesquisa A §2.5 mostram que essa combinação (n8n + Claude + Supabase + WhatsApp Cloud API + REST para ERP brasileiro) cobre 80% dos projetos de PME, custa R$ 550-1.750/mês de infra (Pesquisa F §1.4), e não amarra cliente nem implementador a plataforma proprietária.

A construção do agente é a fase mais técnica do método. É também onde aluno técnico se diferencia do aluno comercial. Ambos precisam dominar — o comercial não precisa otimizar, mas precisa saber montar o workflow básico.

O passo a passo

1. Provisionar ambiente de homologação. Antes de tocar em produção: - n8n self-host em VPS Hetzner (CX22 ou CX32, ~R$ 50/mês). - Domínio + HTTPS via Caddy ou Traefik. - Acesso ao Bling de teste (pedir token de teste ao cliente — Bling permite ambiente sandbox). - Supabase projeto novo, pgvector ativado, schema pronto. - Conta Meta WhatsApp Cloud API — em homologação, usa-se número de teste fornecido pela Meta. - Conta Anthropic com chave API e limite de gastos configurado.

2. Topologia do workflow n8n. Estrutura canônica:

[Webhook WhatsApp] 
[Function: classificar intenção / extrair contexto]
[Function: consultar memória (Supabase) — últimas N mensagens do cliente]
[HTTP Request: chamar Claude (Anthropic API)]
[Switch: ação retornada]
   ├─ responder_cliente → [WhatsApp Send Message]
   ├─ criar_pedido → [HTTP Bling create order] → [WhatsApp Send confirmation]
   ├─ escalar_humano → [WhatsApp Send escalation msg] + [notificar operador no canal de escala]
   └─ pedir_esclarecimento → [WhatsApp Send question]
[Function: logar interação no Supabase]

3. Escolher modelo Claude. Critério: - Sonnet 4.x (raciocínio principal): atendimento de pedido, agendamento com regras complexas, triagem documental jurídica. Custo: ~R$ 0,05-0,15 por interação completa. - Haiku 4.x (volume, periférico): transcrição, sumarização, classificação simples, FAQ pura. Custo: ~R$ 0,01-0,03 por interação. - Combinação: Haiku para classificar a intenção da mensagem; Sonnet para gerar a resposta com regras aplicadas.

Em PME, o custo do LLM é desprezível comparado ao valor do processo. Pedido de R$ 268 com interação que custa R$ 0,08 representa 0,03% do ticket. Otimizar custo de LLM antes da hora é gastar tempo onde não rende.

4. Configurar memória / RAG no Supabase. Para cada cliente, criar tabela interactions:

create table interactions (
  id uuid primary key default gen_random_uuid(),
  cliente_id text,
  telefone text,
  mensagem_input text,
  mensagem_output text,
  contexto_usado jsonb,
  acao text,
  confidence float,
  escalado boolean default false,
  created_at timestamp default now()
);

create index on interactions (telefone, created_at desc);

Para RAG, segunda tabela:

create table knowledge_base (
  id uuid primary key default gen_random_uuid(),
  conteudo text,
  embedding vector(1536),
  metadata jsonb
);

create index on knowledge_base using ivfflat (embedding vector_cosine_ops);

Carregar base de conhecimento gerada na fase P: FAQ + scripts + políticas + regras tácitas contextuais.

5. Conectar tools via HTTP node ou função. Cada tool do system prompt vira: - HTTP node n8n configurado com endpoint, auth e schema. - Ou função JavaScript no n8n com lógica adicional (validação, transformação).

Para Bling especificamente, REST endpoints principais: - GET /api/v3/contatos?telefone=... — busca cliente. - GET /api/v3/produtos?nome=... — busca produto. - POST /api/v3/pedidos — cria pedido. - GET /api/v3/contas-receber?contato=... — checa inadimplência.

Cada chamada com token Bearer, com retry policy (3 tentativas, backoff exponencial).

6. Configurar tool use no Claude. A API Anthropic permite registrar tools no payload. Cada tool tem: - name - description (vai entrar no contexto do modelo) - input_schema (JSON Schema)

Quando o Claude decide chamar uma tool, retorna tool_use no response. n8n captura, executa a tool real (HTTP node), passa o resultado de volta em nova chamada do Claude com tool_result. Loop até a resposta final.

Em workflow n8n, esse loop é implementado com Switch + Wait ou com Loop Over Items apropriado.

7. Logar tudo no Supabase. Cada interação completa gera um insert em interactions. Campos críticos: - mensagem_input (do cliente). - mensagem_output (para o cliente). - contexto_usado (cliente_id, fluxo aplicado, regras disparadas). - acao (responder, criar pedido, escalar). - confidence (do LLM). - escalado (sim/não).

Esse log é a base do monitoramento e dos relatórios mensais da fase de Acompanhamento. Sem log estruturado, não há métrica de adoção nem de qualidade.

8. Webhook do WhatsApp. O webhook da Meta recebe payload JSON com mensagem do cliente. Configuração no n8n: webhook node com path único, autenticação por verify token (definido na Meta). Validar assinatura no first hit.

9. Configurar plano de rollback (testado). Em n8n, o "botão de pausar" é uma flag em variável do workflow: - Quando flag = "pausa", o webhook responde mensagem-padrão e roteia para canal humano. - Quando flag = "ativo", processa normalmente.

Champion (Maria) tem acesso a uma interface simples (botão em página privada, ou comando no Slack/WhatsApp interno) que muda essa flag em < 15 segundos. Teste obrigatório antes do exit-gate de I.

10. Configurar alerting básico. n8n + webhook para canal interno (Slack, Discord, WhatsApp da equipe): - Erro HTTP no Bling. - Latência LLM > 8s. - Confidence < 0.5 em mais de N% das interações na última hora. - Taxa de escalonamento > 40% em uma janela curta.

Sem alerting, problema em produção só é descoberto pelo cliente reclamando.

Exemplo aplicado — Polaris Bebidas (Joinville/SC)

Workflow n8n da Polaris, ambiente de homologação:

[Webhook Meta WABA staging]
[Function: parse payload, extrair {telefone, texto, audio_url?}]
[IF audio? → Haiku: transcrever via Whisper-like → texto]
[Function: load últimas 5 mensagens do telefone no Supabase]
[HTTP: Claude Sonnet com system_prompt_v0_4 + contexto + tools]
[Loop tool_use:
   - consulta_cliente_bling → HTTP Bling
   - consulta_produto_bling → HTTP Bling
   - consulta_rag_polaris → Supabase pgvector
   - cria_pedido_bling → HTTP Bling
   - escala_humano → função n8n + notificação canal Slack interno
   - retorno tool_result para Claude]
[Switch acao:
   responder_cliente → [HTTP WhatsApp Send]
   criar_pedido → [HTTP Bling + WhatsApp Send]
   escalar_humano → [WhatsApp Send + alerta Slack para Maria]
   pedir_esclarecimento → [WhatsApp Send]]
[Function: insert interaction no Supabase]

Decisões técnicas Polaris: - Sonnet 4.6 (atualização disponível em maio 2026) como modelo principal. - Haiku 4.6 para transcrição de áudio + classificação preliminar. - Custo médio estimado por interação: R$ 0,09 (300 interações/dia × 30 dias = R$ 810/mês de LLM, dentro da projeção). - Latência alvo: < 4s entre mensagem do cliente e início de resposta. - Supabase pgvector com 47 chunks da FAQ Polaris + 18 regras tácitas em formato de embedding. - Bling token de teste isolado, ambiente sandbox. - WABA: número de teste Meta usado em homologação. - Plano de rollback: Maria recebe link de página interna com botão "PAUSAR AGENTE". Clique muda flag no n8n. Teste: pausa em 8 segundos, alerta no WhatsApp da equipe em 12 segundos. OK.

Erros comuns

  • Construir direto em produção. Sem ambiente de homologação, erro afeta cliente real. Corrige: sandbox obrigatório.
  • Pular memória de sessão. Agente esquece o contexto da conversa entre mensagens. Corrige: últimas N mensagens carregadas a cada chamada.
  • Tool use sem schema rigoroso. Claude inventa parâmetros. Corrige: JSON Schema completo em cada tool.
  • Não logar. Sem log, sem métrica. Corrige: insert estruturado a cada interação.
  • Esquecer rate limit da Meta. WhatsApp Cloud API tem limites por número. Corrige: queue interno do n8n com retry.
  • Otimizar custo de LLM antes da hora. Trocar Sonnet por Haiku antes de validar qualidade. Corrige: primeiro qualidade, depois custo.

Checklist de saída

  • Ambiente de homologação provisionado (n8n, Supabase, Bling sandbox, WABA staging).
  • Workflow n8n estruturado (webhook → classificador → LLM → tools → resposta → log).
  • Tools conectadas com schema rigoroso.
  • Memória de sessão funcionando (últimas N mensagens carregadas).
  • RAG configurado se aplicável (Supabase pgvector + base).
  • Logging estruturado em interactions.
  • Plano de rollback funcional (pausa em < 15s).
  • Alerting básico configurado.

Vai além

  • Manual canônico, sub-etapa I.2 + Princípio 7.
  • Pesquisa E §10 — stack composable.
  • Documentação Anthropic Tool Use (versão atual).
  • Documentação n8n Webhook + HTTP nodes.
  • Exercício prático: construir o workflow do cliente do exercício em ambiente de homologação real (n8n local ou VPS pessoal); fazer 5 chamadas de teste end-to-end.