Aberto a posições de AI Engineer remoto ou híbrido
Estudo de caso — Em produção

AgendaGo: um SaaS de agendamentos com três agentes de IA em produção

Projetei e opero o AgendaGo, um SaaS de agendamentos multinegócio. Este caso explica como funcionam seus três agentes de IA, quais barreiras eles têm e como os avalio e os meço.

AgendaGo — SaaS de agendamentos multissetorial com três agentes de IA.
Ver o produto

O que é e em que estado está

O AgendaGo é um SaaS de agendamentos multinegócio: cada negócio configura sua agenda e seus clientes reservam. Está em produção em agendago.com.ar. Projetei e opero o sistema e, sobre ele, construí três agentes de IA com tool calling.

Este caso descreve a parte de engenharia de IA: como se limita o que um modelo pode fazer, como ele é avaliado e o que se mede em cada chamada.

O problema que resolve

Um negócio que vive de horários marcados tem tarefas que se repetem todos os dias. Cada agente do AgendaGo assume uma delas:

  • Configurar o sistema: serviços, horários e regras. Quem faz isso é o assistente do painel, a pedido do dono.
  • Atender e agendar por WhatsApp. Quem faz isso é o agente de WhatsApp, com o cliente final.
  • Carregar o estoque a partir das notas fiscais e romaneios de fornecedores. Quem faz isso é a leitura com visão.

Arquitetura

O frontend é React com TypeScript, Vite, Tailwind e shadcn/ui. O backend vive no Supabase: PostgreSQL com RLS e Edge Functions. As integrações externas são a WhatsApp Cloud API e o MercadoPago.

A IA roda em Edge Functions e chama a OpenAI por HTTP direto, sem SDK, atrás de uma camada de abstração de provedor. A resposta viaja em streaming da Edge até o frontend, então o dono vê o texto enquanto ele é gerado.

Assistente do painel: propõe, e uma pessoa aprova

O assistente do painel tem 21 ferramentas: 11 de leitura, 2 de simulação ou explicação e 8 de proposta. As de proposta nunca escrevem. Elas criam uma proposta com o diff e sua consequência, que expira em 15 minutos, e um clique humano a aplica.

Aplicar a proposta não depende de o modelo se comportar bem: quem garante é o banco de dados. É uma função SECURITY DEFINER, só para o papel admin, com bloqueio de linha e uma etapa atômica que aplica e marca a proposta como aplicada.

  • Três níveis de confirmação, derivados do risco de cada ação. As destrutivas exigem confirmação explícita e não podem ir em lote.
  • Por turno: no máximo 4 rodadas de ferramentas do modelo e 700 tokens, mais um teto de gasto por turno.
  • Um orçamento mensal por negócio, e as execuções podem ser canceladas.

Agente de WhatsApp: três barreiras antes de agendar

O agente de WhatsApp tem 9 ferramentas: disponibilidade, reserva, horários, endereço, serviços, cobertura, requisitos, nova pergunta e encaminhamento para uma pessoa.

Reservar tem três barreiras, e nenhuma depende do que o modelo diz:

  • O horário precisa sair do motor de disponibilidade no mesmo turno.
  • O cliente não pode já ter uma reserva naquele dia.
  • Um trigger do banco bloqueia o overbooking como último fechamento.

Tudo o que sai para o cliente passa por uma única via de envio, que aplica a janela de 24 horas e os templates do WhatsApp. Um router determinístico responde cerca de 44% das mensagens sem chamar o modelo. O app passou pela revisão da Meta em 31 de agosto de 2026.

Visão: notas fiscais e romaneios de fornecedores

O modelo lê notas fiscais e romaneios de fornecedores para atualizar o estoque. Extrai fornecedor, número, data, total e itens, e o prompt manda usar null e nunca inventar um dado.

  • Uma validação determinística limita itens e tamanhos e exige uma janela de datas.
  • O cruzamento com o catálogo é feito por código determinístico, não pelo modelo.
  • O que foi lido vai para uma área de preparação: o estoque só se move quando uma pessoa confirma.
  • Um bloqueio por sha256 impede enviar o mesmo arquivo duas vezes. PDFs com camada de texto usam extração de texto em vez de visão.
  • O texto dentro de um arquivo é tratado como dado, não como instrução: é a defesa contra prompt injection.

Avaliação e telemetria

Para o assistente do painel há um dataset de 100 frases com a ferramenta esperada para cada uma, além de checagens determinísticas no CI. Para o WhatsApp há um dataset de 52 cenários e 15 conversas, com categorias como saudação, preço, reserva, ambiguidade, adversarial e prompt injection. Cada cenário declara a rota esperada, os critérios e o comportamento que o agente deve evitar.

Os evals com modelo rodam contra o stack real, com um teto de gasto, e existe um script de juiz às cegas.

A tabela ai_usage_log guarda, por chamada: negócio, agente, usuário, modelo, versão do prompt, tokens de entrada, saída e cache, custo em dólares, latência, intenção, ferramentas usadas e resultado (ok, fallback, encaminhamento, erro, orçamento esgotado, guardrail ou modelo rejeitou). Não guarda texto de clientes. Se o insert falha, o turno é cortado; um teste exige que cada insert declare modelo e versão do prompt, e os prompts são versionados no repositório.

Confiabilidade e segurança

  • Lista de ferramentas permitidas, filtrada por papel.
  • O negócio vem do JWT, nunca do modelo. Os parâmetros proibidos (ids de negócio, tokens, flags de admin) são descartados.
  • O texto de clientes e de arquivos é envolvido como dado.
  • Um detector de entidades inventadas e a proveniência de cada afirmação.
  • O texto de recusa é montado pelo código, não pelo modelo.
  • Limite de taxa na borda e um único controle no banco para o orçamento mensal.
  • RLS do Postgres habilitado em todo o esquema, e RPCs SECURITY DEFINER com search_path fixo.
  • A suíte tem 522 arquivos de teste.

O que está em produção e o que não está

Tudo o que está descrito nesta página está em produção: os três agentes, os evals e a telemetria. O que continua em construção não é do AgendaGo: é o Nux, o assistente do Bonuxo, e a plataforma de agentes de IA para empresas, que está na fase 0, de arquitetura.

Stack

  • React
  • TypeScript
  • Vite
  • Tailwind
  • shadcn/ui
  • Supabase (PostgreSQL, RLS, Edge Functions)
  • OpenAI
  • WhatsApp Cloud API
  • MercadoPago