Mande áudio, foto da nota ou texto no WhatsApp e o AgroZap registra tudo. Um agente de IA por fazenda responde em linguagem natural — com números exatos vindos do banco, nunca de chute do modelo.
A pecuária de corte gera informação o dia inteiro — no curral, no cocho, na porteira. Só que quem gera essa informação está com as mãos ocupadas, e o sistema que a esperaria está numa mesa a trinta quilômetros dali.
Nascimento anotado no verso da nota, morte lembrada de cabeça, venda combinada por telefone. Quando chega a hora de fechar o rebanho, ninguém sabe dizer quantas cabeças existem — sabe estimar.
“Acho que estamos com mil e duzentas. Ou mil e trezentas.”Pedir para o vaqueiro abrir um formulário de dezoito campos é pedir para o registro não acontecer. O que ele faz sem esforço é apertar o botão do microfone e falar.
“Nasceram três bezerros no pasto Sede hoje.”A compra de sal mineral vira uma imagem no grupo do WhatsApp e morre ali. O custo existiu, saiu do caixa, e nunca entrou no custo por arroba.
Foto da NF · 08:15 · nunca lançadaO ano da pecuária vai de julho a junho, e a planilha fecha em dezembro. Toda taxa de natalidade, desfrute e mortalidade calculada por ano civil corta a estação de monta ao meio.
Jan–dez divide a safra; jul–jun a respeita.Um modelo de linguagem que estima o rebanho produz um número redondo, confiante e errado. E como parece certo, ninguém confere — até a hora de vender.
Errar com convicção é o pior modo de errar.Se a IA entendeu “vinte” onde era “doze”, alguém precisa poder ver o que ela entendeu, desfazer e corrigir. Sem isso, o erro fica no saldo para sempre.
Auditar a IA importa tanto quanto usá-la.Da mensagem no WhatsApp ao número confiável. O AgroZap entende como o produtor fala e responde com dados auditáveis.
Áudio com STT, foto da nota fiscal com OCR + Vision e texto livre com NLP. Tudo vira dado estruturado.
Toda métrica vem de SQL determinístico. O LLM traduz a pergunta e a resposta — nunca calcula nem inventa contas.
Números no Postgres estruturado e o contexto narrativo em pgvector, para um RAG que entende o histórico da fazenda.
Uma IA dedicada com memória do rebanho, que roteia entre SQL e RAG para responder com precisão e contexto.
Consultas, confirmações de movimentação e alertas direto no WhatsApp, integrado pela Evolution API.
Todo modelo carrega a fazenda, e toda ferramenta do agente filtra por ela. As políticas de Row-Level Security no banco ficam como defesa em profundidade.
Seis mecanismos, e o motivo de cada um existir. Nenhum deles é enfeite: todos nasceram de um jeito específico de a informação se perder na pecuária.
Quatro formatos de mensagem entram pelo mesmo cano e saem como evento estruturado.
A regra está escrita no prompt do sistema e sustentada por ferramentas — não é promessa de marketing.
Sem um dicionário do domínio, “garrote” e “novilho” viram texto solto e a conta não fecha.
O rebanho não é um campo que alguém edita. É o resultado da soma dos eventos.
A tela mais incomum do produto: a que mostra a IA errando.
O WhatsApp é a porta de entrada; o painel é onde a fazenda é lida.
Quatro passos entre falar com a fazenda e receber a resposta certa.
Mande um áudio, a foto da nota ou um texto simples — como você já fala no dia a dia.
STT, OCR/Vision e NLP interpretam e normalizam tudo pela ontologia pecuária.
O número entra no Postgres e o contexto narrativo vai para o pgvector.
O agente responde com números exatos vindos de SQL, sempre auditáveis.
Oito peças. Nenhum framework de agente, nenhuma fila externa, nenhuma biblioteca de interface pronta — o que existe foi escrito para este domínio.
Painel e API no mesmo projeto, em TypeScript, servido sob o caminho /agrozap. Interface com Tailwind e gráficos em Recharts.
Sem Redis e sem serviço de fila. Um processo trabalhador separado consome os jobs de ingestão, transcrição, visão, indexação e recálculo, com retentativa.
Dezessete modelos de domínio e quinze enumerações, todos carimbados com a fazenda e ligados ao evento que os originou.
Um modelo de raciocínio para o agente de consulta e um modelo rápido para o parser de linguagem, a leitura de documentos e a transcrição de áudio.
Oito funções tipadas, todas escopadas por fazenda. O modelo escolhe qual chamar; o banco produz o número; o modelo só redige.
Um webhook autenticado por segredo recebe as mensagens, e o envio de resposta e alerta sai pela mesma instância.
Índice aproximado HNSW com distância de cosseno e uma função de banco para trazer os trechos mais próximos da pergunta.
Senha derivada por scrypt, sessão em cookie restrito ao caminho do app e dois papéis no painel.
Todo evento gravado e toda decisão do agente deixam linha em trilha de auditoria — inclusive qual ferramenta foi chamada para responder cada pergunta.
É esta lista que separa um registrador genérico de um sistema que entende pecuária. Cada tipo sabe o que fazer com o saldo, o estoque e o caixa.
| Evento | Como a pessoa fala | O que muda no sistema |
|---|---|---|
| Nascimento | “Nasceram três bezerros no pasto Sede” | Soma cabeças na categoria e no lote; entra na taxa de natalidade da safra |
| Mortalidade | “Morreu uma vaca no Retiro” | Subtrai do saldo; alimenta a taxa de mortalidade e o alerta de perda |
| Compra | “Comprei dezoito garrotes a R$ 2.300” | Soma ao saldo (gado) ou ao estoque (insumo) e lança a despesa |
| Venda | “Vendi doze bois por R$ 95 mil” | Subtrai do saldo, lança a receita e alimenta o desfrute |
| Movimentação | “Passei quarenta do Sede para o Retiro” | Transfere entre lotes sem alterar o total do rebanho |
| Pesagem | “Pesei o lote, média trezentos e oitenta” | Alimenta a curva de peso e o ganho médio diário; não mexe no saldo |
| Vacinação | “Vacinei contra aftosa” | Baixa doses do estoque e entra no bloco de sanidade |
| Fornecimento de sal mineral | “Coloquei vinte sacos no cocho” | Saída de estoque de sal mineral |
| Manejo | “Fiz o manejo do lote de recria” | Registro operacional na linha do tempo do lote |
| Apartação | “Apartei os machos” | Reorganiza categoria e lote sem alterar o total |
| Inseminação (IATF) | “IATF em sessenta matrizes” | Abre o funil reprodutivo da safra |
| Diagnóstico de gestação | “O DG deu quarenta e oito prenhas” | Fecha a taxa de prenhez sobre as matrizes expostas |
| Desmama | “Desmamei trinta e cinco bezerros” | Reclassifica bezerro em garrote — sem alterar o total do rebanho |
O vínculo de cada pessoa com a fazenda é explícito no sistema, e é ele que define o que ela registra, o que ela consulta e quais alertas recebe.
Pergunta “quantas cabeças temos hoje?” no WhatsApp e recebe a resposta exata. Recebe os alertas de mortalidade acima do limiar e de estoque no mínimo.
Vive no painel: natalidade, desfrute, funil reprodutivo, custo por arroba. Usa a tela de logs para conferir se a semana entrou certa.
Manda áudio do curral. Nascimento, morte, movimentação entre pastos e pesagem entram sem abrir aplicativo nenhum.
É o papel para quem o áudio foi desenhado. Se faltar um campo essencial, o sistema pergunta de volta em vez de gravar errado.
A imagem da nota fiscal vira lançamento com fornecedor, itens, quantidades, valor e número do documento — e o insumo entra no estoque.
Zootecnista ou veterinário que precisa da série histórica: eventos por tipo, indicadores por safra e a ficha individual do animal.
Não é “insight”. É indicador calculado sobre evento registrado, com a safra certa e a unidade certa.
Poucas integrações, todas necessárias. O que não é essencial fica desligado por padrão e o sistema continua funcionando sem ele.
| Integração | Para quê | Situação |
|---|---|---|
| Evolution API | Receber e responder mensagens de WhatsApp; baixar mídia; enviar alertas | Essencial para o canal WhatsApp |
| Gemini | Agente de consulta, parser de linguagem, leitura de nota fiscal e transcrição de reserva | Essencial para a interpretação |
| Transcrição dedicada | Áudio longo ou com ruído de curral, com modelo especializado em português | Opcional — há caminho de reserva |
| Embeddings | Busca semântica sobre o histórico narrativo da fazenda | Opcional — desligado sem a chave |
| Importador de planilha | Carga de eventos a partir de arquivo com colunas fixas | Existe como tarefa de bastidor, sem tela |
| Postgres com pgvector | Todo o dado estruturado e os vetores da busca semântica | Essencial |
Só o que é verificável no código. Onde a proteção ainda é parcial, está dito na seção seguinte.
Toda mensagem que chega precisa apresentar o segredo combinado; sem ele, a requisição é recusada antes de tocar o banco.
Só quem está cadastrado como usuário com vínculo à fazenda é processado. Todo o resto é ignorado em silêncio — o número do WhatsApp é compartilhado com outros serviços.
A senha é guardada como derivação scrypt com sal, nunca em claro. A sessão vive num cookie restrito ao caminho do aplicativo.
O identificador da fazenda está em todas as tabelas de domínio e em todas as ferramentas do agente. Políticas de Row-Level Security existem no banco como camada extra.
Ingestão de evento, consulta ao agente, chamada de ferramenta, recálculo de saldo e execução de alerta deixam registro datado.
Descartar uma ingestão não apaga o histórico: marca a mensagem como descartada, reverte os efeitos e recalcula o saldo a partir dos eventos restantes.
Esta seção é parte do produto. Um sistema que promete o que não entrega custa mais caro do que um que diz onde termina.
A base de testes automatizados cobre os indicadores, a derivação do saldo a partir dos eventos, o calendário de safra, a resolução de período e o parser de linguagem — inclusive o caso “não inventa evento quando não entende”.
Não. Quem está no campo usa o WhatsApp que já tem no telefone. Quem senta na cadeira usa o painel no navegador. Não existe aplicativo para instalar, atualizar ou treinar ninguém a abrir.
É por isso que existe a tela de logs. Ela mostra a mensagem que chegou, a transcrição, o que foi entendido, o score de confiança da extração e a resposta que foi enviada de volta.
De lá você descarta a interpretação — o que desfaz os eventos, reverte o estoque, apaga os lançamentos e recalcula o saldo do rebanho — ou reinterpreta com o texto corrigido. Como o saldo é derivado dos eventos, ele sempre se reconstrói.
De consultas ao banco, sempre. O modelo de linguagem tem oito ferramentas à disposição e a instrução explícita de que, se não chamou a ferramenta, não tem o número.
Ele traduz a pergunta em uma chamada, recebe o resultado e redige a resposta em português. O cálculo é do banco; a redação é do modelo.
Porque é o ciclo da pecuária de corte. Fechar em dezembro parte a estação de monta ao meio e distorce natalidade, desmama e desfrute. Aqui a safra é o calendário padrão de todo indicador, não um filtro que alguém precisa lembrar de aplicar.
Não. O saldo do rebanho é mantido por lote e por categoria, que é como a fazenda opera. O cadastro individual — numeração, SISBOV, pesagens, genealogia — é opcional e serve a quem quer a ficha e a curva de peso de cada animal.
Pode mandar, mas nada acontece. Só mensagens de números cadastrados como usuários com vínculo a uma fazenda entram no pipeline; o resto é descartado sem resposta. O número é compartilhado com outros serviços, e esse filtro é o que impede cruzamento.
Parcialmente. Existe um importador que lê um arquivo com colunas fixas de tipo, data, lote, categoria, quantidade e valor, mas ele roda como tarefa de bastidor e ainda não tem tela de upload. Carga histórica em massa está declarada fora do escopo desta versão.
Não. A ontologia inteira — categorias, tipos de evento, indicadores, arroba, safra — foi desenhada para pecuária de corte. Outras espécies e outras culturas exigiriam outro vocabulário, e forçar o atual produziria número sem significado.
A interpretação de texto cai para um caminho determinístico, escrito com regras e expressões regulares, que reconhece os tipos de evento mais comuns, números por extenso e valores em reais. É menos flexível, mas não inventa: quando não entende, devolve pergunta.
O painel e todos os indicadores continuam funcionando normalmente — eles não dependem de IA.
Termos de pecuária e de tecnologia que aparecem acima, explicados uma vez.
Comece a registrar e consultar o seu rebanho por WhatsApp hoje mesmo. Sem planilha, sem digitar relatório.
Abrir AgroZap