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 "Planejamento de Cardápio Escolar", uma solução de automação projetada para gerar cardápios escolares que atendam a restrições dietéticas e preferências alimentares dos alunos. 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 é oferecer opções de refeição balanceadas e variadas para os alunos, considerando as diretrizes nutricionais e o feedback contínuo da administração escolar e dos alunos.
2. Contexto e Problema
Cenário Atual
Planejar cardápios escolares que atendam a todas as necessidades dietéticas é um desafio constante para as instituições de ensino. Muitas escolas enfrentam dificuldades em oferecer opções de refeição que sejam ao mesmo tempo balanceadas, variadas e que respeitem as restrições alimentares dos alunos.
- Dificuldade em planejar cardápios escolares que atendam a todas as necessidades dietéticas.
- Necessidade de oferecer opções de refeição balanceadas e variadas para os alunos.
3. Impactos Esperados
A implementação deste fluxo de automação visa alcançar os seguintes resultados:
- Melhorar a qualidade nutricional das refeições oferecidas nas escolas.
- Aumentar a aceitação dos cardápios por parte dos alunos.
- Reduzir o desperdício de alimentos nas cantinas escolares.
- Facilitar o planejamento de cardápios para a administração escolar.
4. Visão Geral da Solução
O agente de IA para planejamento de cardápio escolar analisa restrições dietéticas e preferências alimentares dos alunos, sugere cardápios balanceados e atualiza as sugestões com base no feedback recebido. 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 no planejamento de cardápios escolares que atendam às especificidades nutricionais e preferências alimentares dos alunos.
A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a análise das restrições e preferências alimentares e termina com a atualização dos cardápios com base no feedback recebido.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Análise de Restrições e Preferências Alimentares (RF 1)
| Normalizar e consolidar restrições dietéticas, alergias e preferências dos alunos. |
Agente de Sugestão de Cardápio Balanceado (RF 2)
| Gerar um cardápio semanal variado e balanceado por refeição e por cluster. |
Agente de Atualização de Sugestões de Cardápio (RF 3)
| Incorporar feedback de aceitação e desperdício para ajustar o cardápio. |
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 a administração escolar receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Análise de Restrições e Preferências Alimentares
1.1 Tarefa do Agente
Normalizar e consolidar restrições dietéticas, alergias e preferências dos alunos, gerando um perfil nutricional por faixa etária/turma e regras de exclusão/substituição por ingrediente.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON com a lista de alunos e políticas da escola. Este JSON contém informações sobre restrições dietéticas, alergias e preferências alimentares dos alunos.
# 2. Objetivo
Normalizar e consolidar restrições dietéticas, alergias e preferências dos alunos, gerando um perfil nutricional por faixa etária/turma e regras de exclusão/substituição por ingrediente.
# 3. Regras que você deve seguir para gerar sua resposta
- Converter todas as restrições em três listas por cluster: proibidos (nunca usar), evitar (usar apenas se houver alternativa segura) e permitidos.
- Mapear alergias e intolerâncias para ingredientes e famílias de ingredientes; se houver alergia declarada, adicionar toda a família alimentar à lista proibidos.
- Traduzir restrições religiosas em proibidos específicos.
- Padronizar padrões alimentares em um dos valores: onívoro, vegetariano estrito, ovo-lacto-vegetariano, pescetariano, vegano.
- Consolidar preferências: formar listas positivas e negativas por categoria (frutas, hortaliças, grãos, proteínas, laticínios, bebidas).
- Gerar clusters por faixa etária/ano escolar.
- Produzir matriz_substituicoes: para cada ingrediente proibido frequente propor pelo menos dois substitutos seguros da mesma categoria alimentar.
- Respeitar políticas da escola.
# 4. Exemplo de Output que você deve produzir
{
"clusters": [
{
"cluster_id": "C1",
"criterios": {
"faixa_etaria": "9-11",
"serie": ["5º ano"]
},
"regras_ingredientes": {
"proibidos": ["amendoim", "lactose", "suina"],
"evitar": ["beterraba"]
},
"padroes": ["ovo-lacto-vegetariano"]
}
],
"mapa_aluno_cluster": {
"A1": "C1"
},
"preferencias_agrupadas": {
"positivas": {
"frutas": ["maçã"]
},
"negativas": {
"hortaliças": ["beterraba"]
}
},
"matriz_substituicoes": [
{
"ingrediente": "leite",
"substitutos": ["leite de aveia", "leite de soja"]
}
],
"sinalizadores": {
"dados_faltantes": ["A2.sem_idade"],
"conflitos": []
}
} 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 um JSON com a lista de alunos e políticas da escola 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: JSON com informações sobre restrições dietéticas, alergias e preferências alimentares dos alunos.
- 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.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON normalizado contendo clusters de alunos, regras de ingredientes, padrões alimentares e preferências agrupadas.
-
Exemplo de Estrutura de Output:
{ "clusters": [ { "cluster_id": "C1", "criterios": { "faixa_etaria": "9-11", "serie": ["5º ano"] }, "regras_ingredientes": { "proibidos": ["amendoim", "lactose", "suina"], "evitar": ["beterraba"] }, "padroes": ["ovo-lacto-vegetariano"] } ], "mapa_aluno_cluster": { "A1": "C1" }, "preferencias_agrupadas": { "positivas": { "frutas": ["maçã"] }, "negativas": { "hortaliças": ["beterraba"] } }, "matriz_substituicoes": [ { "ingrediente": "leite", "substitutos": ["leite de aveia", "leite de soja"] } ], "sinalizadores": { "dados_faltantes": ["A2.sem_idade"], "conflitos": [] } } - Número de caracteres esperado: O JSON gerado deve ser claro e organizado, com um tamanho estimado em 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 Sugestão de Cardápio Balanceado (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Sugestão de Cardápio Balanceado (RF 2).
RF 2. Agente de Sugestão de Cardápio Balanceado
2.1 Tarefa do Agente
Gerar um cardápio semanal variado e balanceado por refeição e por cluster, com porções e substituições seguras, atendendo a diretrizes nutricionais escolares.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a saída do agente anterior e parâmetros opcionais de planejamento. Este JSON contém informações sobre clusters de alunos, regras de ingredientes, padrões alimentares e preferências agrupadas.
# 2. Objetivo
Gerar um cardápio semanal variado e balanceado por refeição e por cluster, com porções e substituições seguras, atendendo a diretrizes nutricionais escolares.
# 3. Regras que você deve seguir para gerar sua resposta
- Produzir cardápio para 5 dias (segunda a sexta) para cada cluster ativo.
- Refeições suportadas: cafe_manha, lanche_manha, almoco, lanche_tarde.
- Diretrizes por refeição para idade 6-11: almoco energia 600-700 kcal; proteína 15-25% kcal; carboidratos 45-65%; gorduras 20-35%; hortaliças ≥100 g; fruta 1 porção; sódio ≤800 mg/refeição; açúcar adicionado 0 g; frituras proibidas.
- Composição de prato do almoço: 1 fonte de grão, 1 leguminosa, 1 proteína, 1 hortaliça crua e/ou cozida, 1 fruta inteira. Bebida padrão: água.
- Variedade mínima na semana por cluster: pelo menos 5 tipos de frutas e 6 tipos de hortaliças distintos.
- Restrições e segurança: excluir todos os itens em proibidos do cluster; criar campo substituicoes_seguras com 2+ alternativas sem o alérgeno e nutricionalmente equivalentes.
- Preferências: priorizar itens de preferencias_agrupadas.positivas; evitar itens em negativas.
- Sazonalidade e estoque: preferir itens de sazonalidade_priorizada ou itens_em_estoque.
- Porções: fornecer porcoes em gramas por componente.
- Avaliação: calcular indicadores estimados por dia (energia_kcal_dia, sodio_mg, ultraprocessados=0, fritura=0).
# 4. Exemplo de Output que você deve produzir
{
"semana": "2026-03-02",
"cardapio": [
{
"dia": "segunda",
"cluster_id": "C1",
"refeicoes": [
{
"tipo": "almoco",
"prato_principal": "arroz integral, feijao, frango grelhado",
"acompanhamentos": ["salada de alface e tomate"],
"fruta": "banana",
"bebida": "agua",
"porcoes": {
"graos_g": 120,
"proteina_g": 90,
"hortalicas_g": 100,
"fruta_g": 120
},
"alergenos": [],
"substituicoes_seguras": [
{
"para": "frango grelhado",
"opcoes": ["omelete", "grão-de-bico cozido"]
}
],
"custo_estimado": 6.5,
"observacoes_preparo": ["usar pouco sal", "assado ao invés de frito"]
}
]
}
],
"regras_nutricionais_avaliacao": {
"C1": {
"energia_kcal_dia": {
"meta": 650,
"estimado": 640,
"status": "ok"
},
"sodio_mg": {
"limite": 800,
"estimado": 620,
"status": "ok"
}
}
},
"diversidade_semana": {
"proteinas": ["ave", "ovo", "leguminosa", "peixe", "bovina"],
"status": "ok"
},
"pendencias": []
} 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: JSON contendo clusters de alunos, regras de ingredientes, padrões alimentares e preferências agrupadas, além de parâmetros opcionais de planejamento.
- 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 contendo o plano semanal de cardápios por cluster.
-
Exemplo de Estrutura de Output:
{ "semana": "2026-03-02", "cardapio": [ { "dia": "segunda", "cluster_id": "C1", "refeicoes": [ { "tipo": "almoco", "prato_principal": "arroz integral, feijao, frango grelhado", "acompanhamentos": ["salada de alface e tomate"], "fruta": "banana", "bebida": "agua", "porcoes": { "graos_g": 120, "proteina_g": 90, "hortalicas_g": 100, "fruta_g": 120 }, "alergenos": [], "substituicoes_seguras": [ { "para": "frango grelhado", "opcoes": ["omelete", "grão-de-bico cozido"] } ], "custo_estimado": 6.5, "observacoes_preparo": ["usar pouco sal", "assado ao invés de frito"] } ] } ], "regras_nutricionais_avaliacao": { "C1": { "energia_kcal_dia": { "meta": 650, "estimado": 640, "status": "ok" }, "sodio_mg": { "limite": 800, "estimado": 620, "status": "ok" } } }, "diversidade_semana": { "proteinas": ["ave", "ovo", "leguminosa", "peixe", "bovina"], "status": "ok" }, "pendencias": [] } - Número de caracteres esperado: O JSON gerado deve ser claro e organizado, com um tamanho estimado em 15.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 Atualização de Sugestões de Cardápio (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Atualização de Sugestões de Cardápio (RF 3).
RF 3. Agente de Atualização de Sugestões de Cardápio
3.1 Tarefa do Agente
Incorporar feedback de aceitação e desperdício para ajustar o cardápio, preservando metas nutricionais e variedade.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON com feedback por dia/refeição e cluster. Este JSON contém informações sobre aceitação, desperdício e ocorrências alérgicas relacionadas aos cardápios.
# 2. Objetivo
Incorporar feedback de aceitação e desperdício para ajustar o cardápio, preservando metas nutricionais e variedade.
# 3. Regras que você deve seguir para gerar sua resposta
- Calcular indicadores por refeição: media_aceitacao (1-5), desperdicio_percentual, ocorrencias_alergicas.
- Propor ação: ajustar preparo, trocar corte/forma de cocção ou substituir ingrediente por opção de mesma categoria.
- Priorizar correções que reduzam desperdício mantendo metas nutricionais.
- Atualizar preferencias agregadas: se aceitacao_nota ≥4 por 2+ ocorrências no mesmo item, adicionar às positivas; se aceitacao_nota ≤2 ou desperdicio ≥20%, adicionar às negativas.
- Revalidar variedade após cada ajuste.
- Informar impacto_nutricional estimado no campo impacto_nutricional (energia_kcal, sodio_mg, macros_percent) e status ok/quase/fora.
# 4. Exemplo de Output que você deve produzir
{
"semana": "2026-03-02",
"ajustes": [
{
"dia": "terça",
"cluster_id": "C1",
"refeicao": "almoco",
"acao": "substituir_prato_principal",
"de": "frango grelhado",
"para": "frango ensopado",
"justificativa": "comentários de secura e desperdício > 15%",
"impacto_nutricional": {
"energia_kcal": "+20",
"sodio_mg": "-50",
"status": "ok"
}
}
],
"regras_preservadas": ["variedade_semana", "sodio_limite", "ultraprocessados=0"],
"preferencias_atualizadas": {
"positivas": ["ensopados"],
"negativas": ["grelhado seco"]
}
} 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: JSON contendo feedback de aceitação, desperdício e ocorrências alérgicas relacionadas aos cardápios.
- 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é 30.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo ajustes propostos para o cardápio com base no feedback recebido.
-
Exemplo de Estrutura de Output:
{ "semana": "2026-03-02", "ajustes": [ { "dia": "terça", "cluster_id": "C1", "refeicao": "almoco", "acao": "substituir_prato_principal", "de": "frango grelhado", "para": "frango ensopado", "justificativa": "comentários de secura e desperdício > 15%", "impacto_nutricional": { "energia_kcal": "+20", "sodio_mg": "-50", "status": "ok" } } ], "regras_preservadas": ["variedade_semana", "sodio_limite", "ultraprocessados=0"], "preferencias_atualizadas": { "positivas": ["ensopados"], "negativas": ["grelhado seco"] } } - Número de caracteres esperado: O JSON gerado deve ser claro e organizado, com um tamanho estimado em 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
A execução deste agente finaliza o fluxo. Os ajustes gerados devem ser disponibilizados para a administração escolar.