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
- 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 Gerador e Otimizador de Escalas de Trabalho (RF 2).
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.