1. Propósito e Escopo
Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como chamadas a sistemas externos e demais requisitos funcionais para o Fluxo de Agentes "Planejamento de Capacidade de Redes de Saúde". Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.
O agente de IA foi projetado para analisar dados de uso e capacidade das redes de saúde credenciadas, identificar ineficiências e sugerir ajustes para otimizar o atendimento, além de propor estratégias para lidar com picos de demanda e evitar sobrecarga.
2. Contexto e Problema
Problemas Específicos
O agente foi criado para resolver problemas específicos e já conhecidos nas redes de saúde credenciadas:
- Ineficiências no uso da capacidade das redes de saúde credenciadas.
- Dificuldade em prever e ajustar a capacidade para atender à demanda flutuante.
A análise de dados de uso e capacidade é crucial para identificar e mitigar esses problemas, garantindo que as redes de saúde possam atender eficientemente à demanda dos pacientes.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Melhorar a eficiência no uso da capacidade das redes de saúde credenciadas.
- Otimizar o atendimento ao ajustar a capacidade com base na demanda.
- Reduzir a sobrecarga durante picos de demanda, garantindo um atendimento contínuo e de qualidade.
- Aumentar a previsibilidade das operações, permitindo um planejamento mais eficaz.
4. Visão Geral da Solução
O agente de IA para planejamento de capacidade de redes de saúde processa dados estruturados sobre uso e capacidade, identificando ineficiências e sugerindo ajustes para otimizar o atendimento. 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 gestão eficiente das redes de saúde.
A solução consiste em um fluxo de automação composto por 4 agentes de IA. O processo inicia com a validação e normalização dos dados e termina com a proposta de estratégias para lidar com picos de demanda.
A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo.
| Agentes | Função Principal |
|---|---|
Agente de Validação e Normalização de Dados | Validar e normalizar os dados de uso e capacidade das redes de saúde credenciadas. |
Agente de Diagnóstico de Ineficiências | Identificar ineficiências de uso de capacidade e apontar causas prováveis. |
Agente de Planejamento de Capacidade e Ajustes | Sugerir ajustes operacionais para otimizar o atendimento. |
Agente de Estratégias para Picos e Contingência | Propor estratégias para lidar com picos de demanda e evitar sobrecarga. |
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 Validação e Normalização de Dados
1.1 Tarefa do Agente
Validar, padronizar e enriquecer os dados de uso e capacidade das redes de saúde credenciadas, garantindo consistência antes das análises.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um dataset em CSV ou JSON com registros diários ou por faixa horária contendo, no mínimo, as colunas: data (YYYY-MM-DD), unidade_id, prestador_id, especialidade_id, capacidade_disponivel (numero >=0), capacidade_utilizada (numero >=0).
# 2. Objetivo
Validar, padronizar e enriquecer os dados de uso e capacidade das redes de saúde credenciadas, garantindo consistência antes das análises.
# 3. Regras que você deve seguir para gerar sua resposta
- Rejeitar registros sem qualquer uma das colunas obrigatórias.
- Converter tipos (data para ISO YYYY-MM-DD; numéricos com ponto decimal).
- Padronizar ids como strings sem espaços.
- Exigir capacidade_disponivel >= 0 e capacidade_utilizada >= 0.
- Se capacidade_utilizada > capacidade_disponivel, marcar como outlier e ajustar capacidade_disponivel para capacidade_utilizada quando capacidade_max_teorica suportar.
# 4. Exemplo de Output que você deve produzir
{ "dados_normalizados": [ { "data": "2025-12-01", "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha", "capacidade_disponivel": 120, "capacidade_utilizada": 98, "taxa_no_show": 0.08, "backlog_pedidos": 12, "sla_dias": 7, "capacidade_max_teorica": 150, "capacidade_min_operacional": 80 } ], "relatorio_qualidade": { "registros_entrada": 12500, "registros_validos": 12130, "registros_descartados": 370, "motivos_descarte": { "schema_invalido": 120, "valores_negativos": 40, "datas_invalidas": 55, "duplicados": 155 }, "ajustes_realizados": { "imputacoes": 310, "correcoes_tipo": 220, "agregacoes_duplicados": 155 }, "intervalo_datas": { "inicio": "2025-08-01", "fim": "2025-12-15" } } } 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 dataset em CSV ou JSON contendo os registros necessários 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 é um dataset em CSV ou JSON.
-
Formatos Suportados: Esse agente deve ser capaz de receber datasets nos formatos:
.csv,.json. - Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 500.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo os dados normalizados e um relatório de qualidade.
-
Exemplo de Estrutura de Output:
{ "dados_normalizados": [ { "data": "2025-12-01", "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha", "capacidade_disponivel": 120, "capacidade_utilizada": 98, "taxa_no_show": 0.08, "backlog_pedidos": 12, "sla_dias": 7, "capacidade_max_teorica": 150, "capacidade_min_operacional": 80 } ], "relatorio_qualidade": { "registros_entrada": 12500, "registros_validos": 12130, "registros_descartados": 370, "motivos_descarte": { "schema_invalido": 120, "valores_negativos": 40, "datas_invalidas": 55, "duplicados": 155 }, "ajustes_realizados": { "imputacoes": 310, "correcoes_tipo": 220, "agregacoes_duplicados": 155 }, "intervalo_datas": { "inicio": "2025-08-01", "fim": "2025-12-15" } } } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em 10.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
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 Diagnóstico de Ineficiências.
1.3.6 Regras de Orquestração
Ao concluir sua execução, esse agente aciona o Agente de Diagnóstico de Ineficiências.
RF 2. Agente de Diagnóstico de Ineficiências
2.1 Tarefa do Agente
Identificar e quantificar ineficiências de uso de capacidade por unidade/prestador/especialidade/periodo e apontar causas prováveis.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados normalizados e um relatório de qualidade conforme saída do Agente de Validação e Normalização de Dados.
# 2. Objetivo
Identificar e quantificar ineficiências de uso de capacidade por unidade/prestador/especialidade/periodo e apontar causas prováveis.
# 3. Regras que você deve seguir para gerar sua resposta
- Calcular ocupacao_media, desvio_padrao_ocupacao e coeficiente_variacao por grupo.
- Classificar como subutilização quando ocupacao<=0.70 em pelo menos 5 dias dentro de qualquer janela móvel de 7 dias.
- Classificar como sobrecarga quando ocupacao>=0.90 por 3 dias consecutivos.
- Se taxa_no_show media do grupo >= 0.12, classificar como causa provável de subutilização.
# 4. Exemplo de Output que você deve produzir
{ "ineficiencias": [ { "escopo": { "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha" }, "tipo": "subutilizacao", "janela_analise": { "inicio": "2025-11-15", "fim": "2025-12-15" }, "metricas": { "ocupacao_media": 0.62, "dias_ocupacao_baixa": 16, "capacidade_media": 110, "ociosidade_media": 42 }, "criterio_disparo": "ocupacao<0.70 em >=5 dias de uma janela de 7 dias por 3 janelas consecutivas", "causas_provaveis": ["no_show_alto", "distribuicao_horaria_desbalanceada" ] } ], "kpis_globais": { "ocupacao_media": 0.81, "dias_sobrecarga": 9, "dias_subutilizacao": 21, "variabilidade_coefficient": 0.34 } } 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 contendo os dados normalizados e um relatório de qualidade.
-
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é 10.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo as ineficiências identificadas e suas causas prováveis.
-
Exemplo de Estrutura de Output:
{ "ineficiencias": [ { "escopo": { "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha" }, "tipo": "subutilizacao", "janela_analise": { "inicio": "2025-11-15", "fim": "2025-12-15" }, "metricas": { "ocupacao_media": 0.62, "dias_ocupacao_baixa": 16, "capacidade_media": 110, "ociosidade_media": 42 }, "criterio_disparo": "ocupacao<0.70 em >=5 dias de uma janela de 7 dias por 3 janelas consecutivas", "causas_provaveis": ["no_show_alto", "distribuicao_horaria_desbalanceada" ] } ], "kpis_globais": { "ocupacao_media": 0.81, "dias_sobrecarga": 9, "dias_subutilizacao": 21, "variabilidade_coefficient": 0.34 } } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em 8.000 caracteres.
2.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
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 Planejamento de Capacidade e Ajustes.
2.3.6 Regras de Orquestração
Ao concluir sua execução, esse agente aciona o Agente de Planejamento de Capacidade e Ajustes.
RF 3. Agente de Planejamento de Capacidade e Ajustes
3.1 Tarefa do Agente
Sugerir ajustes operacionais de capacidade para otimizar o atendimento, respeitando restrições operacionais e sinais de demanda.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo ineficiências identificadas, KPIs globais e dados normalizados oriundos do Agente de Diagnóstico de Ineficiências.
# 2. Objetivo
Sugerir ajustes operacionais de capacidade para otimizar o atendimento, respeitando restrições operacionais e sinais de demanda.
# 3. Regras que você deve seguir para gerar sua resposta
- Definir horizonte default de 14 dias para ajustes propositivos.
- Buscar faixa de ocupação-alvo 0.80–0.90.
- Aumento máximo de 20% por ciclo; redução máxima de 15% por ciclo.
- Nunca reduzir abaixo de capacidade_min_operacional quando backlog_pedidos>0.
# 4. Exemplo de Output que você deve produzir
{ "sugestoes_ajustes": [ { "escopo": { "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha" }, "horizonte_dias": 14, "ajuste_percentual": +15, "capacidade_alvo": 138, "racional": "ocupacao>=0.90 por 4 dias; backlog>0; p95_ocupacao=0.96", "restricoes_respeitadas": ["max_aumento_20%", "nao_reduzir_com_backlog" ], "inicio_vigencia": "2025-12-20" } ], "parametros": { "janela_referencia_dias": 28, "limite_aumento_percentual": 20, "limite_reducao_percentual": 15, "ocupacao_alvo": 0.85 } } 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 contendo as ineficiências identificadas, KPIs globais e dados normalizados.
-
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é 15.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo as sugestões de ajustes operacionais.
-
Exemplo de Estrutura de Output:
{ "sugestoes_ajustes": [ { "escopo": { "unidade_id": "U01", "prestador_id": "P10", "especialidade_id": "ESP-ORTO", "periodo": "manha" }, "horizonte_dias": 14, "ajuste_percentual": +15, "capacidade_alvo": 138, "racional": "ocupacao>=0.90 por 4 dias; backlog>0; p95_ocupacao=0.96", "restricoes_respeitadas": ["max_aumento_20%", "nao_reduzir_com_backlog" ], "inicio_vigencia": "2025-12-20" } ], "parametros": { "janela_referencia_dias": 28, "limite_aumento_percentual": 20, "limite_reducao_percentual": 15, "ocupacao_alvo": 0.85 } } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em 12.000 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
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 deve ser visível para o Agente de Estratégias para Picos e Contingência.
3.3.6 Regras de Orquestração
Ao concluir sua execução, esse agente aciona o Agente de Estratégias para Picos e Contingência.
RF 4. Agente de Estratégias para Picos e Contingência
4.1 Tarefa do Agente
Propor estratégias operacionais para lidar com picos de demanda e evitar sobrecarga, detalhando ações, pré-requisitos e indicadores de sucesso.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo sugestões de ajustes operacionais, ineficiências identificadas e dados normalizados oriundos do Agente de Planejamento de Capacidade e Ajustes.
# 2. Objetivo
Propor estratégias operacionais para lidar com picos de demanda e evitar sobrecarga, detalhando ações, pré-requisitos e indicadores de sucesso.
# 3. Regras que você deve seguir para gerar sua resposta
- Ativar gatilhos quando existir sobrecarga classificada ou quando p95_ocupacao previsto/observado >=0.95.
- Aplicar extensão de horário quando capacidade_max_teorica permitir +10–20% por curto prazo.
- Realocar atendimentos entre unidades vizinhas quando ocupacao<=0.75.
- Propor teleatendimento/triagem em especialidades elegíveis para deslocar até 10% dos atendimentos simples.
# 4. Exemplo de Output que você deve produzir
{ "estrategias_picos": [ { "gatilho": "p95_ocupacao>=0.95 nas próximas 2 semanas", "acoes": [ { "acao": "extensao_horario", "escopo": { "unidade_id": "U02", "especialidade_id": "ESP-CARDIO" }, "duracao_dias": 10, "incremento_capacidade_estimado": 12, "pre_requisitos": ["equipe_disponivel", "infra_ok"], "indicadores_sucesso": ["ocupacao<=0.90", "tempo_espera<-20%" ] } ], "alternativas": ["redistribuicao_interunidades", "teleatendimento_triagem" ] } ] } 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 bem-sucedida do agente anterior (RF 3).
- Tipo do input: Este agente deve ser apto a receber como input um JSON contendo sugestões de ajustes operacionais, ineficiências identificadas e dados normalizados.
-
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é 12.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON estruturado contendo as estratégias propostas para lidar com picos de demanda.
-
Exemplo de Estrutura de Output:
{ "estrategias_picos": [ { "gatilho": "p95_ocupacao>=0.95 nas próximas 2 semanas", "acoes": [ { "acao": "extensao_horario", "escopo": { "unidade_id": "U02", "especialidade_id": "ESP-CARDIO" }, "duracao_dias": 10, "incremento_capacidade_estimado": 12, "pre_requisitos": ["equipe_disponivel", "infra_ok"], "indicadores_sucesso": ["ocupacao<=0.90", "tempo_espera<-20%" ] } ], "alternativas": ["redistribuicao_interunidades", "teleatendimento_triagem" ] } ] } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em 10.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.5
4.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.
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 entregável final e não é passada para outros agentes internos.
4.3.6 Regras de Orquestração
A execução deste agente finaliza o fluxo. As estratégias geradas são o resultado que deve ser disponibilizado ao usuário.