Uma assistente que conversa como gente e não inventa nenhum dado.
A usuária manda áudio, foto, print ou texto pelo WhatsApp oficial da Meta, e a Tay organiza agenda, lembretes, listas, pessoas, finanças e, no plano para empreendedoras, os clientes. Um modelo de linguagem conduz a conversa inteira; o que é dado mora na engine. Antes do código, ficou decidido o que o modelo pode fazer sozinho e o que só uma ferramenta faz.
- O modelo conversa, a engine decide
Nada de classificador barrando a conversa nem resposta enlatada. Mas agenda, lembrete e dinheiro só mudam por ferramenta: o modelo nunca é a fonte da verdade.
- Ferramentas grossas
Cada ferramenta é um fluxo completo (agendar, reagendar, fechar o mês), com validação na entrada e resultado que o modelo só repete.
- Só a dona da conta
A Tay nunca escreve para terceiros, nem para as clientes da usuária: quando precisa, entrega o texto pronto para ela copiar. Fora da janela de 24 h, só com template aprovado pela Meta.
As telas, como foram construídas.
Capturas e gravações do produto rodando, sem montagem.








Como o sistema se organiza.
Camadas da aplicação e a estrutura real do repositório.
- CanalWhatsApp Cloud API oficial · webhook → fila BullMQ · áudio e imagem nativos
- AgenteGemini 3.1 Flash-Lite pelo Vercel AI SDK · prompt em camadas com cache
- EngineNestJS 11 · 40 ferramentas · guardas contra invenção e ações destrutivas
- DadosPostgreSQL 16 com RLS por usuária · pgvector para memória · Redis
- SuperfíciesNext.js 16: site, portal, checkout e painel interno · cobrança pelo Asaas
tay/ ├─ apps/api/ ............ engine NestJS · 40 ferramentas ├─ apps/api/evals/ ...... cenários contra o modelo real ├─ apps/web/ ............ site, portal e checkout ├─ apps/admin/ .......... painel interno · custos e turnos ├─ packages/shared/ ..... planos e contratos em zod ├─ packages/ui/ ......... tema da marca, web e admin ├─ packages/emails/ ..... e-mails transacionais └─ docs/adr/ ............ decisões registradas
Decisões que sustentam o produto.
- 01
Confirmar antes de apagar
Exclusões passam por confirmação em duas fases, amarrada ao item exato, com uma trava extra que atravessa turnos: um sim solto não apaga a coisa errada.
- 02
A resposta conferida com o que aconteceu
Guardas no código comparam o que a Tay diz com o que as ferramentas fizeram, e o painel marca cada suspeita de invenção, turno a turno, para revisão.
- 03
Custo medido por conversa
Persona e ferramentas formam um prefixo estável que o cache do modelo reaproveita; o custo de cada turno aparece no painel interno.
- 04
Isolamento no banco
Cada usuária só enxerga os próprios dados por políticas de segurança por linha no Postgres, não só por filtro no código.
- 05
Testado contra o modelo real
Além dos testes unitários, uma suíte de cenários roda contra o modelo de produção com um juiz automático, e um simulador conversa com a Tay ao longo de uma semana inteira.
O que foi entregue.
A Tay está em produção com usuárias reais: número de WhatsApp próprio, templates aprovados pela Meta, cobrança ativa e cada turno da conversa auditável no painel.
- 40ferramentas determinísticas
- 500+arquivos de teste na engine
- 96migrações versionadas
- 3apps sobre a mesma engine
- Consultoria de produto
- Agente de IA no WhatsApp
- Engine com 40 ferramentas
- Site de vendas e portal web
- Cobrança recorrente
- Painel interno com custos e turnos
métricas de uso a incluir quando medidas em produção