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 "Previsão de Uso de Benefícios", uma solução projetada para prever o uso de benefícios com base em dados históricos e auxiliar na alocação eficiente de recursos. 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 é utilizar dados históricos para prever o uso de benefícios, auxiliar na alocação eficiente de recursos e fornecer insights para otimização dos recursos disponíveis.
2. Contexto e Problema
Problemas Específicos
A previsão de uso de benefícios é complexa e sujeita a erros sem ferramentas adequadas. A alocação ineficiente de recursos pode levar a desperdícios, e os dados históricos de uso de benefícios são frequentemente subutilizados.
- Previsão de uso de benefícios é complexa e sujeita a erros sem ferramentas adequadas.
- Alocação ineficiente de recursos pode levar a desperdícios.
- Dados históricos de uso de benefícios são subutilizados.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a precisão das previsões de uso de benefícios.
- Otimizar a alocação de recursos com base nas previsões geradas.
- Aumentar a eficiência no uso de recursos disponíveis.
4. Visão Geral da Solução
O agente de IA para previsão de uso de benefícios processa dados históricos, aplica técnicas de análise preditiva e gera recomendações para otimização de recursos. 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 previsão de uso de benefícios e alocação de recursos.
A solução consiste em um fluxo de automação composto por 2 agentes de IA. O processo inicia com a preparação e normalização dos dados de benefícios e termina com a geração de previsões e recomendações de alocação de recursos.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Preparação e Normalização de Dados de Benefícios (RF 1)
| Validar, limpar e padronizar os dados históricos de uso de benefícios. |
Agente de Previsão de Uso e Recomendação de Alocação de Recursos (RF 2)
| Gerar previsões de uso de benefícios e produzir recomendações de alocação de recursos. |
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 Normalização de Dados de Benefícios
1.1 Tarefa do Agente
Validar, limpar e padronizar os dados históricos de uso de benefícios recebidos, estruturando um dataset consistente para análise e previsão.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados históricos de uso de benefícios em formato CSV ou JSON. Esses dados contêm registros de uso de benefícios ao longo do tempo.
# 2. Objetivo
Validar, limpar e padronizar os dados históricos de uso de benefícios, estruturando um dataset consistente para análise e previsão.
# 3. Regras que você deve seguir para gerar sua resposta
- Detecte o delimitador do CSV (',' ';' ou tab) e cabeçalho; se JSON, valide presença de chaves mínimas: beneficio_id, data, quantidade_uso.
- Padronize datas para ISO (YYYY-MM-DD). Se vier apenas ano-mês, defina dia como '01' e marque granularidade como 'mes'.
- Determine a granularidade dominante pela moda entre 'dia', 'semana', 'mes', 'trimestre'. Se heterogênea, converta tudo para a granularidade mais agregada presente entre os registros, preservando soma de quantidade_uso e média de custo_unitario quando houver.
- Normalize identificadores: trim em strings; upper/lowercase consistente em beneficio_id; se beneficio_nome faltar mas houver beneficio_id, mantenha nome como null.
- Trate valores inválidos: converta quantidade_uso negativa para null e registre em erros com id do registro; remova registros com data futura além de hoje + 1 período da granularidade.
- Outliers óbvios: se quantidade_uso > p99.5 do benefício na série, marque alerta 'possivel_outlier' no registro; não exclua, apenas sinalize.
- Preencha ausências de períodos: gere períodos faltantes por benefício com quantidade_uso = 0 quando granularidade for mês ou semana e houver hiatos internos entre periodo_inicial e periodo_final; não extrapole antes do primeiro nem após o último ponto observado.
- Consolidar duplicidades: se houver múltiplos registros do mesmo benefício no mesmo período, agregue quantidade_uso por soma; capacidade_disponivel por média; beneficiarios_ativos por média.
- Calcule meta.cobertura_percentual = (n_periodos_com_dado / n_periodos_esperados) por benefício e como média global; inclua alerta se cobertura < 70%.
- Saída deve ser determinística: ordene dataset_normalizado por beneficio_id, depois por periodo crescente; inclua arrays erros/alertas com códigos: {codigo, mensagem, beneficio_id, periodo}. 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 dados históricos de uso de benefícios 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 de um arquivo CSV ou JSON 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 registros de uso de benefícios.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados 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 estruturado com o dataset normalizado e informações de validação.
-
Exemplo de Estrutura de Output:
{ "status_validacao": "ok", "erros": [], "alertas": [], "dataset_normalizado": [ {"beneficio_id": "b001", "beneficio_nome": "Benefício A", "periodo": "2025-01", "granularidade": "mes", "unidade": "uso", "quantidade_uso": 150, "beneficiarios_ativos": null, "capacidade_disponivel": null, "custo_unitario": null} ], "meta": { "periodo_inicial": "2025-01", "periodo_final": "2025-12", "granularidade_dominante": "mes", "cobertura_percentual": 100.0, "timezone_aplicada": "America/Sao_Paulo" } } - Número de caracteres esperado: O JSON final deve ter um tamanho estimado em torno de 5.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 Previsão de Uso e Recomendação de Alocação de Recursos (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Previsão de Uso e Recomendação de Alocação de Recursos (RF 2).
RF 2. Agente de Previsão de Uso e Recomendação de Alocação de Recursos
2.1 Tarefa do Agente
Gerar previsões de uso de benefícios com base no histórico normalizado e produzir recomendações práticas de alocação de recursos e insights acionáveis.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um dataset normalizado de uso de benefícios e metadados associados. Esses dados foram previamente validados e estruturados. # 2. Objetivo Gerar previsões de uso de benefícios com base no histórico normalizado e produzir recomendações práticas de alocação de recursos e insights acionáveis. # 3. Regras que você deve seguir para gerar sua resposta - Utilize apenas o dataset_normalizado recebido; não reabrir CSVs nem fontes externas. - Defina a granularidade final pela entrada: granularidade_forcada, se informada; caso contrário use meta.granularidade_dominante. - Horizonte padrão: 3 períodos à frente; se histórico < 6 períodos úteis por benefício, limite o horizonte a 1 e adicione insight 'amostra_insuficiente'. - Tendência: calcule variação média recente usando os últimos min(6, 50%) períodos do benefício; projete crescimento/queda aplicando a taxa média aos próximos períodos. Se a taxa for instável (desvio padrão > 1.5x média absoluta), reduza-a pela metade e registre insight 'tendencia_instavel'. - Sazonalidade: se granularidade for mês ou semana e houver pelo menos 2 ciclos completos (24 meses ou 104 semanas não são exigidos; aceite 12 meses ou 52 semanas), estime um índice sazonal por posição no ciclo comparando com a média móvel; aplique o índice aos períodos futuros correspondentes; se não houver ciclos completos, não aplique e registre 'sazonalidade_nao_confiavel'. - Intervalos: calcule intervalo_baixo e intervalo_alto como uso_previsto ± max(10%, desvio_relativo_medio) do benefício; nunca negativos; arredonde para 2 casas decimais. - Capacidade: se existir capacidade_disponivel histórica, estime capacidade de referência como a média dos últimos 3 períodos válidos. Politicas: - 'manter': capacidade_recomendada = capacidade_referencia. - 'ajustar': capacidade_recomendada = min(max(uso_previsto, 0), uso_previsto * 1.1) para acomodar pico moderado; ajuste_percentual = (capacidade_recomendada/capacidade_referencia - 1) quando referência existir; se não existir, deixe null e crie insight 'capacidade_sem_referencia'. - 'ignorar': não calcule capacidade, deixe campos como null. - Custo: se custo_unitario existir para o benefício, custo_estimado_periodo = uso_previsto * custo_unitario_medio_ultimos_3; se limite_orcamentario_total for informado, calcule soma dos custos e gere insight 'estouro_orcamentario' quando exceder; sugira redução proporcional nos benefícios com menor prioridade. - Priorização: prioridade 5 para benefícios com pesos_criticidade >=4 ou crescimento previsto > 15% e cobertura de dados >= 80%; prioridade 1 para cobertura < 50% ou queda > 20% com baixa criticidade (<3). Intermediários recebem prioridade 2–4 conforme combinação de crescimento e criticidade. - Qualidade de dados: reporte cobertura_percentual_global da meta; liste beneficios_com_outliers se >1% dos registros marcados com 'possivel_outlier'; liste beneficios_com_baixa_amostra quando n_periodos_validos < 6. - Insights obrigatórios possíveis: ['amostra_insuficiente', 'tendencia_instavel', 'sazonalidade_nao_confiavel', 'capacidade_sem_referencia', 'estouro_orcamentario', 'cobertura_baixa'] com mensagens claras e contexto (benefício e período quando aplicável). - Determinismo: ordene previsoes e plano_alocacao por beneficio_id e periodo crescente; não gere texto livre extenso fora do campo insights; todas as quantias numéricas com 2 casas decimais.
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 um JSON estruturado contendo o dataset normalizado e informações de metadados.
-
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 JSON contendo previsões de uso de benefícios e recomendações de alocação de recursos.
-
Exemplo de Estrutura de Output:
{ "previsoes": [ {"beneficio_id": "b001", "periodo": "2025-02", "granularidade": "mes", "uso_previsto": 160.00, "intervalo_baixo": 144.00, "intervalo_alto": 176.00} ], "plano_alocacao": [ {"beneficio_id": "b001", "periodo": "2025-02", "capacidade_recomendada": 160.00, "ajuste_percentual": 0.00, "custo_estimado_periodo": 3200.00, "prioridade": 5} ], "insights": [ {"tipo": "amostra_insuficiente", "mensagem": "Amostra histórica insuficiente para previsões confiáveis.", "beneficio_id": "b002", "periodo": null} ], "premissas": ["Horizonte de previsão: 3 períodos", "Granularidade: mês"], "qualidade_dados": {"cobertura_percentual_global": 85.0, "beneficios_com_outliers": ["b003"], "beneficios_com_baixa_amostra": ["b002"]} } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 8.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 (JSON com previsões e recomendações) é o entregável final e não é passada para outros agentes internos.
2.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. O JSON gerado com previsões e recomendações é o resultado que deve ser disponibilizado ao usuário.