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 Fluxo de Agentes "Análise de Dados de Uso de Benefícios", uma solução projetada para identificar padrões de uso de benefícios e propor ajustes em pacotes oferecidos com base no comportamento dos usuários. 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 é transformar dados brutos de uso de benefícios em insights acionáveis e propostas de ajustes que sejam baseadas em análises robustas, garantindo que as decisões empresariais sejam informadas por dados reais e precisos.
2. Contexto e Problema
Cenário Atual
As empresas que oferecem pacotes de benefícios enfrentam desafios significativos em analisar grandes volumes de dados de uso para identificar padrões e tendências. Isso pode resultar em ofertas desatualizadas ou ineficazes. Os problemas específicos incluem:
- Dificuldade em identificar padrões de uso de benefícios que podem indicar a necessidade de ajustes.
- Falta de insights acionáveis a partir dos dados de uso coletados.
Atualmente, a análise desses dados é feita de forma manual e reativa, muitas vezes sem o suporte de ferramentas analíticas avançadas, o que resulta em decisões baseadas em suposições ao invés de evidências.
Problemas Identificados
- Subutilização de dados: Dados de uso coletados não são plenamente explorados para insights significativos.
- Decisões baseadas em suposições: Ajustes nos pacotes são frequentemente feitos sem uma análise robusta.
- Falta de personalização: Pacotes de benefícios não são adaptados às necessidades e comportamentos específicos dos usuários.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a precisão na identificação de padrões e tendências de uso de benefícios.
- Fornecer insights acionáveis que informem ajustes estratégicos nos pacotes de benefícios.
- Aumentar a satisfação dos usuários ao alinhar os pacotes de benefícios com suas necessidades reais.
- Reduzir custos operacionais ao otimizar a oferta de benefícios com base em dados precisos.
4. Visão Geral da Solução
O agente de IA para análise de dados de uso de benefícios processa dados brutos de uso, identifica padrões significativos e propõe ajustes em pacotes de benefícios com base em análises robustas. 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 otimização de pacotes de benefícios oferecidos.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a preparação dos dados brutos e termina com a geração de propostas de ajustes nos pacotes de benefícios.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Qualidade e Preparação de Dados de Uso de Benefícios (RF 1)
| Validar e normalizar dados brutos de uso de benefícios. |
Agente de Análise de Padrões e Tendências de Uso (RF 2)
| Identificar padrões de uso e tendências temporais. |
Agente de Proposição de Ajustes em Pacotes de Benefícios (RF 3)
| Propor ajustes em pacotes de benefícios com base em insights analíticos. |
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 Qualidade e Preparação de Dados de Uso de Benefícios
1.1 Tarefa do Agente
Receber dados brutos de uso de benefícios, validar e padronizar o schema, tratar inconsistências e gerar um dataset normalizado e pronto para 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 eventos de uso de benefícios. Campos mínimos esperados por registro: user_id, benefit_id, benefit_name, event_type (ex.: uso, resgate, acesso), event_timestamp (ISO 8601), quantity (numérico, opcional), monetary_value (numérico, opcional), plan_id (opcional), eligibility_flag (opcional), user_age (opcional), user_gender (opcional), user_region (opcional), satisfaction_score (opcional), is_test_user (opcional). Parâmetros opcionais: business_calendar (feriados), lista_beneficios_mandatorios, budget_cap_por_usuario. # 2. Objetivo Validar e padronizar os dados de uso de benefícios, garantindo que o dataset esteja livre de inconsistências e pronto para análise. # 3. Regras que você deve seguir para gerar sua resposta - Validar presença dos campos mínimos: user_id, benefit_id, benefit_name, event_type, event_timestamp. Se qualquer um faltar em >5% dos registros, marcar flags_de_qualidade.missing_key_fields = true. - Validar e normalizar event_timestamp para ISO 8601; descartar registros com data inválida ou futura > 24h do 'agora'. Registrar contagem em data_profile.timestamps_invalidos. - Remover registros de teste quando is_test_user = true ou quando user_id em padrões conhecidos (ex.: 'test', 'dummy', 'qa'). Registrar quantidade removida. - Deduplicar eventos idênticos (mesmo user_id, benefit_id, event_type, event_timestamp, quantity, monetary_value). Critério: manter o primeiro. - Preencher quantity padrão = 1 quando ausente e event_type implicar uso unitário. Não inferir monetary_value; quando ausente, manter nulo. - Padronizar benefit_name (trim, lower_snake_case) e manter benefit_id como chave primária para agregações. - Criar dimensões derivadas: event_date (YYYY-MM-DD), iso_week (YYYY-Www), month (YYYY-MM), weekday (1-7), is_business_day conforme business_calendar quando fornecido. - Gerar faixa etária: user_age_band em [<18, 18-24, 25-34, 35-44, 45-54, 55-64, 65+], quando user_age disponível. - Marcar elegibilidade: eligible = eligibility_flag quando fornecido; quando ausente, considerar elegível por padrão sem inferência. - Aplicar regras de exclusão: descartar registros com quantity <= 0 ou monetary_value < 0. Registrar contagens em data_profile.exclusoes. - Construir data_profile: total_registros_entrada, total_registros_validos, %por_campo_preenchido, duplicatas_removidas, invalidos_descartados, usuarios_teste_excluidos, periodo_coberto (min/max event_date), numero_usuarios_unicos, numero_beneficios_unicos. - Definir flags_de_qualidade.low_sample = true quando numero_registros_validos < 500 ou numero_usuarios_unicos < 100 no período completo. - Garantir saída consistente: dataset_normalizado deve conter somente campos padronizados e dimensões derivadas descritas; quaisquer campos extras entram em data_profile.campos_desconhecidos.
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 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 CSV ou JSON contendo eventos de uso de benefícios.
-
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 objeto JSON contendo: dataset_normalizado (lista de eventos padronizados); data_profile (resumo de qualidade com contagens, cobertura por campo, duplicatas removidas, regras de exclusão aplicadas); derived_dimensions (datas, semana ISO, mês, faixas etárias); flags_de_qualidade (low_sample, missing_key_fields, timestamps_invalidos, users_teste_excluidos).
-
Exemplo de Estrutura de Output:
{ "dataset_normalizado": [...], "data_profile": { "total_registros_entrada": 10000, "total_registros_validos": 9500, "%por_campo_preenchido": {...}, "duplicatas_removidas": 100, "invalidos_descartados": 50, "usuarios_teste_excluidos": 350, "periodo_coberto": { "min": "2025-01-01", "max": "2025-12-01" }, "numero_usuarios_unicos": 3000, "numero_beneficios_unicos": 20 }, "derived_dimensions": { "event_date": [...], "iso_week": [...], "month": [...], "weekday": [...], "user_age_band": [...] }, "flags_de_qualidade": { "low_sample": false, "missing_key_fields": false, "timestamps_invalidos": 0, "users_teste_excluidos": 350 } } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 10.000 caracteres, variando conforme a quantidade de dados processados.
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: Utiliza lógica interna para cálculos de normalização e validação.
- 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 e Tendências de Uso (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 e Tendências de Uso (RF 2).
RF 2. Agente de Análise de Padrões e Tendências de Uso
2.1 Tarefa do Agente
Identificar padrões de uso, tendências temporais, sazonalidade, anomalias, segmentações relevantes e potenciais relações entre benefícios com base no dataset normalizado.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um dataset normalizado, data_profile, derived_dimensions, flags_de_qualidade produzidos pelo Agente de Qualidade e Preparação de Dados. # 2. Objetivo Analisar o dataset para identificar padrões e tendências de uso de benefícios, gerando insights acionáveis para o negócio. # 3. Regras que você deve seguir para gerar sua resposta - Definir janelas: janela_atual = últimos 30 dias do máximo event_date; janela_anterior = 30 dias imediatamente anteriores. Se período < 60 dias, reduzir ambas as janelas pela metade disponível e marcar limitação_periodo = true. - Calcular por benefit_id: uso_total (contagem de eventos), usuarios_ativos (contagem de user_id únicos), freq_media_por_usuario = uso_total/usuarios_ativos. - Calcular utilizacao_rate: quando elegibilidade disponível, usuarios_ativos/usuarios_elegiveis_no_periodo; quando não houver, usar proxy utilizacao_proxy = usuarios_ativos/usuarios_totais_observados. - Classificar tendência por benefício: variacao_30d = (métrica janela_atual - janela_anterior) / max(1, janela_anterior). Usar como métrica principal usuarios_ativos; critérios: alta >= +15% com usuarios_ativos_janela_atual >= 100; queda <= -15% com usuarios_ativos_janela_anterior >= 100; caso contrário, estável. - Detectar anomalias diárias: marcar anomalia quando uso_diario desviar > 3 desvios-padrão da média dos últimos 14 dias ou variar > 50% vs média móvel de 7 dias. Registrar data, direção e magnitude. - Sazonalidade: quando há >= 6 meses de dados, calcular índice mensal = uso_mensal / média_mensal_global. Sazonal se amplitude (máx - mín) do índice >= 30%. - Segmentação: reportar, para cada benefício, segmentos com diferença absoluta de utilizacao_rate >= 10 p.p. vs média do benefício (por plan_id, user_age_band, user_region). - Underused: marcar benefícios no quartil inferior (P25) de utilizacao_rate e tendência != alta; Overused: quartil superior (P75) de utilizacao_rate ou crescimento com variacao_30d >= 30%. - Cannibalização potencial: para pares (A,B), se a probabilidade de uso de B entre usuários que usaram A na janela for >= 20% menor que a probabilidade de uso de B entre quem não usou A, e ambos tiverem amostra >= 300 usuários, registrar par com intensidade. - Risco de custo: quando monetary_value disponível, calcular custo_por_usuario_ativo = soma(monetary_value)/usuarios_ativos por período; marcar risco quando custo_por_usuario_ativo crescer > 20% MoM por dois meses consecutivos ou quando overused com custo alto (top 10%). - Gerar insights explicativos com referência explícita a números (percentuais, contagens, datas) e incluir limitações quando flags_de_qualidade.low_sample = true ou limitação_periodo = true.
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 bem-sucedida do agente anterior (RF 1).
- Tipo do input: Este agente deve ser apto a receber como input um objeto JSON contendo dataset_normalizado, data_profile, derived_dimensions e flags_de_qualidade.
-
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.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON insights_uso contendo: métricas_por_beneficio (uso_total, usuarios_ativos, utilizacao_rate, frequência média por usuário), tendências (variação % últimos 30 dias vs. 30 dias anteriores, classificação: alta, queda, estável), sazonalidade (índices mensais/semanais quando houver >= 6 meses de dados), anomalias_detectadas (datas, desvio), segmentacao_relevante (por plan_id, user_age_band, user_region), underused/overused lists, matriz_cannibalizacao (pares com relação negativa), riscos_custo (benefícios com uso/custo acelerando).
-
Exemplo de Estrutura de Output:
{ "insights_uso": { "métricas_por_beneficio": [ { "benefit_id": "001", "uso_total": 1500, "usuarios_ativos": 300, "utilizacao_rate": 0.5, "frequência_media_por_usuario": 5 } ], "tendências": { "variação_30d": "alta", "classificação": "estável" }, "sazonalidade": "não detectada", "anomalias_detectadas": [], "segmentacao_relevante": [], "underused": [], "overused": [], "matriz_cannibalizacao": [], "riscos_custo": [] } } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.000 caracteres, variando conforme a complexidade dos dados analisados.
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: Utiliza lógica interna para cálculos de métricas e tendências.
- 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 Proposição de Ajustes em Pacotes de Benefícios (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Proposição de Ajustes em Pacotes de Benefícios (RF 3).
RF 3. Agente de Proposição de Ajustes em Pacotes de Benefícios
3.1 Tarefa do Agente
Transformar os insights analíticos em propostas objetivas de ajustes nos pacotes de benefícios, com justificativas baseadas em dados e estimativa de impacto.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo insights_uso do agente anterior e, quando fornecido, restrições de negócio: lista_beneficios_mandatorios, budget_cap_por_usuario, objetivos_estrategicos (ex.: aumentar retenção em segmento X, reduzir custo Y). # 2. Objetivo Transformar os insights em propostas de ajustes nos pacotes de benefícios, garantindo que as propostas sejam baseadas em dados robustos e alinhadas com as restrições de negócio. # 3. Regras que você deve seguir para gerar sua resposta - Respeitar restrições: nunca propor remover ou rebaixar itens presentes em lista_beneficios_mandatorios; quando budget_cap_por_usuario existir, somente aceitar propostas cujo impacto estimado não exceda o teto por usuário. - Remoção/downgrade: propor quando (a) underused = true, (b) tendência != alta nos últimos 60 dias e (c) não houver objetivo_estrategico contrário. Justificativa deve citar utilizacao_rate, variacao_30d e amostra. - Incentivo (comunicação/cashback/gamificação): propor quando utilizacao_rate entre P25 e P50 ou quando houver segmentos com potencial (segmentos com diferença negativa <= -10 p.p.). Incluir target_segments e mensagem foco. - Reempacotar/“escolha-um”: propor quando houver cannibalização potencial entre A e B. Sugerir bundle com preço/limite compartilhado ou plano com opção única para reduzir sobreposição. - Ajuste de preço/coparticipação: quando custo_por_usuario_ativo está no top 10% e overused = true, propor coparticipação leve (ex.: pequena franquia) ou faixa de preço diferenciada por segmento de alto uso; quando monetary_value ausente, propor teste controlado (piloto) antes de rollout. - Ajuste de limite/uso: para benefícios com anomalias recorrentes de alta e crescimento > 30% 30d, propor limites de uso mensais ou janela de carência entre usos, com base no percentil 90 da frequência atual. - Segmentação de oferta: se um benefício performa muito bem em um segmento e mal em outro (diferença >= 15 p.p.), propor planos/tiers distintos onde o benefício é incluído somente para o segmento responsivo. - Manter e monitorar: para benefícios estáveis e com boa utilização sem risco de custo, propor manutenção com KPIs de monitoramento e gatilhos (ex.: reavaliar se variacao_30d < -15%). - Estimativa de impacto: derivar do baseline dos últimos 30 dias. Para incentivos, estimar +5% a +15% em usuarios_ativos no segmento alvo; para limites/preço, estimar -10% a -25% em custo_por_usuario_ativo; documentar supostos intervalos e condições. - Todas as propostas devem citar explicitamente as métricas que as sustentam (ex.: 'utilização 12%, P25=14%, variação -18%'), indicar se há limitações de amostra e propor próximo passo (piloto, A/B por 30 dias) quando incerteza for alta.
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 objeto JSON contendo insights_uso e, opcionalmente, restrições de negócio.
-
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é 5.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um objeto JSON propostas_ajustes com uma lista de recomendações. Cada item deve conter: benefit_id(s), action_type (manter, remover, incentivar, reempacotar, ajustar_preco, ajustar_limite, segmentar_oferta), target_segments (quando aplicável), justificativa_dados (números específicos dos insights), impacto_esperado (delta estimado em utilizacao_rate, custo_por_usuario_ativo ou usuários_ativos), riscos_e_mitigacoes, dependencias (ex.: comunicação, mudança contratual). Incluir também um resumo_em_markdown consolidando as recomendações.
-
Exemplo de Estrutura de Output:
{ "propostas_ajustes": [ { "benefit_id": "001", "action_type": "incentivar", "target_segments": ["18-24", "25-34"], "justificativa_dados": "utilização 12%, P25=14%, variação -18%", "impacto_esperado": "+10% em usuários ativos", "riscos_e_mitigacoes": "Comunicação clara para evitar frustração", "dependencias": "Aprovação da equipe de marketing" } ], "resumo_em_markdown": "**Propostas de Ajustes:**\n- Incentivar o uso do benefício 001 para jovens de 18 a 34 anos.\n- Justificativa: utilização 12%, queda recente de 18%.\n- Impacto esperado: +10% em usuários ativos." } - Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 4.000 caracteres, variando conforme o número de propostas geradas.
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: Utiliza lógica interna para cálculos de impacto e justificativas.
- 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 é 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. O JSON gerado é o resultado que deve ser disponibilizado ao usuário.