1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados e demais requisitos funcionais para o Agente de IA para Análise de Uso de Vale-Refeição. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA. O objetivo principal é analisar padrões de uso de vale-refeição para oferecer insights sobre hábitos de consumo e otimização de ofertas.
2. Contexto e Problema
Problemas Específicos
Este agente foi projetado para resolver problemas específicos relacionados ao uso de vale-refeição:
- Falta de compreensão dos padrões de uso de vale-refeição pelos usuários.
- Oportunidades perdidas para otimizar ofertas baseadas em dados de consumo.
Regras de Análise
- Analisar dados de uso para identificar tendências e padrões de consumo.
- Fornecer insights acionáveis para otimizar ofertas de vale-refeição.
- Sugerir ajustes nas políticas de vale-refeição com base nos hábitos de consumo identificados.
3. Impactos Esperados
A implementação deste agente visa alcançar os seguintes resultados:
- Melhorar a compreensão dos padrões de uso de vale-refeição entre os usuários.
- Identificar e explorar oportunidades para otimização de ofertas de vale-refeição.
- Fornecer recomendações baseadas em dados para ajustes nas políticas de vale-refeição.
4. Visão Geral da Solução
O agente de IA para análise de uso de vale-refeição processa dados de transações, identifica padrões de consumo e gera insights para otimizar as ofertas de vale-refeição. A seguir são detalhadas todas as regras de negócio e especificações funcionais necessárias para que esse agente atue como um assistente útil e autônomo na análise e recomendação de políticas de vale-refeição.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a preparação e validação dos dados de transações e termina com a geração de recomendações sobre ofertas e ajustes de políticas.
| Agentes | Função Principal |
|---|---|
Agente de Preparação e Validação de Dados de Vale-Refeição (RF 1)
| Validar, padronizar e enriquecer o dataset de transações de vale-refeição. |
Agente de Análise de Padrões de Consumo (RF 2)
| Gerar insights descritivos sobre hábitos de consumo a partir de transações normalizadas. |
Agente de Recomendações de Ofertas e Ajustes de Políticas (RF 3)
| Traduzir os insights de consumo em recomendações acionáveis de ofertas e ajustes de políticas. |
5. Protótipos
Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram tanto o fluxo de trabalho dos agentes quanto o resultado final que o cliente receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Preparação e Validação de Dados de Vale-Refeição
1.1 Tarefa do Agente
Validar, padronizar e enriquecer o dataset de transações de vale-refeição para garantir qualidade mínima antes da análise.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um arquivo CSV ou JSON com transações de vale-refeição. Este arquivo contém, no mínimo, as colunas/campos: usuario (ou usuário), data (YYYY-MM-DD ou DD/MM/YYYY), valor (número com separador decimal), local (nome do estabelecimento). Campos opcionais: hora (HH:MM), cidade, estado, cnpj_estabelecimento, meio_pagamento. # 2. Objetivo Validar, padronizar e enriquecer o dataset de transações de vale-refeição para garantir qualidade mínima antes da análise. # 3. Regras que você deve seguir para gerar sua resposta - Aceitação de cabeçalhos: mapear para nomes canônicos (usuario->user_id; usuário->user_id; data->data; valor->valor; local->local). Rejeitar registros sem user_id, data, valor ou local. - Datas: aceitar formatos YYYY-MM-DD e DD/MM/YYYY; converter para ISO 8601 (timestamp_iso) assumindo timezone 'America/Sao_Paulo' salvo se >70% dos registros tiverem hora fora de 05:00-23:00, caso em que manter timezone_inferida como 'desconhecida'. Marcar data_futura=true para datas > data_atual e excluir do conjunto analisável. - Valores: converter para BRL. Remover símbolos e separadores; usar vírgula como decimal quando presente. Marcar valor_zero_negativo=true para valor<=0; manter no output porém classificar como potencial estorno (estorno=true se valor<0). Considerar outlier_valor=true quando valor_brl<1 ou valor_brl>200 por transação; manter no dataset com flag. - Locais: normalizar local_normalizado aplicando: trim, maiúsculas, remover sufixos empresariais (ME, EPP, LTDA, EIRELI, S/A), remover termos genéricos redundantes (RESTAURANTE, LANCHONETE, PADARIA) se restar apenas o termo genérico; remover múltiplos espaços. - CNPJ: se ausente, manter nulo; se presente, manter apenas dígitos (14 posições) e descartar se tamanho !=14. - Deduplicação: se existir hora, marcar duplicado=true quando houver registros com mesmo user_id, mesma data, mesmo local_normalizado e mesmo valor_brl com diferença de horário <=5 minutos; se hora ausente, duplicado=true apenas quando todos os campos canônicos coincidirem. Não remover, apenas sinalizar. - Cobertura mínima do dataset: calcular periodo_cobertura_dias = (data_max - data_min + 1). Definir dataset_quality_ok=true quando (linhas_validas >= 200) E (periodo_cobertura_dias >= 28). Caso contrário, dataset_quality_ok=false e registrar motivos_quality. - Exclusões do conjunto analisável: linhas com campos obrigatórios ausentes, datas inválidas ou no futuro. Contabilizar em motivos_descarte. - Saída deve preservar ordem cronológica por timestamp_iso dentro de normalized_transactions.
1.3 Configurações do Agente
1.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente é o ponto de partida do fluxo e deve ser acionado pelo envio de um arquivo CSV ou JSON de transações de vale-refeição via API. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: O input inicial para o fluxo é um arquivo de transações de vale-refeição contendo os campos especificados.
-
Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos:
.csv,.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 100.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com transações normalizadas e um relatório de qualidade de dados.
-
Exemplo de Estrutura de Output:
{ "normalized_transactions": [ { "user_id": "123", "timestamp_iso": "2025-12-21T10:39:00-03:00", "valor_brl": 25.50, "local_normalizado": "RESTAURANTE XYZ" } ], "data_quality_report": { "linhas_entrada": 1000, "linhas_validas": 950, "linhas_descartadas": 50, "periodo_cobertura_dias": 30, "dataset_quality_ok": true } } - Número de caracteres esperado: O JSON final deve ter um tamanho estimado em torno de 10.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
1.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Análise de Padrões de Consumo (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Análise de Padrões de Consumo (RF 2).
RF 2. Agente de Análise de Padrões de Consumo
2.1 Tarefa do Agente
Gerar insights descritivos sobre hábitos de consumo a partir de transações normalizadas e validadas.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON resultante do Agente de Preparação contendo transações normalizadas e um relatório de qualidade de dados.
# 2. Objetivo
Gerar insights descritivos sobre hábitos de consumo a partir de transações normalizadas e validadas.
# 3. Regras que você deve seguir para gerar sua resposta
- Pré-condição: executar somente se data_quality_report.dataset_quality_ok=true. Caso contrário, retornar erro lógico: {execucao_bloqueada:true, motivo:'dataset_quality_ok=false'}.
- Ticket médio e mediano: ticket_medio = gasto_total/transacoes_total; ticket_mediano = mediana de valor_brl por transação.
- Consumo por dia da semana: mapear 1=Segunda ... 7=Domingo a partir de timestamp_iso; retornar distribuição percentual e absoluta.
- Consumo por hora: se hora disponível em >=60% dos registros, construir histograma 0-23; caso contrário, retornar consumo_por_hora=null e registrar observacao 'hora_insuficiente'. Picos: top3 por contagem.
- Recorrência: recency por usuário = dias desde a última transação até data_max; churn_usuarios_taxa = % de usuários com recency>30.
- Concentração: top_estabelecimentos por contagem; calcular share em % do total de transações e do valor. top_1_share = maior share_transacoes; top_3_share = soma dos três primeiros.
- Segmentação por frequência mensal normalizada: converter periodo em meses_approx = max(1, periodo_cobertura_dias/30). Frequência mensal do usuário = transacoes_usuario/meses_approx. Regras: alta_frequencia (>=12/mês), media (>=4 e <12), baixa (<4). Reportar critérios no output.
- Categorias inferidas por palavras-chave no local_normalizado: PADARIA->'padaria'; PIZZA|PIZZARIA->'pizzaria'; SUSHI|JAPONES|JAPONÊS->'japonesa'; CHURRAS|GRILL->'churrascaria'; BURGER|HAMBUR->'hamburgueria'; MERCEARIA|MERCADO|SUPERMERCADO->'mercado'; RESTAURANTE|LANCHONETE->'refeicao_geral'. Empate: primeira categoria que casar. Se nenhuma, 'outros'. Reportar regra utilizada em regra_palavra_chave.
- Valores negativos (estorno=true) devem ser excluídos dos cálculos de consumo e contagens, porém reportar sua taxa como observacao separada se >1% das linhas válidas. 2.3 Configurações do Agente
2.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 1).
- Tipo do input: Este agente deve ser apto a receber como input um JSON resultante do Agente de Preparação contendo transações normalizadas e um relatório de qualidade de dados.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 15.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com insights descritivos sobre hábitos de consumo.
-
Exemplo de Estrutura de Output:
{ "metricas_gerais": { "transacoes_total": 1000, "usuarios_unicos": 200, "ticket_medio": 30.50 }, "temporalidade": { "consumo_por_dia_semana": { "segunda": 150, "terca": 140 } } } - Número de caracteres esperado: O JSON final deve ter um tamanho estimado em torno de 5.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
2.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
2.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Recomendações de Ofertas e Ajustes de Políticas (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Recomendações de Ofertas e Ajustes de Políticas (RF 3).
RF 3. Agente de Recomendações de Ofertas e Ajustes de Políticas
3.1 Tarefa do Agente
Traduzir os insights de consumo em recomendações acionáveis de ofertas e ajustes de políticas de vale-refeição.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de insights do Agente de Análise de Padrões de Consumo. # 2. Objetivo Traduzir os insights de consumo em recomendações acionáveis de ofertas e ajustes de políticas de vale-refeição. # 3. Regras que você deve seguir para gerar sua resposta - Pré-condições e encadeamentos: exigir metricas_gerais.transacoes_total>=200 e consumo_por_dia_semana não nulo. Caso contrário, retornar apenas ajuste_politicas de baixo risco (ex.: comunicação) e registrar motivo de limitação. - Ofertas por segmento de frequência: - alta_frequencia: foco em fidelização leve (cashback 2-4%). Evitar descontos >5%. KPI esperado: uplift_transacoes_percent=2-5. - media: estímulo com descontos 5-8% em janelas fora de pico. KPI esperado: 5-10. - baixa: ofertas de aquisição 10-12% em 2 primeiras compras do mês. KPI esperado: 10-20. - Janelas de horário: se picos.horas_top3 concentrados entre 11-14, sugerir ofertas em 10-11 e 14-15 para distribuir demanda. Se pico noturno (18-21), sugerir 16-18. Incluir dias_semana de maior consumo para maximizar elasticidade, exceto se top_1_share>=35%, quando diversificar para dias com menor share. - Direcionamento por categoria: se categoria 'mercado' >20% do share e objetivo é refeição, priorizar ofertas em 'refeicao_geral' para reequilíbrio. Caso 'hamburgueria' tenha ticket_medio >30 e share crescente, limitar desconto máximo a 8% nessa categoria. - Concentração em estabelecimentos: se top_1_share>=35% ou top_3_share>=60%, recomendar diversificação: campanhas com parceiros top_4 a top_10 com cashback 6-8% e comunicação segmentada a usuários que não consomem nesses parceiros há >30 dias. - Políticas de liberação de saldo: se churn_usuarios_taxa>25%, recomendar fracionamento de crédito mensal em 2-3 parcelas (ex.: 50/50 ou 40/30/30) no mês seguinte. Se recency_dias_p80>21, sugerir notificações proativas na 2ª e 4ª semanas. - Limites de transação: se ticket_mediano<20 e outlier_rate>5%, sugerir revisão de limite mínimo de compra comunicada aos usuários e checagem com parceiros para reduzir transações de baixo valor recorrentes. - Expansão de parceiros: selecionar alvos em categorias top com share<15% mas crescimento mês a mês (quando data permite). Na ausência de série mensal, priorizar categorias com ticket_medio abaixo da média (potencial de frequência maior). Justificar sempre citando métricas concretas do input.
3.3 Configurações do Agente
3.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 2).
- Tipo do input: Este agente deve ser apto a receber como input um JSON de insights do Agente de Análise de Padrões de Consumo.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 10.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON com recomendações de ofertas e ajustes de políticas de vale-refeição.
-
Exemplo de Estrutura de Output:
{ "ofertas_segmentadas": [ { "publico_alvo": "alta_frequencia", "criterio": "fidelizacao", "mecanismo": "cashback", "parametros": { "cashback_percentual": 3 } } ], "ajuste_politicas": [ { "tema": "liberacao_saldo", "proposta": "fracionamento", "impacto_esperado": "reduzir churn" } ] } - Número de caracteres esperado: O JSON final deve ter um tamanho estimado em torno de 7.500 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
3.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente é o entregável final e não é passada para outros agentes internos.
3.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. As recomendações geradas são o resultado que deve ser disponibilizado ao usuário.