Agente de IA para Planejamento de Cardápio Escolar

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

Como criar um agente de IA que sugere cardápios balanceados e variados para a cantina escolar.

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

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.

© 2025 prototipe.ai. Todos os direitos reservados.