WhatsApp · Evolution API · OpenRouter

Um agente de IA que responde no WhatsApp

FastAPI recebe a mensagem pelo webhook da Evolution API, consulta o LLM via OpenRouter e responde — com personalidade definida num arquivo.

# clone, configure e suba
git clone git@github.com:inematds/intelecto-testes.git
cd intelecto-testes
cp .env.example .env
# edite o .env com suas chaves
docker compose up --build -d
O que é

Bot de WhatsApp com LLM, em poucos containers

O Intelecto é um agente de IA conectado ao WhatsApp via Evolution API, usando um LLM através do OpenRouter. O app FastAPI recebe as mensagens por webhook, manda para o modelo e devolve a resposta pelo WhatsApp. A personalidade do agente vem de um arquivo `soul.md` na raiz.

💬 Conecta no WhatsApp

Via Evolution API (gateway de WhatsApp). Você escaneia um QR Code e o número passa a falar com o bot.

💬 LLM via OpenRouter

Escolha o modelo no `.env` (ex.: `anthropic/claude-sonnet-4`). Já preparado para futuramente usar Ollama local.

💬 Personalidade editável

O `soul.md` define o tom e o comportamento do agente. Edite o arquivo antes de subir para ajustar a persona.

Como funciona

O caminho de uma mensagem

Cada mensagem recebida no WhatsApp percorre a Evolution API, o app FastAPI e o LLM, e a resposta volta pelo mesmo caminho.

WhatsApp Evolution API FastAPI (webhook) OpenRouter (LLM) resposta WhatsApp

Dois containers

intelecto (FastAPI, porta 8000) e evolution-api (gateway WhatsApp, porta 8085).

Webhook automático

O Intelecto checa e configura sozinho o webhook da instância ao iniciar, apontando para `http://intelecto:8000/webhook/whatsapp`.

Pré-requisitos

O que ter antes de subir

O caminho recomendado é Docker. Você precisa de uma chave do OpenRouter e de um número de WhatsApp para conectar.

Docker + Compose

No Linux, instale Docker e o plugin Compose. No Windows, use o Docker Desktop com WSL 2.

# Ubuntu/Debian
sudo apt install -y docker.io docker-compose-v2 git

Chave do OpenRouter

Crie em openrouter.ai e coloque no `.env`, junto do modelo desejado.

# no .env
OPENROUTER_API_KEY=sk-or-v1-...
OPENROUTER_MODEL=anthropic/claude-sonnet-4-20250514

Evolution API no .env

URL interna, chave e nome da instância do WhatsApp.

# no .env
EVOLUTION_API_URL=http://evolution-api:8080
EVOLUTION_API_KEY=minha-chave-secreta
EVOLUTION_INSTANCE_NAME=intelecto
Guia de uso · passo a passo

Conectando o bot ao WhatsApp

Do clone à primeira resposta. Veja também o "Guia Rápido" no README do repositório.

1

Clone e configure

Copie o `.env.example` e preencha com suas chaves. Edite o `soul.md` para definir a personalidade do agente.

git clone git@github.com:inematds/intelecto-testes.git
cd intelecto-testes
cp .env.example .env   # edite o .env
2

Suba os containers

Inicia o app FastAPI (8000) e a Evolution API (8085). Use `-d` para rodar em background.

docker compose up --build -d
3

Crie a instância do WhatsApp

Pelo painel em `http://localhost:8085` ou via API. A resposta inclui um QR Code.

curl -X POST http://localhost:8085/instance/create \
  -H "apikey: SUA_EVOLUTION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"instanceName":"intelecto","qrcode":true}'
4

Escaneie o QR Code

No WhatsApp do celular: Configurações > Aparelhos conectados > Conectar um aparelho. Confirme que o status ficou `open`.

curl -H "apikey: SUA_EVOLUTION_API_KEY" \
  http://localhost:8085/instance/connectionState/intelecto
5

Mande uma mensagem

O webhook é configurado automaticamente. Envie uma mensagem ao número conectado e acompanhe os logs do bot.

docker compose logs -f intelecto
# Mensagem de <remetente>: <texto>
# HTTP Request: POST .../chat/completions 200 OK
Exemplos

O que dá pra fazer

Um agente conversacional no WhatsApp, ajustável por configuração.

🤖 Assistente conversacional

Responde às mensagens do número conectado com a personalidade definida no `soul.md`.

🎭 Trocar a persona

Edite o `soul.md` e reinicie o container para mudar o tom, o papel e o comportamento do agente.

🔀 Trocar de modelo

Ajuste `OPENROUTER_MODEL` no `.env` para experimentar modelos diferentes via OpenRouter.

🛠️ Desenvolvimento local

Rode sem Docker com `uvicorn src.main:app --reload --port 8000` apontando o `.env` para a Evolution API acessível.

Roadmap

Para onde o Intelecto vai

Este é um repositório de testes; as direções abaixo seguem o que o próprio README sinaliza.

Agora
WhatsApp + OpenRouterBot funcional via Evolution API, com webhook automático e personalidade em soul.md.
Próximo
Ollama (LLM local)O projeto já está preparado para usar Ollama como provedor local — rodar modelos na própria máquina, sem API externa.
Depois
Mais robustezTratamento de mapeamento LID, persistência de instância e observabilidade dos logs.