Agente de IA para Geração de Relatórios de Frequência

03 de December de 2025 • Tempo de leitura: 5 min

Como criar um agente de IA que gera relatórios de frequência escolar de alunos para consulta por parte dos pais e responsáveis.

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 "Geração de Relatórios de Frequência", uma solução de automação projetada para gerar relatórios de frequência escolar de alunos de forma precisa e acessível para consulta por pais e responsáveis. 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 é automatizar a geração de relatórios de frequência escolar, facilitando o acesso dos pais a essas informações através de uma plataforma segura e acessível.

2. Contexto e Problema

Cenário Atual

Atualmente, as escolas enfrentam desafios na geração de relatórios de frequência escolar que sejam precisos e atualizados. Os pais muitas vezes têm dificuldade em acessar informações sobre a frequência escolar de seus filhos de maneira conveniente e segura.


Problemas Identificados

  • Necessidade de relatórios precisos: As escolas precisam garantir que os relatórios de frequência sejam gerados de forma precisa e atualizada.
  • Dificuldade de acesso: Os pais enfrentam dificuldades para acessar informações sobre a frequência escolar de seus filhos de forma conveniente e segura.

3. Impactos Esperados

A implementação deste fluxo de automação visa alcançar os seguintes resultados:

  • Automatizar a geração de relatórios de frequência de forma precisa e atualizada.
  • Facilitar o acesso dos pais às informações de frequência escolar de seus filhos.
  • Garantir a segurança e acessibilidade dos dados de frequência escolar.

4. Visão Geral da Solução

O agente de IA para geração de relatórios de frequência escolar processa dados de frequência, aplica regras de validação e normalização, e gera relatórios acessíveis para os pais. 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 geração de relatórios de frequência escolar.

A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a ingestão e normalização dos dados de frequência e termina com o envio dos relatórios finais para a plataforma dos responsáveis.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.

Agentes Função Principal
Agente de Ingestão, Validação e Normalização de Dados de Frequência (RF 1) Receber, validar e normalizar dados de frequência escolar.
Agente de Consolidação e Cálculo de Indicadores de Frequência (RF 2) Consolidar dados normalizados e calcular indicadores de frequência.
Agente de Geração de Relatórios de Frequência para Pais e Responsáveis (RF 3) Gerar relatórios detalhados de frequência para cada aluno.
Agente de Execução de Chamada à API (RF 4) Enviar os relatórios finais para a plataforma dos responsáveis.

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 os pais receberão. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Ingestão, Validação e Normalização de Dados de Frequência

1.1 Tarefa do Agente

Receber arquivos de frequência, validar a estrutura e conteúdo, normalizar formatos e produzir um dataset padronizado e confiável para cálculo de indicadores.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo arquivos de frequência escolar em formatos CSV/JSON/Planilha. Esses arquivos contêm registros de presença dos alunos por turma e período.

# 2. Objetivo
Validar a estrutura e conteúdo dos arquivos de frequência, normalizar os formatos e produzir um dataset padronizado e confiável para cálculo de indicadores.

# 3. Regras que você deve seguir para gerar sua resposta
- Validação de esquema: rejeitar como bloqueante se faltar qualquer um dos campos mínimos (aluno_id, nome_aluno, turma_id, data, status_presenca).
- Datas: converter para ISO-8601 (AAAA-MM-DD); considerar inválido qualquer registro fora do período [data_inicio, data_fim] (marcar como erro_bloqueante).
- Calendário: ignorar (não contar) dias não letivos (finais de semana e feriados oficiais recebidos no calendário); se calendário não for fornecido, assumir sábados e domingos como não letivos.
- Status: normalizar códigos aceitos: {P|Presente}, {F|Falta}, {J|Falta Justificada}, {A|Atraso}; qualquer outro valor deve ser mapeado para 'desconhecido' e listado em avisos_nao_bloqueantes com contagem por turma.
- Duplicidade: para a mesma combinação (aluno_id, data), manter 1 registro; se houver múltiplos, priorizar o mais recente pelo campo de atualização se existir; caso contrário, aplicar prioridade por status na ordem P > J > F > A e registrar ocorrência em avisos_nao_bloqueantes.
- Horas parciais: se hora_entrada e hora_saida existirem, marcar campo presenca_parcial=true quando a permanência for menor que 50% da carga diária informada (se informada via parâmetro); caso carga não exista, não calcular parcial.
- Consistência de aluno: se nome_aluno divergente para o mesmo aluno_id, padronizar pelo nome mais frequente no período e listar a divergência em avisos_nao_bloqueantes.
- Sanitização: remover espaços excedentes, normalizar acentuação em nomes e aceitar somente UTF-8.
- Saída determinística: ordenar dataset_normalizado por turma_id, nome_aluno, data. 
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 arquivos de frequência escolar 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 frequência escolar, que é processado para gerar um dataset padronizado.
  • Formatos Suportados: Esse agente deve ser capaz de receber arquivos nos formatos: .csv, .json, .xlsx.
  • 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 o dataset normalizado, erros e avisos de validação.
  • Exemplo de Estrutura de Output:
     {
      "dataset_normalizado": [
        {"aluno_id": "001", "nome_aluno": "João Silva", "turma_id": "3A", "data": "2025-11-01", "status_presenca": "P"}
      ],
      "schema_valid": true,
      "erros_bloqueantes": [],
      "avisos_nao_bloqueantes": [
        {"tipo": "status_desconhecido", "detalhe": "3 ocorrências", "turma_id": "3A"}
      ],
      "totais_processados": {"turma_3A": 30}
    } 
  • Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 5.000 caracteres.

1.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.5

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

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Consolidação e Cálculo de Indicadores de Frequência (RF 2).

RF 2. Agente de Consolidação e Cálculo de Indicadores de Frequência

2.1 Tarefa do Agente

Consolidar o dataset normalizado por aluno/turma/período e calcular indicadores-chave de presença, ausência e alertas.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON contendo o dataset normalizado de frequência escolar.

# 2. Objetivo
Consolidar o dataset por aluno/turma/período e calcular indicadores-chave de presença, ausência e alertas.

# 3. Regras que você deve seguir para gerar sua resposta
- Dias letivos: total_dias_letivos é o número de dias no período que não são fins de semana nem feriados.
- Cômputo: presencas = contagem de status P; faltas = contagem de status F; faltas_justificadas = contagem de status J; atrasos = contagem de status A.
- Parcial: se consideração_de_parcial=true e presenca_parcial=true, contar como 0,5 presença (arredondamento no fim: duas parciais = 1 presença). Se parâmetro ausente, ignorar parciais no cômputo.
- Frequência: frequencia_percentual = presencas_ponderadas / total_dias_letivos * 100, com 2 casas decimais; se total_dias_letivos=0, definir frequencia_percentual=null e motivo em motivos_alerta.
- Justificativas: faltas justificadas não viram presença; manter métrica separada e incluí-las em motivos_alerta apenas informativamente.
- Alertas: alerta_baixa_frequencia=true quando frequencia_percentual < limiar_alerta_frequencia (padrão 75% se não informado); motivos_alerta deve listar: 'frequencia_abaixo_do_limiar', 'dias_sem_dado', 'total_dias_letivos_zero' quando aplicável.
- Datas sem dado: identificar dias letivos no período sem registro para o aluno e listar em datas_sem_dado; não contam como presença nem ausência se não houver política explícita.
- Determinismo: ordenar indicadores_por_aluno por turma_id e nome_aluno; incluir timestamp_processamento no output. 
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 contendo o dataset normalizado de frequência escolar.
  • 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é 50.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON com indicadores de frequência por aluno e turma.
  • Exemplo de Estrutura de Output:
     {
      "indicadores_por_aluno": [
        {"aluno_id": "001", "nome_aluno": "João Silva", "turma_id": "3A", "frequencia_percentual": 92.5, "alerta_baixa_frequencia": false}
      ],
      "indicadores_por_turma": [
        {"turma_id": "3A", "media_frequencia": 90.0}
      ],
      "datas_sem_dado": ["2025-11-01"],
      "parametros_utilizados": {"limiar_alerta_frequencia": 75}
    } 
  • Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 3.000 caracteres.

2.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.5

2.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Utiliza lógica interna para cálculo de indicadores.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

2.3.5 Memória

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Geração de Relatórios de Frequência para Pais e Responsáveis (RF 3).

RF 3. Agente de Geração de Relatórios de Frequência para Pais e Responsáveis

3.1 Tarefa do Agente

Produzir relatórios claros e acessíveis para cada aluno, com linguagem simples, resumos, detalhes por dia e orientações quando há alertas.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON com indicadores de frequência por aluno e turma.

# 2. Objetivo
Produzir relatórios claros e acessíveis para cada aluno, com linguagem simples e orientações quando há alertas.

# 3. Regras que você deve seguir para gerar sua resposta
- Foco individual: cada relatório deve conter apenas dados do aluno correspondente; nunca incluir dados de outros alunos da turma.
- Linguagem: títulos e textos em pt-BR, diretos e sem jargões; quando frequencia_percentual for null, explicar o motivo de forma clara.
- Ícones/cores (quando HTML/Markdown): P=verde, F=vermelho, J=amarelo, A=azul; manter legenda.
- Privacidade: omitir justificativas médicas detalhadas; quando mostrar_justificativas=true, exibir apenas rótulos genéricos ('atestado entregue', 'compromisso familiar'), sem dados sensíveis.
- Datas: exibir no formato DD/MM/AAAA; período no cabeçalho como 'DD/MM/AAAA a DD/MM/AAAA'.
- Determinismo: ordenar dias crescentemente; limitar resumo a métricas principais; incluir nota metodológica explicando como a frequência é calculada.
- Acessibilidade: garantir que o relatório possa ser lido em dispositivos móveis (linhas curtas, seções curtas) e incluir alternativa em texto puro no json_compacto. 
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 com indicadores de frequência por aluno e turma.
  • 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é 20.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um relatório formatado em Markdown/HTML para cada aluno.
  • Exemplo de Estrutura de Output:
     {
      "cabecalho": {"nome_aluno": "João Silva", "turma": "3A", "periodo": "01/11/2025 a 30/11/2025", "frequencia_percentual": 92.5},
      "resumo": {"presencas": 18, "faltas": 2, "faltas_justificadas": 1, "atrasos": 1},
      "calendario_resumido": [
        {"data": "01/11/2025", "status": "P"}
      ],
      "alertas": ["Frequência abaixo do limiar"],
      "orientacoes": "Recomenda-se reforçar o acompanhamento da frequência escolar.",
      "formato_renderizado": "html",
      "json_compacto": {"aluno_id": "001", "frequencia_percentual": 92.5}
    } 
  • Número de caracteres esperado: O relatório terá um tamanho aproximado de 2.000 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.5

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 deve ser visível para o Agente de Execução de Chamada à API (RF 4).

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Execução de Chamada à API (RF 4).

RF 4. Agente de Execução de Chamada à API

4.1 Tarefa do Agente

Enviar o relatório final de cada aluno para a plataforma dos responsáveis por meio de endpoint previamente configurado.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o relatório final de frequência escolar de cada aluno.

# 2. Objetivo
Enviar o relatório para a plataforma dos responsáveis por meio de endpoint previamente configurado.

# 3. Regras que você deve seguir para gerar sua resposta
- Enviar o payload para o endpoint configurado, incluindo aluno_id, período, e conteúdo_serializado.
- Aguardar a resposta do endpoint e registrar o status_code e id_externo/URL de consulta do relatório no portal.
- Em caso de falha na chamada da API, o processo deve ser interrompido e o erro registrado para análise manual.

# 4. Exemplo de Output que você deve produzir
{
  "status_code": 200,
  "id_externo": "https://escola.edu.br/relatorios/001",
  "body_resposta": "Relatório enviado com sucesso."
} 
4.3 Configurações do Agente

4.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber como input o relatório final de frequência escolar de cada aluno.
  • 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.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um objeto JSON contendo o resultado da chamada à API.
  • Exemplo de Estrutura de Output:
     {
      "status_code": 200,
      "id_externo": "https://escola.edu.br/relatorios/001",
      "body_resposta": "Relatório enviado com sucesso."
    } 
  • Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 500 caracteres.

4.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: Não se aplica (uso de ferramenta)

4.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: O agente deverá enviar o relatório para a API externa configurada e retornar o status recebido como resposta.

4.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
  • Visibilidade da Resposta: A resposta (resultado da chamada à API) é o entregável final e não é passada para outros agentes internos.

4.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. O status da chamada à API é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.