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 "Avaliação de Impacto de Atividades Extracurriculares", uma solução de automação projetada para coletar feedback de alunos e professores, analisar dados de participação e gerar insights sobre o impacto das atividades extracurriculares. 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 o feedback e dados de participação em insights acionáveis, permitindo melhorias nas atividades extracurriculares oferecidas pelas instituições de ensino.
2. Contexto e Problema
Cenário Atual
As instituições de ensino enfrentam desafios significativos ao tentar avaliar o impacto das atividades extracurriculares. A falta de dados estruturados e a dificuldade em coletar feedback de maneira sistemática são barreiras comuns.
- Falta de dados estruturados sobre o impacto das atividades extracurriculares.
- Dificuldade em coletar feedback de maneira sistemática.
Problemas Identificados
- Coleta de Feedback: A coleta de feedback de alunos e professores é muitas vezes inconsistente e não padronizada, dificultando a análise.
- Análise de Dados: Sem uma análise detalhada dos dados de participação e impacto, é difícil gerar insights acionáveis.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a coleta de feedback de alunos e professores, tornando-a mais sistemática e padronizada.
- Gerar insights acionáveis sobre o impacto das atividades extracurriculares.
- Fornecer recomendações baseadas em dados para melhorar as atividades.
4. Visão Geral da Solução
O agente de IA para avaliação de impacto de atividades extracurriculares coleta feedback de alunos e professores, analisa dados de participação e gera insights sobre o impacto das atividades. 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 avaliação e melhoria das atividades extracurriculares.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a padronização e anonimização do feedback e termina com a geração de insights e recomendações para melhorar as atividades.
| Agentes | Função Principal |
|---|---|
Agente de Padronização e Anonimização de Feedback (RF 1)
| Receber respostas brutas de alunos e professores e converter em um JSON padronizado e anonimizado, pronto para análise. |
Agente de Análise de Participação e Impacto (RF 2)
| Calcular métricas de participação e impacto por atividade e por segmento (alunos vs professores) a partir dos dados padronizados. |
Agente de Geração de Insights e Recomendações (RF 3)
| Transformar métricas em ações priorizadas para melhorar as atividades extracurriculares. |
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 Padronização e Anonimização de Feedback
1.1 Tarefa do Agente
Receber respostas brutas de alunos e professores e converter em um JSON padronizado e anonimizado, pronto para análise.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo uma coleção de respostas de feedback de alunos e professores. Este feedback é composto por texto livre, planilhas ou formulários exportados.
# 2. Objetivo
Converter o feedback bruto em um JSON padronizado e anonimizado, pronto para análise.
# 3. Regras que você deve seguir para gerar sua resposta
- Mapeie e padronize papéis para {'aluno','professor'}; quaisquer variações (ex: 'docente', 'educador') mapeie para 'professor'.
- Gere pessoa_anon_id com hash determinístico a partir de (nome|email|id_interno, se houver) + sal 'projeto_extracurriculares'; se não houver identificador, gere uuid v4.
- Remova PII: zere nome, email e identificadores originais no output; mantenha apenas pessoa_anon_id.
- Valide faixa de nota: converta escala 1-5 para 0-10 via (nota-1)*2.5; se texto como '10/10' extraia 10; se ambíguo, defina nota_satisfacao_0a10=null e marque campo motivo_nota_nula='ambiguidade'.
- Classifique sentimento do comentario em {positivo, neutro, negativo} com pontuação contínua sentimento_score_-1a1; se comentario vazio, defina 'neutro' e score 0.
- Normalize atividade: se houver códigos/nomes divergentes, crie atividade_id slugificado (minúsculas, sem acento, separador '-') e preserve atividade_nome original padronizado em Title Case.
- Padronize data para ISO8601 (YYYY-MM-DD); se não for possível inferir data, use null e registre campo data_ausente=true.
- Construa participacao_registros: se houver presença ou lista de chamadas, cruze por pessoa_anon_id e atividade_id; presente=true quando explicitamente marcada presença; se houver apenas inscrição sem presença, presente=false.
- Defina carga_horas a partir da duração informada; se duração em texto (ex: '1h30'), converta para decimal 1.5; se ausente, null.
- Deduplicate: registros com mesmo pessoa_anon_id, atividade_id e data_iso8601 e comentario idêntico devem ser mesclados mantendo maior nota; registre campo deduplicado_de=[ids originais].
- Validação de completude: defina em cada registro campos validacao_completude {tem_atividade, tem_data_ou_periodo, tem_nota_ou_comentario} e um boolean valido_para_analise=(tem_atividade AND (tem_nota_ou_comentario)).
- Detecte outliers de nota por atividade: se desvio superior a 3 desvios-padrão da média provisória, marque flag_outlier_nota=true (não excluir, apenas sinalizar).
- Campos obrigatórios no output: todos os registros devem conter id_registro (uuid), atividade_id, atividade_nome, papel, anonimizado, valido_para_analise.
- Origem_coleta: preencha com 'formulario', 'planilha', 'texto_livre' segundo a fonte inferida do input. 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 de feedback 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 é uma coleção de respostas de feedback em texto livre, planilhas ou formulários exportados.
-
Formatos Suportados: Esse agente deve ser capaz de receber dados nos formatos:
.csv,.xlsx,.txt. - 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 padronizado contendo arrays feedback_registros e participacao_registros, com campos especificados nas regras.
-
Exemplo de Estrutura de Output:
{ "feedback_registros": [ { "id_registro": "uuid", "papel": "aluno", "atividade_id": "atividade-exemplo", "atividade_nome": "Atividade Exemplo", "data_iso8601": "2025-12-20", "comentario": "Excelente atividade!", "nota_satisfacao_0a10": 9, "sentimento_label": "positivo", "sentimento_score_-1a1": 0.8, "anonimizado": true, "origem_coleta": "formulario", "valido_para_analise": true } ], "participacao_registros": [ { "pessoa_anon_id": "anon-id", "atividade_id": "atividade-exemplo", "data_iso8601": "2025-12-20", "presente": true, "carga_horas": 1.5 } ] } - Número de caracteres esperado: O JSON final deve ser conciso e informativo, com um tamanho estimado em torno de 5.000 caracteres, podendo variar conforme a quantidade de registros 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: 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 Análise de Participação e Impacto (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 Participação e Impacto (RF 2).
RF 2. Agente de Análise de Participação e Impacto
2.1 Tarefa do Agente
Calcular métricas de participação e impacto por atividade e por segmento (alunos vs professores) a partir dos dados padronizados.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON com arrays feedback_registros e participacao_registros padronizados e validados pelo agente anterior. # 2. Objetivo Calcular métricas de participação e impacto por atividade e por segmento (alunos vs professores) a partir dos dados padronizados. # 3. Regras que você deve seguir para gerar sua resposta - Inclua apenas registros com valido_para_analise=true para métricas de satisfação; para participação, aceite presença explicitamente marcada. - participacao_total = soma de registros presente=true por atividade. - participantes_unicos = contagem de pessoa_anon_id distintos com pelo menos uma presença na atividade. - taxa_participacao_se_disponivel: se houver total_matriculados_por_atividade no input, calcule participantes_unicos/total_matriculados; caso contrário, defina null e marque qualidade_dados.lacunas['taxa_participacao']='sem_base'. - carga_horas_total = soma de carga_horas presentes; ignore nulls. - satisfacao_media_0a10 e mediana: calcule sobre notas válidas; se n<5, adicione flag_baixa_amostra=true para a atividade. - Distribuição de notas: bucketize em detratores(0-6), neutros(7-8), promotores(9-10). - NPS = (%promotores - %detratores) em pontos percentuais; inclua nps_intervalo_confianca_approx se n>=30 usando aproximação normal p*(1-p)/n; se n<30, defina null. - Sentimento_ratio: proporção de registros por sentimento_label, usando apenas comentarios não vazios. - Engajamento: frequencia_media_por_aluno = participacao_total/participantes_unicos (se >0). Repeticao_alunos = proporção de pessoa_anon_id com >=2 presenças na mesma atividade. - Resultados_por_segmento: repita métricas de satisfação e sentimento separando 'aluno' e 'professor' quando possível; se segmento ausente, marque como null com lacuna. - Crie flags_atencao por atividade: 'satisfacao_baixa' se satisfacao_media<6.5; 'queda_engajamento' se repeticao_alunos<0.15 e participantes_unicos>=20; 'nps_negativo' se nps<0; 'alta_variancia' se desvio-padrao de notas >2.5. - Ranking: gere arrays ordenados desc por satisfacao_media e por participacao_total; inclua posição e valores. - Qualidade de dados: percentual_registros_validos = (registros válidos)/(total); lacunas: lista chaves onde houve null crítico (taxa_participacao, data, nota). - Produza também um resumo_geral com totais agregados e um campo data_corte (YYYY-MM-DD) informado no input ou inferido pela maior data.
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 JSON padronizado contendo arrays feedback_registros e participacao_registros.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(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 com objeto analise contendo métricas por atividade_id e um resumo_geral.
-
Exemplo de Estrutura de Output:
{ "analise": { "atividade-exemplo": { "participacao_total": 30, "participantes_unicos": 25, "taxa_participacao_se_disponivel": 0.8, "carga_horas_total": 45.0, "satisfacao_media_0a10": 7.5, "nps": 20, "sentimento_ratio": { "positivo": 0.6, "neutro": 0.3, "negativo": 0.1 } } }, "resumo_geral": { "data_corte": "2025-12-20", "total_participacao": 300 } } - Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 4.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.
- Calculadora: Utiliza lógica interna para calcular métricas.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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 Geração de Insights e Recomendações (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Geração de Insights e Recomendações (RF 3).
RF 3. Agente de Geração de Insights e Recomendações
3.1 Tarefa do Agente
Transformar métricas em ações priorizadas para melhorar as atividades extracurriculares.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais Você está recebendo um JSON de análise consolidada por atividade, rankings e flags de atenção gerados pelo agente anterior. # 2. Objetivo Transformar métricas em ações priorizadas para melhorar as atividades extracurriculares. # 3. Regras que você deve seguir para gerar sua resposta - Mapeie problema_detectado diretamente das flags_atencao: ex. satisfacao_baixa, nps_negativo, queda_engajamento, alta_variancia. - Se satisfacao_media<6.5: priorize recomendações de 'conteudo' e 'logistica' específicas (ex.: ajustar carga horária, adequar nível de dificuldade, aumentar recursos). - Se nps<0 mas satisfacao_media>=6.5: foco em 'comunicacao' e 'experiencia' (ex.: reconhecimento de participantes, clarificar objetivos da atividade). - Se repeticao_alunos<0.15: recomendar mudanças de calendário/horário e campanhas de reativação; sugerir teste A/B de horários. - Se alta_variancia de notas: recomendar segmentação de turmas por nível e instruções diferenciadas. - Calcule prioridade_numero via regra: impacto_esperado (alto=3, medio=2, baixo=1) + (flag_criticidade: nps_negativo ou satisfacao_baixa = +1) + (alcance: participantes_unicos>30 = +1) - custo (esforco: alto=2, medio=1, baixo=0). Trunque para faixa 1..5. - Defina esforco_estimado com base na natureza da ação: comunicação/material = baixo; ajustes de logística simples = médio; mudanças estruturais (novo currículo, contratação) = alto. - Defina indicador_de_sucesso objetivo por recomendação (ex.: 'aumentar satisfacao_media para >=7.5 em 8 semanas' ou 'elevar repeticao_alunos para >=0.25'). - Evite recomendações genéricas: cada recomendacao deve referenciar a métrica que pretende mover (campo alvo_metrica). - Deduplicate recomendações semelhantes por atividade (mesmo tipo e objetivo) mantendo a de maior prioridade. - Inclua riscos_opcional quando houver possível efeito colateral (ex.: reduzir carga horária pode diminuir profundidade). - Resumo_executivo: 3-5 frases com principais achados e ações de maior alavancagem; top_3_prioridades deve apontar recomendações distintas por atividade em ordem desc de prioridade.
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 bem-sucedida do agente anterior (RF 2).
- Tipo do input: Este agente deve ser apto a receber como input um JSON de análise consolidada por atividade.
-
Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato:
.json(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 JSON com array recomendacoes contendo objetos de ações priorizadas e um resumo_executivo.
-
Exemplo de Estrutura de Output:
{ "recomendacoes": [ { "atividade_id": "atividade-exemplo", "atividade_nome": "Atividade Exemplo", "problema_detectado": "satisfacao_baixa", "recomendacao": "Ajustar carga horária e adequar nível de dificuldade", "tipo": "conteudo", "esforco_estimado": "medio", "impacto_esperado": "alto", "prioridade_numero": 4, "indicador_de_sucesso": "aumentar satisfacao_media para >=7.5 em 8 semanas" } ], "resumo_executivo": "As principais recomendações incluem ajustes na carga horária e melhorias na comunicação para aumentar a satisfação e o engajamento." } - Número de caracteres esperado: O JSON de output terá um tamanho aproximado de 3.500 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.
- Calculadora: Utiliza lógica interna para priorizar ações.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
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
A execução deste agente finaliza o fluxo. O JSON gerado é o resultado que deve ser disponibilizado ao usuário.