Athena — AI Agent para TOTVS Protheus
Agente de IA multi-empresa para consulta ao ERP TOTVS Protheus — atende centenas de usuários de RH, logística e financeiro em múltiplas empresas, cada uma com banco de dados e sintaxe SQL diferente.

Athena — AI Agent para TOTVS Protheus
Athena é um agente de IA em produção que responde perguntas de negócio consultando o ERP TOTVS Protheus. Atende centenas de usuários de múltiplas empresas — times de RH, logística, financeiro e operações — cada uma com sua própria instância de banco de dados e sintaxe SQL.
A escala do problema
TOTVS Protheus é um dos ERPs mais complexos do mercado brasileiro. Cada cliente tem centenas de tabelas, joins não-óbvios, campos com nomes codificados e regras de negócio que variam por módulo, por empresa e por configuração de implantação.
O desafio adicional: as empresas atendidas usam bancos diferentes. Algumas rodam Oracle, outras SQL Server, outras PostgreSQL. A mesma pergunta de negócio exige queries sintaticamente diferentes dependendo do cliente.
Fazer um usuário de RH conseguir perguntar "qual a taxa de absenteísmo do mês passado por setor?" e receber uma resposta correta — sem saber nada de SQL, sem saber qual tabela usar, sem conhecer as regras de cálculo do módulo — era o objetivo.
O que não funcionou primeiro
A abordagem inicial foi colocar toda a base de conhecimento no system prompt: queries de referência, regras de negócio, mapeamento de tabelas, diferenças de sintaxe por banco.
Funcionava para perguntas simples. Quebrava para perguntas complexas.
O modelo passava a alucinar de formas sutis — as piores do ponto de vista de produção: não erros óbvios, mas filtros incorretos ou incompletos. Uma query que rodava, retornava resultado, mas trazia dado errado porque faltava um filtro de competência, ou porque usou a tabela de movimentação no lugar da tabela de saldo.
Além disso, prompt gigante significa latência alta e custo alto por query — inviável em produção com centenas de usuários simultâneos.
A solução: RAG com chunking semântico por delimitador
A arquitetura adotada durante a POC usou LangGraph para orquestrar um nó de RAG customizado antes do agente principal.
A base de conhecimento foi estruturada num documento Markdown com mais de 100 blocos por módulo — cada bloco contendo:
- A query de referência para aquele tipo de consulta
- As tabelas envolvidas e seus relacionamentos
- Os filtros obrigatórios e suas regras de negócio
- Variações de sintaxe por banco (Oracle / SQL Server / PostgreSQL)
- Exemplos de perguntas que mapeiam para aquele bloco
A decisão técnica central foi o chunking por delimitador semântico
(#----------#) em vez de tamanho fixo. Chunking por tamanho cortaria
uma query no meio, separaria um filtro da sua regra de negócio,
quebraria o contexto que o agente precisava.
Com delimitador semântico, cada bloco é recuperado inteiro ou não é recuperado. O agente recebe contexto cirúrgico — só o que é relevante para aquela pergunta, no dialeto SQL certo para aquele cliente.