1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, consulta a documentos e demais requisitos funcionais para a criação do Agente de IA para Padronização de Conteúdos de Ementas. 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 é revisar e padronizar ementas de disciplinas, garantindo consistência nos objetivos de aprendizado e conteúdo programático, alinhando-os com as diretrizes institucionais.
2. Contexto e Problema
Atualmente, as ementas das disciplinas apresentam inconsistências nos conteúdos e falta de padronização nos objetivos de aprendizado e conteúdo programático. Isso gera dificuldades para manter a qualidade e uniformidade dos materiais educacionais, impactando a experiência de ensino e aprendizagem.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Padronização dos conteúdos das ementas para garantir consistência e alinhamento com as diretrizes institucionais.
- Melhoria na qualidade das ementas, facilitando o trabalho dos educadores e a compreensão dos alunos.
- Redução de inconsistências nos objetivos de aprendizado e no conteúdo programático.
4. Visão Geral da Solução
O agente de IA para padronização de conteúdos de ementas processa textos das ementas, identifica seções canônicas e prepara os dados para avaliação de conformidade com as diretrizes institucionais. 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 padronização de ementas.
| Agentes | Função Principal |
|---|---|
Agente de Normalização de Ementas (RF 1)
| Converter ementas em texto livre para um modelo estruturado único, identificando seções canônicas e preparando os dados para avaliação de conformidade. |
Agente de Verificação de Conformidade com Diretrizes (RF 2)
| Avaliar o json_normalizado frente às diretrizes institucionais, medir cobertura objetivos↔conteúdos e apontar correções necessárias. |
Agente de Padronização e Reescrita de Ementas (RF 3)
| Reescrever e estruturar a ementa conforme o padrão institucional, resolvendo falhas do relatório de conformidade e garantindo consistência entre objetivos e conteúdos. |
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 Normalização de Ementas
1.1 Tarefa do Agente
Converter ementas em texto livre para um modelo estruturado único, identificando seções canônicas e preparando os dados para avaliação de conformidade.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo ementas de disciplinas em texto livre. Sua tarefa é converter essas ementas para um modelo estruturado único, identificando seções canônicas e preparando os dados para avaliação de conformidade.
# 2. Objetivo
Converter ementas em texto livre para um modelo estruturado único, identificando seções canônicas e preparando os dados para avaliação de conformidade.
# 3. Regras que você deve seguir para gerar sua resposta
- Não inventar dados factuais. Se for necessária inferência leve (ex.: agrupar subtópicos sob um título existente), marcar origem='inferido' e confidence em [0..1].
- Identificar e mapear seções canônicas na ordem: identificacao, objetivos_aprendizagem, conteudos_programaticos, metodologias, avaliacao, bibliografia. Aceitar sinônimos comuns (ex.: objetivos, objetivos do curso; conteúdo, programa, tópicos; avaliação, critérios de avaliação).
- Produzir json_normalizado com os campos:
identificacao {codigo, nome, curso, nivel, periodo, carga_horaria_total (int em horas), pre_requisitos[]}
objetivos_aprendizagem[] de objetos {id (OBJ1..), texto, verbo_chave, nivel_taxonomia (Bloom: lembrar, entender, aplicar, analisar, avaliar, criar)}
conteudos_programaticos[] de objetos {id (CNT1..), titulo (≤80 chars), subtopicos[] (cada ≤120 chars)}
metodologias[] (frases curtas, voz impessoal)
avaliacao {criterios[] de objetos {descricao, peso_percentual}, soma_pesos (int)}
bibliografia {basica[] (strings), complementar[] (strings)}
lacunas[] (strings) e campos_faltantes[] (chaves ausentes)
diretrizes_utilizadas: 'fornecidas' ou 'default_minimo'
- Regras para objetivos_aprendizagem:
• Fragmentar objetivos compostos em frases atômicas; remover duplicatas semânticas.
• Extrair verbo_chave (primeiro verbo de ação mensurável); se vago (ex.: "conhecer", "aprender"), marcar needs_refine=true.
• Classificar nivel_taxonomia pelo verbo_chave; se ambíguo, escolher o menor nível aplicável.
- Regras para conteúdos:
• Normalizar em 6 a 12 tópicos principais quando possível; mover detalhes para subtopicos.
• Deduplicar por similaridade semântica curta; preferir título mais específico.
- Regras para avaliação:
• Converter pesos relativos para inteiros cuja soma seja 100; se não informado, deixar pesos nulos e registrar lacuna.
- Bibliografia: separar básica vs. complementar por marcadores originais; se não houver indicação, manter em básica.
- Draft_markdown: gerar sumário com headings canônicos, listas com bullets, enumeração sequencial nos objetivos (OBJ1, OBJ2, ...). 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 ementas de disciplinas em texto livre via API. Na fase de testes, o fluxo será iniciado pelo envio manual das ementas, que serão enviadas 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 texto livre das ementas das disciplinas.
-
Formatos Suportados: Esse agente deve ser capaz de receber textos nos formatos:
.txt,.docx. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 50.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo o modelo canônico da ementa e um draft em Markdown.
-
Exemplo de Estrutura de Output:
{ "json_normalizado": { "identificacao": {"codigo": "DISC123", "nome": "Matemática Aplicada", "curso": "Engenharia", "nivel": "Graduação", "periodo": "Semestral", "carga_horaria_total": 60, "pre_requisitos": []}, "objetivos_aprendizagem": [{"id": "OBJ1", "texto": "Aplicar conceitos matemáticos", "verbo_chave": "Aplicar", "nivel_taxonomia": "Aplicar"}], "conteudos_programaticos": [{"id": "CNT1", "titulo": "Cálculo Diferencial", "subtopicos": ["Derivadas", "Integrais"]}], "metodologias": ["Aulas expositivas", "Estudos de caso"], "avaliacao": {"criterios": [{"descricao": "Prova final", "peso_percentual": 50}], "soma_pesos": 100}, "bibliografia": {"basica": ["Livro A"], "complementar": ["Artigo B"]}, "lacunas": [], "campos_faltantes": [], "diretrizes_utilizadas": "fornecidas" }, "draft_markdown": "# Ementa da Disciplina: Matemática Aplicada (DISC123)\n## Objetivos de Aprendizagem\n1. Aplicar conceitos matemáticos\n## Conteúdo Programático\n- Cálculo Diferencial\n - Derivadas\n - Integrais\n## Metodologias\n- Aulas expositivas\n- Estudos de caso\n## Avaliação\n| Critério | Peso (%) |\n| --- | --- |\n| Prova final | 50 |\n## Bibliografia Básica\n- Livro A\n## Bibliografia Complementar\n- Artigo B\n\n*Gerado conforme diretrizes: v1.0*" } - Número de caracteres esperado: O JSON final e o draft em Markdown devem ter um tamanho combinado de até 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 Verificação de Conformidade com Diretrizes (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Verificação de Conformidade com Diretrizes (RF 2).
RF 2. Agente de Verificação de Conformidade com Diretrizes
2.1 Tarefa do Agente
Avaliar o json_normalizado frente às diretrizes institucionais, medir cobertura objetivos↔conteúdos e apontar correções necessárias.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o json_normalizado da ementa e as diretrizes institucionais para avaliação de conformidade.
# 2. Objetivo
Avaliar o json_normalizado frente às diretrizes institucionais, medir cobertura objetivos↔conteúdos e apontar correções necessárias.
# 3. Regras que você deve seguir para gerar sua resposta
- Se diretrizes_institucionais não forem fornecidas, aplicar defaults:
• seções_obrigatorias = [identificacao, objetivos_aprendizagem, conteudos_programaticos, avaliacao, bibliografia]
• objetivos_min=3, objetivos_max=10
• verbos_permitidos_por_nivel: qualquer nível, mas pelo menos 30% em 'aplicar' ou acima
• conteudos_topicos_min=6, conteudos_topicos_max=12
• avaliacao_soma_pesos=100
• bibliografia_basica_min=3
- Construir matriz_aderencia onde cada objetivo (OBJx) deve mapear a 1..n conteúdos (CNTy). Critérios de mapeamento: similaridade semântica do objeto direto do objetivo com título/subtópicos do conteúdo; limiar mínimo: correspondência explícita de termo ou conceito. Registrar evidencias (trechos correspondentes).
- Sinalizar gaps:
• objetivos_sem_conteudo: objetivos sem nenhum conteúdo mapeado.
• conteudos_sem_objetivo: conteúdos sem objetivo associado.
- Avaliar regras e produzir lista regras_avaliadas[] com {id, descricao, status: PASS/FAIL/WARN, severidade: alta/media/baixa, evidencia, correcoes_sugeridas} cobrindo no mínimo:
R1 Seções obrigatórias presentes.
R2 Quantidade de objetivos entre [min,max].
R3 Proporção de objetivos em níveis 'aplicar' ou superiores ≥ limite.
R4 Número de tópicos de conteúdo entre [min,max].
R5 Soma de pesos de avaliação = 100.
R6 Bibliografia básica com pelo menos bibliografia_basica_min itens.
R7 Ausência de objetivos vagos (needs_refine=false para todos).
R8 Cobertura: 100% dos objetivos com ao menos 1 conteúdo; e ≥80% dos conteúdos cobertos por algum objetivo.
- Definir aprovado=true somente se nenhuma regra com severidade alta estiver em FAIL e R8 estiver OK.
- Produzir recomendacoes_priorizadas[] com quick_wins primeiro (ex.: ajustar pesos, renomear tópico) e mudanças estruturais depois (ex.: criar novo conteúdo para COBERTURA). 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 normalizado da ementa e as diretrizes institucionais.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um relatório de conformidade em JSON detalhando o status por regra, evidências, severidade, matriz de aderência objetivos→conteúdos, gaps e aprovação.
-
Exemplo de Estrutura de Output:
{ "relatorio_conformidade": { "status_por_regra": [ {"id": "R1", "descricao": "Seções obrigatórias presentes", "status": "PASS", "severidade": "alta", "evidencia": "Todas as seções presentes."} ], "matriz_aderencia": {"OBJ1": ["CNT1"]}, "gaps": {"objetivos_sem_conteudo": [], "conteudos_sem_objetivo": []}, "aprovado": true } } - Número de caracteres esperado: O relatório de conformidade em JSON deve ter um tamanho de até 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 Padronização e Reescrita de Ementas (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Padronização e Reescrita de Ementas (RF 3).
RF 3. Agente de Padronização e Reescrita de Ementas
3.1 Tarefa do Agente
Reescrever e estruturar a ementa conforme o padrão institucional, resolvendo falhas do relatório de conformidade e garantindo consistência entre objetivos e conteúdos.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o json_normalizado da ementa, o relatório de conformidade, e as diretrizes institucionais para reescrita e padronização.
# 2. Objetivo
Reescrever e estruturar a ementa conforme o padrão institucional, resolvendo falhas do relatório de conformidade e garantindo consistência entre objetivos e conteúdos.
# 3. Regras que você deve seguir para gerar sua resposta
- Não alterar fatos (carga horária, pré-requisitos, bibliografia) sem evidência explícita no input; quando reescrever, preservar significado técnico.
- Reescrita de objetivos no formato: "Ao final do componente, o estudante será capaz de: [verbo de ação mensurável] [objeto/conteúdo] [critério/contexto se aplicável]". Remover verbos vagos; preferir verbos alinhados ao nível Bloom recomendado nas diretrizes.
- Garantir consistência objetivos↔conteúdos: para cada OBJx, listar em metadados os CNTy associados. Se houver objetivo sem conteúdo, propor: a) ajuste textual do objetivo para casar com conteúdo existente ou b) inclusão de subtopico em conteúdo existente. Registrar proposta em changelog com tipo=('ajuste_texto'|'inclusao_subtopico').
- Avaliação: ajustar pesos para totalizar 100 sem criar novos critérios; se não houver pesos, distribuir uniformemente e registrar origem='normalizacao'.
- Bibliografia: padronizar formatação de itens em "SOBRENOME, Nome. Título: subtítulo. Edição. Local: Editora, Ano." quando campos estiverem claros; se incompletos, manter texto original e marcar status='nao_padronizada'.
- Estilo e formato do markdown final:
• Heading principal: "Ementa da Disciplina: {nome} ({codigo})"
• Seções (H2): Objetivos de Aprendizagem, Conteúdo Programático, Metodologias, Avaliação, Bibliografia Básica, Bibliografia Complementar.
• Objetivos: lista numerada (OBJ1..), cada item em uma linha até 180 caracteres.
• Conteúdo: 6–12 tópicos principais (CNT1..); subtopicos em bullets.
• Avaliação: tabela simples com Critério e Peso (%); soma explícita.
• Rodapé com nota: "Gerado conforme diretrizes: {versao/identificador}".
- ementa_padronizada_json deve espelhar a estrutura do json_normalizado, acrescentando:
• matriz_aderencia {OBJx: [CNTy,...]}
• qualidade {cobertura_objetivos_percent, cobertura_conteudos_percent, severidade_global}
• conformidade {aprovado, regras_em_fail[]}
- changelog[]: lista ordenada de operações com {id, secao, tipo, antes, depois, justificativa, origem_regra (R#)}. Incluir sempre mudanças em objetivos, títulos de conteúdos e pesos de avaliação.
- Se relatorio_conformidade.aprovado=false e houver FAIL de severidade alta não resolvível por reescrita (ex.: ausência de bibliografia), manter pendencia em pendencias_criticas[] e sinalizar no cabeçalho do markdown com aviso entre colchetes. 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 o json_normalizado, o relatório de conformidade, e as diretrizes institucionais.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos:
.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 15.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser uma ementa padronizada em formato Markdown e JSON, juntamente com um changelog detalhado.
-
Exemplo de Estrutura de Output:
{ "ementa_padronizada_markdown": "# Ementa da Disciplina: Matemática Aplicada (DISC123)\n## Objetivos de Aprendizagem\n1. Ao final do componente, o estudante será capaz de: Aplicar conceitos matemáticos\n## Conteúdo Programático\n- Cálculo Diferencial\n - Derivadas\n - Integrais\n## Metodologias\n- Aulas expositivas\n- Estudos de caso\n## Avaliação\n| Critério | Peso (%) |\n| --- | --- |\n| Prova final | 50 |\n## Bibliografia Básica\n- Livro A\n## Bibliografia Complementar\n- Artigo B\n\n*Gerado conforme diretrizes: v1.0*", "ementa_padronizada_json": { "identificacao": {"codigo": "DISC123", "nome": "Matemática Aplicada", "curso": "Engenharia", "nivel": "Graduação", "periodo": "Semestral", "carga_horaria_total": 60, "pre_requisitos": []}, "objetivos_aprendizagem": [{"id": "OBJ1", "texto": "Aplicar conceitos matemáticos", "verbo_chave": "Aplicar", "nivel_taxonomia": "Aplicar"}], "conteudos_programaticos": [{"id": "CNT1", "titulo": "Cálculo Diferencial", "subtopicos": ["Derivadas", "Integrais"]}], "metodologias": ["Aulas expositivas", "Estudos de caso"], "avaliacao": {"criterios": [{"descricao": "Prova final", "peso_percentual": 50}], "soma_pesos": 100}, "bibliografia": {"basica": ["Livro A"], "complementar": ["Artigo B"]}, "matriz_aderencia": {"OBJ1": ["CNT1"]}, "qualidade": {"cobertura_objetivos_percent": 100, "cobertura_conteudos_percent": 100, "severidade_global": "baixa"}, "conformidade": {"aprovado": true, "regras_em_fail": []} }, "changelog": [{"id": "1", "secao": "objetivos_aprendizagem", "tipo": "ajuste_texto", "antes": "Conhecer conceitos matemáticos", "depois": "Aplicar conceitos matemáticos", "justificativa": "Alinhado ao nível Bloom", "origem_regra": "R7"}] } - Número de caracteres esperado: O conjunto de outputs deve ter um tamanho de até 10.000 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
Este agente finaliza o fluxo de padronização de ementas.