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 "Análise de Carga Horária Docente". 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 é verificar a carga horária atribuída aos professores em relação às normas institucionais e sugerir ajustes para equilibrar a distribuição de trabalho, garantindo conformidade com as diretrizes estabelecidas.
2. Contexto e Problema
Cenário Atual
Em muitas instituições de ensino, a distribuição da carga horária entre os professores não é feita de maneira equitativa, o que pode levar a sobrecarga de trabalho para alguns e subutilização para outros. Além disso, é essencial que a carga horária esteja alinhada com as normas institucionais para garantir a conformidade e o bom funcionamento acadêmico.
Problemas Identificados
- Distribuição desigual: A carga horária entre os professores não é distribuída de forma equitativa, resultando em sobrecarga para alguns e subutilização para outros.
- Conformidade com normas: A carga horária atribuída aos professores precisa estar em conformidade com as normas institucionais para garantir o bom funcionamento acadêmico.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Equilibrar a carga horária entre os professores, garantindo uma distribuição justa e eficiente.
- Assegurar a conformidade com as normas institucionais, evitando penalidades e melhorando o funcionamento acadêmico.
- Otimizar o uso dos recursos docentes, potencializando o aproveitamento e a produtividade dos professores.
4. Visão Geral da Solução
O agente de IA para análise de carga horária docente processa dados sobre a carga horária atribuída aos professores, verifica a conformidade com as normas institucionais e sugere ajustes para equilibrar a distribuição de trabalho. 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 ajuste da carga horária docente.
A solução consiste em um fluxo de automação composto por vários agentes de IA. O processo inicia com a validação e normalização dos dados e termina com a consolidação e geração de um relatório final para decisão gerencial.
A execução dos agentes é sequencial, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Validação e Normalização de Dados da Carga Horária | Validar e normalizar os dados de carga horária docente para um formato padronizado. |
Agente de Cálculo e Diagnóstico de Conformidade | Calcular métricas de carga por professor e classificar o status de conformidade. |
Agente de Geração de Propostas de Ajuste | Produzir propostas de redistribuição de carga que corrijam inconformidades. |
Agente de Simulação de Cenários (Opcional) | Avaliar cenários específicos e medir impactos na conformidade e equidade. |
Agente de Consolidação e Relatório Final | Consolidar diagnóstico e propostas em um pacote final para decisão gerencial. |
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 usuário receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Validação e Normalização de Dados da Carga Horária
1.1 Tarefa do Agente
Validar a consistência e normalizar os dados de carga horária docente para um formato padronizado antes da análise de conformidade.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um conjunto de dados contendo informações sobre carga horária docente, turmas e normas institucionais. # 2. Objetivo Validar a consistência dos dados e normalizá-los para um formato padronizado antes da análise de conformidade. # 3. Regras que você deve seguir para gerar sua resposta - Rejeitar ou sinalizar entradas com horas_semanais <= 0, datas inválidas ou intervalos de tempo sobrepostos na mesma turma. - Unificar chaves e tipos: converter ids para string, horas para números com duas casas, datas para ISO, dias_semana para padrão [seg..dom]. - Expandir unidades_letivas em slots semanais com h-inicio e h-fim em minutos desde 00:00, marcando modalidade e sala. - Mapear professor_atribuido: se null, registrar vaga_aberta=true; se id inexistente em professores[], criar erro_crítico referenciando turma.id. - Validar habilitações: se requisitos_habilitacao da turma não estiver contido em habilitacoes do professor_atribuido, registrar alerta de inconformidade_habilitacao. - Consolidar atividades_extras por professor e tipo somando horas por semana, preservando periodo vigente; se períodos não cobrirem o calendário das turmas, considerar horas apenas na interseção de períodos. - Calcular horas_docencia_semanais por professor somando horas_semanais de turmas atribuídas; calcular total_semanais = docencia + soma(extras por tipo). - Construir mapa_horarios_por_professor com todos os slots semanais de docência; identificar sobreposições intra-professor e registrar issues_validacao de tipo conflito_horario. - Normalizar normas ausentes aplicando defaults seguros: max_blocos_dia=3, intervalo_min_entre_blocos=10, max_preparacoes_diferentes_semana=6, pesos_equidade.desvio_permitido_percentual=10, e marcar em issues_validacao tipo norma_default_aplicada. - Definir dataset_aprovado=false se existir pelo menos um erro_crítico (ids inválidos, datas malformadas, horas negativas, professor inexistente referenciado). Caso contrário, dataset_aprovado=true.
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 sobre carga horária docente 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 conjunto de dados estruturados contendo informações sobre professores, turmas e normas institucionais.
-
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 dados com até 50.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um conjunto de dados normalizados e uma lista de issues de validação, se houver.
-
Exemplo de Estrutura de Output:
{ "dataset_normalizado": { "professores": [...], "turmas": [...], "atribuicoes": {...} }, "issues_validacao": [{ "tipo": "conflito_horario", "severidade": "erro", "entidade": "professor", "id": "123", "descricao": "Conflito de horário detectado.", "sugestao_correcao": "Revisar atribuições." }], "dataset_aprovado": true } - Número de caracteres esperado: O output deve ser claro e direto, com um tamanho estimado em 5.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.7
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para normalização de dados.
- 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 próximo agente no fluxo.
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.
RF 2. Agente de Cálculo e Diagnóstico de Conformidade
2.1 Tarefa do Agente
Calcular métricas de carga por professor, comparar com normas institucionais e classificar o status de conformidade.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um conjunto de dados normalizados e issues de validação do agente anterior. # 2. Objetivo Calcular métricas de carga por professor, comparar com normas institucionais e classificar o status de conformidade. # 3. Regras que você deve seguir para gerar sua resposta - Se dataset_aprovado=false, retornar somente erro_execucao com referência às issues críticas. - Para cada professor, comparar horas.docencia com normas.carga_min_docencia_por_regime[regime_trabalho] e normas.carga_max_docencia_por_regime; classificar status.docencia. - Calcular horas.total = docencia + soma(extras), e comparar com normas.carga_total_min_por_regime e normas.carga_total_max_por_regime. - Calcular preparacoes_diferentes como número de disciplinas distintas em turmas atribuídas; se > normas.max_preparacoes_diferentes_semana, adicionar alerta. - Verificar max_horas_dia e max_blocos_dia por professor; sinalizar violações por dia. - Verificar intervalo_min_entre_blocos entre slots consecutivos; sinalizar quando menor que o mínimo. - Calcular carga_noturna somando horas em janela_noturna; comparar com janela_noturna.max_horas_semanais quando definido. - Detectar conflitos_horarios por professor a partir do mapa de slots; registrar contagem e lista resumida (dia, intervalo). - Identificar lacunas_oferta: turmas com vaga_aberta=true ou atribuídas a professor sem habilitação compatível. - Medir equidade: calcular desvio padrão das horas de docência; marcar professores cujo desvio relativo ao P50 exceda pesos_equidade.desvio_permitido_percentual. - Não alterar dados de entrada; apenas produzir diagnóstico imutável.
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.
- Tipo do input: Este agente deve ser apto a receber um conjunto de dados normalizados e issues de validação do agente anterior.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de dados com até 50.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um diagnóstico detalhado de conformidade por professor.
-
Exemplo de Estrutura de Output:
{ "diagnostico": { "por_professor": [ { "id_prof": "123", "horas": { "docencia": 20, "por_tipo_extras": {...}, "total": 40 }, "limites": { "docencia": { "min": 10, "max": 40 }, "total": { "min": 30, "max": 50 } }, "status": { "docencia": "em_conformidade", "total": "abaixo" }, "conflitos_horarios": 1, "preparacoes_diferentes": 3, "dias_trabalhados": 5, "carga_noturna": { "horas": 5, "status": "em_conformidade" }, "alertas": [...] } ], "lacunas_oferta": [...], "desequilibrio_equidade": { "desvio_padrao_horas_docencia": 5, "faixa_min_max": [20, 40], "professores_em_desvio_acima_percentual": [...] }, "indicadores_globais": { "distribuicao_horas_docencia": { "p10": 15, "p50": 25, "p90": 35, "media": 27.5 }, "taxa_conflitos_por_professor": 0.1, "porcentagem_vagas_abertas": 0.05 } } } - Número de caracteres esperado: O output deve ser detalhado e preciso, com um tamanho estimado em 5.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.7
2.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para cálculo de métricas de conformidade.
- 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 próximo agente no fluxo.
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.
RF 3. Agente de Geração de Propostas de Ajuste
3.1 Tarefa do Agente
Produzir propostas de redistribuição de carga que corrijam inconformidades e reduzam desequilíbrios, com impacto quantificado e justificativas.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um diagnóstico detalhado de conformidade por professor e um conjunto de dados normalizados. # 2. Objetivo Produzir propostas de redistribuição de carga que corrijam inconformidades e reduzam desequilíbrios, com impacto quantificado e justificativas. # 3. Regras que você deve seguir para gerar sua resposta - Priorizar correções que: (1) eliminem sobrecarga acima do máximo e subcarga abaixo do mínimo de docência, (2) removam conflitos de horário, (3) reduzam desvio de equidade. - Considerar elegibilidade: somente sugerir atribuição de turma a professor com habilitação compatível e sem conflito de horário no slot da turma. - Respeitar limites: não propor solução que faça qualquer professor ultrapassar max_horas_dia, max_blocos_dia, carga_max_docencia_por_regime ou carga_total_max_por_regime. - Minimizar novas preparações: evitar aumentar preparacoes_diferentes acima do limite; quando inevitável, justificar. - Manter continuidade pedagógica: preferir trocas dentro da mesma unidade/área; incluir justificativa caso cruze unidades. - Para cada mudança, calcular impactos antes/depois por professor e atualizar indicadores_globais simulados (ao menos desvio padrão das horas de docência). - Tratar vagas_abertas propondo: (a) atribuição a professor elegível subcarregado, (b) sugestão de abertura de nova contratação somente se nenhum elegível estiver disponível, marcando como recomendação administrativa. - Gerar no máximo 3 cenários com diferentes ênfases: conformidade estrita, equilíbrio de equidade, minimização de alterações; cada cenário deve ser internamente consistente. - Não modificar calendários ou cargas das turmas; atuar apenas em reatribuição entre professores e realocação de atividades extras quando permitido pelas normas.limites_por_tipo.
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.
- Tipo do input: Este agente deve ser apto a receber um diagnóstico detalhado de conformidade por professor e um conjunto de dados normalizados.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de dados com até 50.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um conjunto de propostas de ajuste de carga horária docente.
-
Exemplo de Estrutura de Output:
{ "propostas": [ { "id_proposta": "1", "descricao_curta": "Ajuste de carga horária para equilíbrio.", "mudancas": [...], "aderencia_pos_ajuste": { "violacoes_remanescentes": 0, "metas_equidade": true }, "riscos_e_observacoes": [...] } ], "criterios_utilizados": { "prioridades": [...], "restricoes_consideradas": [...] } } - Número de caracteres esperado: O output deve ser claro e detalhado, com um tamanho estimado em 5.000 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.7
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para cálculo de propostas de ajuste.
- 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 próximo agente no fluxo.
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.
RF 4. Agente de Simulação de Cenários (Opcional)
4.1 Tarefa do Agente
Avaliar cenários específicos solicitados (por exemplo, remoção temporária de professor, inclusão de nova turma) e medir impactos na conformidade e equidade.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um conjunto de dados normalizados e uma lista de ajustes hipotéticos. # 2. Objetivo Avaliar cenários específicos solicitados e medir impactos na conformidade e equidade. # 3. Regras que você deve seguir para gerar sua resposta - Aplicar apenas as mudanças explicitamente fornecidas em mudancas_simuladas ao dataset de trabalho temporário; não persistir. - Recalcular diagnóstico com as mesmas regras do agente de diagnóstico e reportar diferenças chave (mudanças nas classificações de docência e total, vagas abertas, desvio padrão). - Se qualquer mudança violar normas explícitas (ex.: criar turma com horas<=0), descartar o cenário e reportar erro de entrada do cenário específico. - Limitar a 5 cenários por chamada; nomear cenários conforme entrada ou gerar nomes descritivos.
4.3 Configurações do Agente
4.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado conforme necessidade de simulação de cenários.
- Tipo do input: Este agente deve ser apto a receber um conjunto de dados normalizados e uma lista de ajustes hipotéticos.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de dados com até 50.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um resultado de simulação de cenários.
-
Exemplo de Estrutura de Output:
{ "resultado_simulacao": { "cenarios": [ { "nome": "Cenário 1", "mudancas_aplicadas": [...], "diagnostico_pos": {...}, "impactos_globais": { "conformidade": true, "equidade": true, "vagas_abertas": 0 } } ] } } - Número de caracteres esperado: O output deve ser claro e detalhado, com um tamanho estimado em 5.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.7
4.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para simulação de cenários.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
4.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 próximo agente no fluxo.
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o próximo agente no fluxo.
RF 5. Agente de Consolidação e Relatório Final
5.1 Tarefa do Agente
Consolidar diagnóstico e propostas em um pacote final padronizado para decisão gerencial.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um diagnóstico, propostas de ajuste e um conjunto de dados normalizados. # 2. Objetivo Consolidar diagnóstico e propostas em um pacote final padronizado para decisão gerencial. # 3. Regras que você deve seguir para gerar sua resposta - Produzir resumo objetivo com números e percentuais; evitar texto prolixo. - Ordenar destaques por severidade: sobrecarga > subcarga > conflitos > vagas. - No comparativo, padronizar indicadores_chave em mesma ordem e unidade; marcar com ✓ a melhor métrica por coluna. - Se não houver proposta que elimine todas as violações, indicar a de menor violação residual e explicitar quais permanecem. - Gerar recomendacao_sugerida com base em regra: priorizar menor violacoes_totais; em empate, menor desvio_padrao_docencia; persistindo empate, menor numero de mudancas_totais. - Garantir que todos os ids referenciados nas tabelas existam no dataset_normalizado; caso contrário, apontar inconsistências antes de finalizar.
5.3 Configurações do Agente
5.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior.
- Tipo do input: Este agente deve ser apto a receber um diagnóstico, propostas de ajuste e um conjunto de dados normalizados.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de dados com até 50.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório final consolidado para decisão gerencial.
-
Exemplo de Estrutura de Output:
{ "relatorio_final": { "resumo_execucao": { "datahora": "2025-12-21T12:39:00", "total_professores": 100, "total_turmas": 50, "principais_inconformidades": [...] }, "destaques": { "professores_sobrecarga": [...], "professores_subcarga": [...], "conflitos_horarios": [...], "vagas_abertas": [...] }, "comparativo_cenarios": [...], "recomendacao_sugerida": { "id_proposta": "1", "justificativa": "Menor violação residual." }, "anexos": { "tabelas_csv_like": { "professores": [...], "turmas": [...], "atribuicoes": [...] }, "json_machine_readable": { "diagnostico": {...}, "propostas": [...] } } } } - Número de caracteres esperado: O output deve ser detalhado e abrangente, com um tamanho estimado em 10.000 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.7
5.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para consolidação de dados.
- Busca Online: Não utiliza.
- Sistemas Externos: Não se conecta a sistemas externos.
5.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 do fluxo.
5.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. O relatório gerado é o resultado que deve ser disponibilizado ao usuário.