Projeto · 2025 → hoje
atende.expert
Atendimento e agendamento com IA pelo WhatsApp
SaaS multi-tenant para clínicas, salões, barbearias e pet shops: um agente de IA conversa com o cliente, consulta disponibilidade real, agenda, remarca, vende e escala para um humano — tudo supervisionado por um console operacional.
Telas
O que faz
- Agente conversa por texto ou áudio no WhatsApp e no site, em português
- Agenda, remarca, cancela, monta carrinho e faz pedidos sem intervenção humana
- Console da equipe: agenda, loja, inbox em tempo real, catálogo, clientes e contas
- Motor de agendamento com auto-atribuição, encadeamento de serviços e 9 status
- Sincronização bidirecional com Google Calendar
- Eval Studio: juiz LLM pontua cada conversa em cinco dimensões
Stack
- Java 25
- Spring Boot 3.5
- PostgreSQL
- pgvector
- Node 22
- TypeScript
- Vercel AI SDK
- BullMQ
- Redis
- Next.js 16
- React 19
- Auth0
- WhatsApp Cloud API
- Google Calendar API
- Docker
- Railway
- OpenTelemetry
Produto completo, do zero
Desafios técnicos
Onde o problema resistiu.
Multi-tenancy por schema
Cada negócio tem um schema PostgreSQL por módulo, trocado via search_path. O tenant ativo vive em um ScopedValue do Java 25 e caches são chaveados por tenant.
Zero double-booking
Conflitos barrados no banco com EXCLUDE USING gist sobre tstzrange — sem locks na aplicação. Jobs noturnos com eleição de líder via advisory lock.
Agente que não inventa
Estado de grounding com horários e IDs já apresentados. Respostas do tipo "agendei" são bloqueadas se não houver chamada de ferramenta de escrita bem-sucedida.
Qualidade mensurável
Cenários YAML rodam contra o stack real com cliente simulado e juiz LLM. Mudar um prompt sem medir regressão deixou de ser aceitável.
Integração sem broker
Outbox transacional por tenant consumido por cursor via HTTP. Chat e calendar-sync reagem a eventos sem Kafka ou RabbitMQ.
RAG multilíngue barato
Embeddings de 768d em pgvector (HNSW) gerados por modelo ONNX em serviço isolado — ocupa gigabytes e não escala como os workers.