Como criar um agente de IA para WhatsApp: passo a passo com API (sem depender de SaaS)
Pesquisa "agente de IA para WhatsApp" no Google e conta o que aparece: landing page de ferramenta, uma atrás da outra, todas cobrando mensalidade por algo que você monta em uma tarde. Até a Meta entrou no jogo — o Meta Business Agent chegou "grátis" no WhatsApp Business em junho, e a partir de 01/08/2026 começa a cobrar por token. Grátis tinha prazo de validade.
Existe o caminho do dev: uma API de WhatsApp, um LLM e código seu. Sem plano Pro, sem limite de "conversas/mês", sem depender do roadmap de terceiro.
Neste tutorial você vai aprender como criar um agente de IA para WhatsApp do zero: subir a Evolution API, receber mensagens via webhook, processar com o Claude e responder — com o caminho aberto pra memória e ferramentas depois.
TL;DR
- O que é: um agente de IA conectado ao seu número de WhatsApp, rodando na sua infra, respondendo com um LLM.
- Stack: Evolution API (open source, Apache 2.0) + Claude API + PHP/Laravel (o padrão serve pra qualquer linguagem).
- Custo: centavos por conversa. A conta completa está no fim do post.
- Alternativa oficial: WhatsApp Cloud API da Meta — grátis pra mensagens de serviço, paga por template.
O que é um agente de IA no WhatsApp (e por que todo mundo quer te vender um)
Um chatbot segue fluxo: aperte 1 pra boleto, aperte 2 pra suporte. Um agente de IA entende a mensagem, mantém o contexto da conversa, decide o que fazer e pode executar ações — consultar um pedido, agendar um horário, escalar pra um humano. A diferença não é o canal. É ter um modelo de linguagem raciocinando no meio.
Por que todo SaaS quer te vender isso? Porque a margem é ótima. A ferramenta cobra R$150 a R$400 por mês pra orquestrar exatamente o que vamos montar aqui: receber webhook, chamar um LLM, devolver a resposta. O custo real disso em API é de centavos. O que você paga na mensalidade é a interface bonita e a promessa de não precisar programar.
Você programa. Então bora.
Se o conceito de agente ainda está nebuloso, o guia de o que é um agente de IA é o ponto de partida — este post é a aplicação prática dele.
Pré-requisitos e ferramentas
- [ ] Um servidor com Docker (uma VPS de US$5 resolve)
- [ ] Uma chave da API da Anthropic
- [ ] Um número de WhatsApp dedicado ao agente (não use seu número pessoal — já explico por quê)
- [ ] PHP 8.3+ com Composer (ou a linguagem da sua stack; o padrão é idêntico)
A arquitetura mínima: webhook, LLM, resposta
Todo agente de WhatsApp, de qualquer SaaS, é este desenho:
WhatsApp → Evolution API → webhook (sua app) → LLM → Evolution API → WhatsApp
Três blocos. A ponte com o WhatsApp, o seu backend e o modelo. Antes de codar, uma decisão honesta sobre a ponte:
Caminho 1 — Evolution API via Baileys (o que vamos usar). Open source, ~9 mil stars, conecta um número comum emulando o WhatsApp Web. Zero burocracia, ideal pra aprender, projetos internos e MVPs. O porém: é conexão não oficial. A Meta pode banir números que violam os termos de uso — por isso o número dedicado.
Caminho 2 — WhatsApp Cloud API (oficial). A Evolution API também suporta o canal oficial da Meta. Desde julho de 2025 a cobrança é por mensagem de template — e mensagens de serviço (você respondendo um cliente que te chamou, dentro da janela de 24h) são gratuitas. Pra atendimento receptivo em produção, é o caminho sério.
A boa notícia: o seu código não muda entre os dois. A Evolution API abstrai o canal. Comece no Baileys, migre pro oficial quando o agente provar valor.
Mão na massa: criando o agente de IA para WhatsApp
Passo 1: suba a Evolution API
docker run -d \
--name evolution-api \
-p 8080:8080 \
-e AUTHENTICATION_API_KEY=troque-esta-chave \
atendai/evolution-api:latest
Em produção use o docker-compose da documentação oficial, que inclui Postgres e Redis. Com o serviço no ar, crie uma instância e conecte seu número lendo o QR code:
curl -X POST http://localhost:8080/instance/create \
-H "apikey: troque-esta-chave" \
-H "Content-Type: application/json" \
-d '{"instanceName": "agente", "qrcode": true}'
Passo 2: aponte o webhook pra sua app
curl -X POST http://localhost:8080/webhook/set/agente \
-H "apikey: troque-esta-chave" \
-H "Content-Type: application/json" \
-d '{
"webhook": {
"enabled": true,
"url": "https://sua-app.com.br/webhook/whatsapp",
"events": ["MESSAGES_UPSERT"]
}
}'
Cada mensagem recebida agora vira um POST na sua aplicação. Se estiver desenvolvendo local, um túnel resolve — Ngrok ou Expose, você escolhe.
Passo 3: o cérebro — webhook chamando o Claude
Uma rota Laravel, o SDK oficial da Anthropic pra PHP (composer require anthropic-ai/sdk) e o loop fundamental de qualquer agente:
use Anthropic\Client;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
Route::post('/webhook/whatsapp', function (Request $request) {
$data = $request->input('data');
// ignora mensagens enviadas por você mesmo
if ($data['key']['fromMe'] ?? false) {
return response()->noContent();
}
$numero = explode('@', $data['key']['remoteJid'])[0];
$texto = $data['message']['conversation']
?? $data['message']['extendedTextMessage']['text']
?? null;
if (! $texto) {
return response()->noContent();
}
$client = new Client(apiKey: config('services.anthropic.key'));
$resposta = $client->messages->create(
model: 'claude-opus-4-8',
maxTokens: 1024,
system: 'Você é o assistente da Beer and Code no WhatsApp. '
. 'Responda curto, direto e em português. '
. 'Se não souber, diga que vai encaminhar pra um humano.',
messages: [
['role' => 'user', 'content' => $texto],
],
);
$textoResposta = '';
foreach ($resposta->content as $block) {
if ($block->type === 'text') {
$textoResposta = $block->text;
break;
}
}
Http::withHeaders(['apikey' => config('services.evolution.key')])
->post(config('services.evolution.url') . '/message/sendText/agente', [
'number' => $numero,
'text' => $textoResposta,
]);
return response()->noContent();
});
Pronto. Mensagem entra, Claude pensa, resposta sai. Isso já é mais capaz que a maioria dos chatbots de menu que você encontra por aí — e o código inteiro coube numa rota.
Dois detalhes de produção que este exemplo simplifica: valide a origem do webhook (um token na URL já ajuda) e jogue o processamento pra uma queue — a Evolution API reenvia o webhook se sua rota demorar a responder, e você não quer responder o cliente duas vezes.
De chatbot pra agente: memória e ferramentas
O que você montou responde bem, mas esquece tudo a cada mensagem. Pra virar agente de verdade, faltam duas peças:
Memória. Guarde o histórico da conversa por remoteJid (cache, Redis, Postgres) e envie as últimas N mensagens no array messages a cada chamada. O modelo passa a lembrar que o cliente já disse o nome, o pedido, o problema. O padrão completo está em memória de agente de IA.
Ferramentas. É o pulo do gato: em vez de só conversar, o agente consulta seu banco, busca um pedido, agenda horário. Isso é tool calling — o modelo decide quando chamar uma função sua e você executa. Destrinchei o padrão em tool calling na prática.
Com essas duas peças, o desenho é o mesmo de um agente de IA do zero — o WhatsApp é só o canal de entrada. E se quiser ver um projeto completo com essa stack, tem o agente de bolão da Copa com Evolution API e n8n aqui no blog.
Quanto custa rodar (a conta real)
Vamos supor 1.000 conversas/mês, cada uma com ~3 mil tokens de entrada (histórico + system prompt) e ~500 de saída:
- WhatsApp: no Baileys, zero. Na Cloud API oficial, respostas dentro da janela de 24h são mensagens de serviço — gratuitas.
- LLM: no Claude Opus 4.8 (US$5/US$25 por milhão de tokens), essa carga custa ~US$27/mês. Trocando pro Haiku 4.5 (US$1/US$5) — que dá conta de atendimento com folga — cai pra ~US$5,50/mês.
- Infra: VPS de US$5 a US$10 rodando Evolution API e sua app.
Total: menos de US$20 por mês pra mil conversas, com o modelo mais barato. O SaaS médio cobra dez vezes isso — e o plano de entrada geralmente nem inclui mil conversas.
Quando o SaaS vale a pena? Quando quem opera não é dev: painel pro time comercial, múltiplos atendentes, relatório pronto. Ferramenta boa cobra pela operação, não pela tecnologia. Se você é dev e o gargalo é a tecnologia, a mensalidade não se justifica.
Limitações e pontos de atenção
- Risco de ban (Baileys). Conexão não oficial viola os termos do WhatsApp. Use número dedicado, não dispare mensagem em massa, e migre pra Cloud API quando o agente virar peça crítica do negócio.
- Opt-in e LGPD. Responder quem te chamou é uma coisa; prospectar ativamente é outra. Conversa de cliente é dado pessoal — cuidado com o que entra no prompt e onde o histórico é armazenado.
- Loop infinito. Agente que responde mensagem pode responder a própria mensagem — ou entrar em ping-pong com outro bot. O filtro de
fromMeno código é o mínimo; o post sobre agente em loop infinito cobre os guardrails. - Custo sem teto. Sem limite de tokens e sem monitoramento, um cliente prolixo (ou um ataque) vira fatura. Ponha
maxTokensbaixo, limite o histórico e monitore o usage da API.
FAQ rápido
Preciso da API oficial do WhatsApp? Pra aprender e validar, não — o Baileys resolve. Pra operação séria de atendimento, sim: a Cloud API é o caminho sem risco de ban, e mensagens de serviço são gratuitas.
Posso usar meu número pessoal? Não. Conexão não oficial tem risco real de banimento, e número banido é dor de cabeça grande. Um chip pré-pago dedicado custa quase nada.
Quanto custa por conversa? Com Haiku 4.5, uma conversa típica (3k tokens de entrada, 500 de saída) custa cerca de meio centavo de dólar. A VPS é o maior custo fixo do setup.
Funciona com outra linguagem além de PHP? Sim. O padrão webhook → LLM → resposta é agnóstico: a Anthropic tem SDK oficial pra Python, TypeScript, Go, Ruby, Java e C#. Muda a sintaxe, não a arquitetura.
Conclusão
Você montou o esqueleto de um agente de IA no WhatsApp: Evolution API na ponte, webhook no meio, Claude no cérebro. Com memória e tool calling, esse esqueleto vira produto — atendimento, qualificação de lead, agendamento, o que o seu contexto pedir.
O próximo salto não é trocar de ferramenta. É dominar a engenharia em volta do modelo: contexto, memória, ferramentas, avaliação. Esse é exatamente o mapa que eu abro na masterclass O Mapa do Engenheiro de IA — do bot de fim de semana ao agente que aguenta produção.
{AI Engineer} — apaixonado por Laravel, arquitetura de software e construir produtos com impacto. Compartilho aqui tutoriais, descobertas e reflexões sobre o dia a dia de engenharia.