Agente de IA para Otimização de Escalas de Trabalho

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

Como criar um agente de IA que ajuda a otimizar escalas de trabalho de profissionais de saúde.

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 para Otimização de Escalas de Trabalho, uma solução projetada para otimizar escalas de trabalho de profissionais de saúde, assegurando cobertura adequada e bem-estar da equipe. 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 é garantir um planejamento eficiente das escalas de trabalho para evitar sobrecarga, melhorar o bem-estar da equipe e otimizar o uso de recursos humanos.

2. Contexto e Problema

Cenário Atual

Os profissionais de saúde enfrentam desafios significativos ao lidar com escalas de trabalho que frequentemente resultam em sobrecarga e estresse. As escalas não otimizadas podem levar a:

  • Falta de cobertura adequada em turnos críticos.
  • Sobreposição de turnos e falta de descanso adequado para os profissionais.
  • Baixo moral da equipe devido à falta de equilíbrio entre vida profissional e pessoal.

Esses problemas impactam diretamente a eficiência operacional e a qualidade do atendimento prestado aos pacientes.


Problemas Identificados

  • Planejamento Ineficiente: Dificuldade em prever e ajustar a demanda de trabalho, resultando em escalas inadequadas.
  • Bem-estar Comprometido: A sobrecarga de trabalho e a falta de folgas adequadas aumentam o risco de burnout entre os profissionais de saúde.
  • Uso Ineficiente de Recursos: Falta de otimização no uso da equipe disponível, levando a desperdício de recursos e aumento de custos operacionais.

3. Impactos Esperados

A implementação deste agente visa alcançar os seguintes resultados:

  • Melhoria na Eficiência do Planejamento: Criação de escalas que atendam à demanda de trabalho sem sobrecarregar a equipe.
  • Aumento do Bem-estar da Equipe: Promoção de um ambiente de trabalho saudável, com equilíbrio entre vida profissional e pessoal.
  • Otimização de Recursos: Uso eficiente dos recursos humanos disponíveis, reduzindo custos e melhorando a qualidade do atendimento.

4. Visão Geral da Solução

O agente de IA para otimização de escalas de trabalho analisa padrões de demanda e disponibilidade da equipe, gerando escalas que equilibram a carga de trabalho e promovem o bem-estar. 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 otimização de escalas de trabalho.

A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a análise de padrões de demanda e termina com o monitoramento contínuo do bem-estar da equipe.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.

Agentes Função Principal
Agente de Análise de Padrões de Demanda e Capacidade (RF 1) Construir o perfil de demanda por período e a capacidade disponível da equipe.
Agente Gerador e Otimizador de Escalas de Trabalho (RF 2) Produzir a escala detalhada por janela/turno atendendo às restrições obrigatórias.
Agente de Ajustes Reativos de Escala (RF 3) Recalcular partes afetadas da escala diante de eventos inesperados.
Agente de Monitoramento de Bem-Estar da Equipe (RF 4) Avaliar risco de fadiga e burnout e sugerir ajustes preventivos na escala.

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 equipe de saúde receberá. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Análise de Padrões de Demanda e Capacidade

1.1 Tarefa do Agente

Construir o perfil de demanda por período e a capacidade disponível da equipe, gerando restrições e metas para a geração de escala.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados históricos de demanda e capacidade da equipe em formato JSON.

# 2. Objetivo
Analisar esses dados para construir um perfil de demanda e capacidade, gerando restrições e metas para a geração de escala.

# 3. Regras que você deve seguir para gerar sua resposta
- Validar período de planejamento: se (fim - inicio) > 90 dias, limitar análise a 90 dias e registrar nota em constraints.soft.
- Uniformizar granularidade temporal para blocos de 60 minutos; alinhar turnos_modelo às janelas. Se houver desalinhamento < 15 min, arredondar para o bloco mais próximo e registrar ajuste em soft constraints.
- Calcular demanda por skill: quando metas_cobertura não existir para uma janela, estimar por média móvel de 28 dias do historico_demanda do mesmo dia da semana e horário; aplicar mínimo de 1 profissional por skill crítico presente nas habilidades.
- Detectar picos e vales: marcar janelas com z-score de demanda ≥ 2 como pico e ≤ -1 como vale e priorizar cobertura total nos picos em priorities.
- Capacidade: remover janelas que conflitem com indisponibilidades; aplicar acordos_trabalho para obter horas máximas alocáveis por colaborador no período e descanso mínimo entre janelas.
- Skill mix: para cada janela, gerar hard constraint de cobertura por skill conforme required_headcount_por_skill; quando não houver profissional com skill exigida, criar lacuna explicitando skill e janela (para o próximo agente tratar como infeasibilidade potencial).
- Continuidade de cuidados: se existir associação de paciente/unidade no historico_demanda.tipo_demanda, criar soft constraint favorecendo alocação repetida do mesmo colaborador no mesmo paciente/unidade em janelas consecutivas (peso em pesos_soft_constraints.continuidade_cuidados, default 0.6).
- Preferências ausentes: se pesos_soft_constraints não informado, usar defaults {preferencias:0.5, continuidade_cuidados:0.6, distribuicao_equilibrada:0.7}.
- Produzir objeto constraints.hard contendo: limites legais (descanso_min_horas, max_turnos_consecutivos, folgas_semanais_min, carga_semana_max), não sobreposição de turnos e skill mix mínimo por janela.
- Produzir priorities: 1) Cobertura de hard constraints; 2) Minimizar lacunas em picos; 3) Balanceamento de horas entre colaboradores; 4) Atender preferências; 5) Continuidade de cuidados. 
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 históricos de demanda e capacidade 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 de um arquivo JSON na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um arquivo JSON contendo dados históricos de demanda e capacidade.
  • 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 estruturado contendo perfis de demanda e capacidade, restrições e prioridades.
  • Exemplo de Estrutura de Output:
     {
      "demand_profile": [
        {"janela": "2025-12-01T00:00:00Z", "required_headcount_por_skill": {"enfermeiro": 3, "medico": 2}},
        {"janela": "2025-12-01T01:00:00Z", "required_headcount_por_skill": {"enfermeiro": 2, "medico": 2}}
      ],
      "capacity_profile": [
        {"colaborador_id": "123", "janelas_disponiveis": [{"janela": "2025-12-01T00:00:00Z", "max_alocavel_horas": 8}]}
      ],
      "constraints": {
        "hard": ["limites legais", "não sobreposição de turnos"],
        "soft": [{"nome": "preferencias", "peso": 0.5, "descricao": "..."}]
      },
      "prioridades": ["Cobertura de hard constraints", "Minimizar lacunas em picos"]
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.500 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: Utiliza lógica interna para calcular perfis de demanda e capacidade.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

1.3.5 Memória

1.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente Gerador e Otimizador de Escalas de Trabalho (RF 2).

RF 2. Agente Gerador e Otimizador de Escalas de Trabalho

2.1 Tarefa do Agente

Produzir a escala detalhada por janela/turno atendendo às restrições obrigatórias e maximizando bem-estar e eficiência.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo perfis de demanda e capacidade, restrições e prioridades em formato JSON.

# 2. Objetivo
Gerar uma escala de trabalho detalhada que atenda às restrições obrigatórias e maximize o bem-estar e a eficiência operacional.

# 3. Regras que você deve seguir para gerar sua resposta
- Atender 100% das hard constraints; se impossível, não publicar escala final e retornar violacoes_hard listando janelas e regras infringidas, com sugestão de relaxamento mínimo (ex.: reduzir required_headcount por skill em 1 por até N janelas de vale).
- Respeitar descanso mínimo e não sobrepor alocações de um mesmo colaborador; garantir max_turnos_consecutivos e folgas_semanais_min.
- Garantir skill mix: só alocar colaborador em janelas onde possua skill no nível requerido.
- Balanceamento: minimizar desvio padrão de horas atribuídas entre colaboradores do mesmo papel; se politicas_equidade.desvio_max_horas_semanais informado, não exceder.
- Preferências: tratar como soft constraint; quando houver conflito, aplicar prioridades definidas, registrando justificativa por alocação que contrariar preferência.
- Continuidade: preferir manter o mesmo colaborador em janelas sequenciais na mesma unidade/paciente, desde que não fira descanso.
- Turnos noturnos e finais de semana: distribuir de forma equitativa entre colaboradores elegíveis no período.
- Janelas com pico: proibir déficit; se inevitável, sugerir remanejamento de unidade/turno de vale mais próximo com impacto mínimo de cobertura global.
- Saída determinística: em empates, desempatar por menor carga acumulada, depois por maior aderência a preferências, depois por menor quantidade de noites no período.
- Incluir em metricas.cobertura_total_pct = (janelas_cobertas_requisito/total_requisitos) * 100, e lista completa de lacunas remanescentes. 
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 contendo perfis de demanda e capacidade, restrições e prioridades.
  • 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 a escala detalhada, métricas de cobertura e conformidade.
  • Exemplo de Estrutura de Output:
     {
      "alocacoes": [
        {"colaborador_id": "123", "turno_id": "T1", "inicio": "2025-12-01T00:00:00Z", "fim": "2025-12-01T08:00:00Z", "unidade": "U1", "skill_utilizada": "enfermeiro"}
      ],
      "metricas": {
        "cobertura_total_pct": 95,
        "lacunas": [
          {"janela": "2025-12-01T00:00:00Z", "skill": "medico", "deficit": 1}
        ],
        "horas_por_colaborador": [
          {"colaborador_id": "123", "horas": 40}
        ],
        "violacoes_soft": [
          {"tipo": "preferencias", "quantidade": 2}
        ],
        "violacoes_hard": []
      },
      "conformidade": {
        "legislacao_ok": true,
        "detalhes": [
          {"tipo_regra": "descanso_min_horas", "ok": true, "evidencias": []}
        ]
      }
    } 
  • Número de caracteres esperado: O JSON gerado 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 documentos externos.
  • Calculadora: Utiliza lógica interna para calcular a escala e 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 Agente de Ajustes Reativos de Escala (RF 3).

2.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Ajustes Reativos de Escala (RF 3).

RF 3. Agente de Ajustes Reativos de Escala

3.1 Tarefa do Agente

Recalcular partes afetadas da escala diante de eventos inesperados preservando a estabilidade do planejamento.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a escala atual e informações sobre eventos inesperados que impactam a escala.

# 2. Objetivo
Recalcular partes afetadas da escala para restabelecer cobertura e conformidade, minimizando perturbações.

# 3. Regras que você deve seguir para gerar sua resposta
- Princípio de mínima perturbação: limitar alterações ao menor conjunto de janelas necessário para restabelecer cobertura e conformidade.
- Ordem de ação: 1) realocar folguistas elegíveis; 2) trocar entre colaboradores na mesma unidade; 3) chamar plantão extra dentro dos limites legais; 4) aceitar déficit apenas em vales com justificativa.
- Revalidar descanso mínimo e limites de horas após cada ajuste; bloquear soluções que criem violacao_hard.
- Em pico_demanda, priorizar skills críticas; reduzir atividades não críticas se bloqueios_operacionais permitirem.
- Produzir lista de alternativas rejeitadas com razão (ex.: cria sobreposição, viola descanso), para rastreabilidade.
- Garantir que a soma de horas extras adicionais por colaborador não ultrapasse 20% da carga_semana_max, salvo se constraints.soft incluir política específica permitindo exceção. 
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) e sempre que um evento inesperado for detectado.
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo a escala atual e informações sobre eventos inesperados.
  • 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 a nova escala ajustada, impacto e justificativas das alterações.
  • Exemplo de Estrutura de Output:
     {
      "alocacoes_ajustadas": [
        {"colaborador_id": "123", "turno_id": "T1", "inicio": "2025-12-01T00:00:00Z", "fim": "2025-12-01T08:00:00Z", "unidade": "U1", "skill_utilizada": "enfermeiro"}
      ],
      "impacto": {
        "janelas_tocadas": 3,
        "variacao_horas_por_colaborador": [
          {"colaborador_id": "123", "delta_horas": 5}
        ]
      },
      "justificativas": [
        {"janela": "2025-12-01T00:00:00Z", "motivo_ajuste": "absenteismo", "regra_aplicada": "realocar folguistas"}
      ]
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 2.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 documentos externos.
  • Calculadora: Utiliza lógica interna para recalcular a escala e impactos.
  • 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 Agente de Monitoramento de Bem-Estar da Equipe (RF 4).

3.3.6 Regras de Orquestração e Transição

Ao concluir sua execução, esse agente aciona o Agente de Monitoramento de Bem-Estar da Equipe (RF 4).

RF 4. Agente de Monitoramento de Bem-Estar da Equipe

4.1 Tarefa do Agente

Avaliar risco de fadiga e burnout e sugerir ajustes preventivos na escala.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a escala atual e dados de bem-estar da equipe em formato JSON.

# 2. Objetivo
Avaliar o risco de fadiga e burnout, sugerindo ajustes preventivos na escala.

# 3. Regras que você deve seguir para gerar sua resposta
- Calcular score_risco com base em: a) horas_extras/semana (peso 0.35), b) noites consecutivas (0.25), c) turno com descanso < recomendado (0.25), d) feedback_pulso (0.15). Normalizar para 0-100.
- Sinalizar risco alto quando score ≥ 70; propor ao menos uma ação mitigadora concreta por caso sinalizado.
- Respeitar cobertura: ajustes sugeridos não podem criar violacao_hard; se inevitável, marcar como 'requer_intervencao_humana'.
- Propor rodízio de noites distribuindo próximas noites para colaboradores com menor carga noturna acumulada no período.
- Quando feedback_pulso indicar score_cansaco ≥ 4, priorizar concessão de folga na primeira janela possível respeitando descanso e cobertura.
- Emitir resumo por unidade: taxa de risco alto, principais fatores e janelas críticas para ação preventiva na próxima geração de escala. 
4.3 Configurações do Agente

4.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 3).
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo a escala atual e dados de bem-estar da equipe.
  • 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é 20.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON contendo riscos de fadiga, recomendações de ajustes e um resumo por unidade.
  • Exemplo de Estrutura de Output:
     {
      "riscos": [
        {"colaborador_id": "123", "score_risco": 75, "fatores": [{"fator": "horas_extras", "peso": 0.35, "evidencia": "10 horas extras na última semana"}]}
      ],
      "recomendacoes": [
        {"tipo": "troca_turno", "detalhes": "Trocar turno noturno do colaborador 123 com colaborador 456"}
      ],
      "ajustes_sugeridos": {
        "alocacoes_ajustadas": []
      }
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 3.000 caracteres.

4.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

4.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Utiliza lógica interna para calcular riscos de fadiga e burnout.
  • 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 é o resultado final do fluxo e não precisa ser visível para outros agentes.

4.3.6 Regras de Orquestração e Transição

A execução deste agente finaliza o fluxo. As recomendações e ajustes sugeridos devem ser disponibilizados para análise e intervenção humana, se necessário.

© 2025 prototipe.ai. Todos os direitos reservados.