Agente de IA para Análise de Capacidade de Leitos Hospitalares

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

Como criar um agente de IA que analisa a disponibilidade de leitos e sugere alocações eficientes com base nas necessidades dos pacientes.

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 "Análise de Capacidade de Leitos Hospitalares", projetado para otimizar a alocação de leitos em hospitais. 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 é analisar dados de ocupação de leitos em tempo real e sugerir alocações que maximizem a eficiência e atendam às necessidades dos pacientes, além de alertar a administração hospitalar sobre potenciais gargalos.

2. Contexto e Problema

Problemas Específicos

O agente de IA foi concebido para resolver problemas críticos na gestão de leitos hospitalares:

  • Ineficiências na alocação de leitos hospitalares, que podem levar a atrasos no atendimento e insatisfação dos pacientes.
  • Dificuldades em ajustar a capacidade de leitos com base na demanda dos pacientes, o que pode resultar em superlotação ou subutilização dos recursos.

Necessidades de Solução

  • Analisar dados de ocupação de leitos em tempo real para otimizar a alocação.
  • Sugerir alocações de leitos que maximizem a eficiência e atendam às necessidades dos pacientes.
  • Alertar a administração hospitalar sobre potenciais gargalos na capacidade de leitos.

3. Impactos Esperados

  • Aumento da eficiência na alocação de leitos, reduzindo o tempo de espera dos pacientes.
  • Melhoria na satisfação dos pacientes, com alocações mais rápidas e adequadas às suas necessidades.
  • Redução de custos operacionais ao minimizar o tempo de leitos ociosos ou subutilizados.
  • Capacidade de resposta proativa a gargalos iminentes, permitindo ajustes rápidos na alocação de recursos.

4. Visão Geral da Solução

O agente de IA para análise de capacidade de leitos hospitalares processa dados em tempo real sobre a ocupação de leitos, aplica regras de otimização e gera sugestões de alocação eficiente. 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 de leitos hospitalares.

A solução é composta por um fluxo de automação com múltiplos agentes de IA, desde a consulta de dados até a emissão de alertas para a administração hospitalar. O processo é contínuo e iterativo, garantindo que as informações estejam sempre atualizadas e que as decisões sejam baseadas em dados concretos.

Agentes Função Principal
Agente de Execução de Consultas em Banco de Dados (RF 1) Obter dados de ocupação de leitos em tempo quase real.
Agente de Normalização e Validação de Dados de Leitos (RF 2) Padronizar e validar a consistência dos dados para uso analítico.
Agente de Classificação de Necessidades dos Pacientes (RF 3) Classificar pacientes quanto ao nível de cuidado necessário e restrições de alocação.
Agente de Otimização de Alocação de Leitos (RF 4) Sugerir alocações de leitos que maximizem a eficiência.
Agente de Detecção de Gargalos e Alertas (RF 5) Identificar gargalos de capacidade e emitir alertas.

5. Protótipos

Para proporcionar uma visão clara e tangível da solução proposta, criamos protótipos interativos que demonstram o fluxo de trabalho dos agentes e o impacto esperado na gestão de leitos hospitalares. Explore os links abaixo para entender melhor a solução em ação.

6. Requisitos Funcionais

RF 1. Agente de Execução de Consultas em Banco de Dados

1.1 Tarefa do Agente

Realizar conexão com o sistema hospitalar para obter dados de ocupação de leitos em tempo quase real.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo parâmetros prontos para a execução de uma consulta em banco de dados hospitalar. Este input contém informações necessárias para recuperar dados de ocupação de leitos, fila de pacientes e capacidade por unidade.

# 2. Objetivo
Executar a consulta no sistema hospitalar para recuperar dados de ocupação de leitos, fila de pacientes e capacidade por unidade, conforme parâmetros recebidos.

# 3. Regras que você deve seguir para gerar sua resposta
- Conectar ao sistema hospitalar usando as credenciais fornecidas.
- Executar a consulta conforme os parâmetros recebidos.
- Retornar os dados brutos obtidos, sem realizar transformação ou classificação.

# 4. Exemplo de Output que você deve produzir
{
  "leitos": [
    {"leito_id": "A1", "unidade": "UTI", "status": "disponivel", "tipo": "isolamento", "sexo_permitido": "M", "equipamentos_disponiveis": ["ventilador"], "ultima_atualizacao": "2025-12-06T09:00:00Z"}
  ],
  "pacientes": [
    {"paciente_id": "P123", "prioridade_clinica": "alta", "especialidade_requerida": "cardiologia", "restricoes_iso": "contato", "sexo": "M", "idade": 65, "status_internacao": "aguardando", "tempo_espera_min": 45, "exigencias_equipamentos": ["monitor"], "unidade_preferencial": "UTI"}
  ],
  "capacidade": [
    {"unidade": "UTI", "total_leitos": 10, "em_manutencao": 1, "bloqueados": 0, "ocupados": 8, "disponiveis": 1, "taxa_ocupacao": 80}
  ],
  "meta_operacional": [
    {"unidade": "UTI", "taxa_ocupacao_alvo": 85, "limites_alerta": {"amarelo": 80, "vermelho": 90}}
  ]
} 
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 parâmetros de consulta 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: Parâmetros de consulta em formato JSON.
  • 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 até 10.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo JSON contendo os dados brutos de leitos, pacientes e capacidade.
  • Exemplo de Estrutura de Output:
     {
      "leitos": [
        {"leito_id": "A1", "unidade": "UTI", "status": "disponivel", "tipo": "isolamento", "sexo_permitido": "M", "equipamentos_disponiveis": ["ventilador"], "ultima_atualizacao": "2025-12-06T09:00:00Z"}
      ],
      "pacientes": [
        {"paciente_id": "P123", "prioridade_clinica": "alta", "especialidade_requerida": "cardiologia", "restricoes_iso": "contato", "sexo": "M", "idade": 65, "status_internacao": "aguardando", "tempo_espera_min": 45, "exigencias_equipamentos": ["monitor"], "unidade_preferencial": "UTI"}
      ],
      "capacidade": [
        {"unidade": "UTI", "total_leitos": 10, "em_manutencao": 1, "bloqueados": 0, "ocupados": 8, "disponiveis": 1, "taxa_ocupacao": 80}
      ],
      "meta_operacional": [
        {"unidade": "UTI", "taxa_ocupacao_alvo": 85, "limites_alerta": {"amarelo": 80, "vermelho": 90}}
      ]
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.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.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Conecta-se ao sistema hospitalar para executar consultas.

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 de Normalização e Validação de Dados de Leitos (RF 2).

RF 2. Agente de Normalização e Validação de Dados de Leitos

2.1 Tarefa do Agente

Padronizar e validar a consistência dos dados de leitos, pacientes e capacidade para uso analítico.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados brutos de leitos, pacientes e capacidade obtidos por um agente anterior. Estes dados precisam ser normalizados e validados para uso analítico.

# 2. Objetivo
Padronizar e validar a consistência dos dados de leitos, pacientes e capacidade para uso analítico, garantindo a integridade e a qualidade dos dados.

# 3. Regras que você deve seguir para gerar sua resposta
- Converter todos os campos de tempo para o formato ISO-8601.
- Remover duplicidades por leito_id e paciente_id, mantendo o registro mais recente.
- Normalizar status do leito para o conjunto permitido {disponivel, ocupado, limpeza, manutencao, bloqueado}.
- Validar compatibilidade de sexo_permitido com os valores aceitos {M, F, U}.
- Garantir que cada paciente possua prioridade_clinica em {emergente, alta, media, baixa}.
- Consolidar a capacidade por unidade, verificando a consistência dos dados.

# 4. Exemplo de Output que você deve produzir
{
  "leitos_norm": [
    {"leito_id": "A1", "unidade": "UTI", "status": "disponivel", "tipo": "isolamento", "sexo_permitido": "M"}
  ],
  "pacientes_norm": [
    {"paciente_id": "P123", "prioridade_clinica": "alta", "especialidade_requerida": "cardiologia", "restricoes_iso": "contato", "sexo": "M", "idade": 65}
  ],
  "capacidade_norm": [
    {"unidade": "UTI", "total_leitos": 10, "ocupados": 8, "disponiveis": 1}
  ],
  "qualidade_dados": {
    "itens_inconsistentes": [],
    "campos_faltantes": [],
    "campos_corrigidos": []
  }
} 
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: Dados brutos de leitos, pacientes e capacidade em formato JSON.
  • 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 até 10.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo JSON contendo dados normalizados e validados de leitos, pacientes e capacidade.
  • Exemplo de Estrutura de Output:
     {
      "leitos_norm": [
        {"leito_id": "A1", "unidade": "UTI", "status": "disponivel", "tipo": "isolamento", "sexo_permitido": "M"}
      ],
      "pacientes_norm": [
        {"paciente_id": "P123", "prioridade_clinica": "alta", "especialidade_requerida": "cardiologia", "restricoes_iso": "contato", "sexo": "M", "idade": 65}
      ],
      "capacidade_norm": [
        {"unidade": "UTI", "total_leitos": 10, "ocupados": 8, "disponiveis": 1}
      ],
      "qualidade_dados": {
        "itens_inconsistentes": [],
        "campos_faltantes": [],
        "campos_corrigidos": []
      }
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.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.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

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 Classificação de Necessidades dos Pacientes (RF 3).

RF 3. Agente de Classificação de Necessidades dos Pacientes

3.1 Tarefa do Agente

Classificar cada paciente quanto ao nível de cuidado necessário e restrições de alocação.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados normalizados de pacientes, leitos e capacidade. Utilize essas informações para classificar cada paciente quanto ao nível de cuidado necessário e restrições de alocação.

# 2. Objetivo
Classificar cada paciente quanto ao nível de cuidado necessário e restrições de alocação, garantindo que as necessidades dos pacientes sejam atendidas de forma eficiente.

# 3. Regras que você deve seguir para gerar sua resposta
- Converter prioridade_clinica para prioridade_ordinal: emergente=1, alta=2, media=3, baixa=4.
- Definir prazo_max_espera_min por prioridade: emergente<=30, alta<=120, media<=360, baixa<=720.
- Inferir nivel_cuidado com base em especialidade_requerida e exigencias_equipamentos.
- Restringir sexo conforme restricoes_sexo = {M,F,U}.
- Preservar unidade_preferencial quando existir.
- Registrar criterios_classificacao_aplicados listando chaves usadas por paciente.

# 4. Exemplo de Output que você deve produzir
{
  "pacientes_perfil": [
    {"paciente_id": "P123", "nivel_cuidado": "uti", "especialidade_obrigatoria": "cardiologia", "equipamentos_obrigatorios": ["monitor"], "restricoes_sexo": "M", "restricoes_iso": "contato", "unidade_preferencial": "UTI", "prioridade_ordinal": 2, "prazo_max_espera_min": 120}
  ],
  "criterios_classificacao_aplicados": ["mapa_prioridade", "iso", "equipamentos"]
} 
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).
  • Tipo do input: Dados normalizados de leitos, pacientes e capacidade em formato JSON.
  • 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 até 10.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo JSON contendo o perfil de necessidades dos pacientes.
  • Exemplo de Estrutura de Output:
     {
      "pacientes_perfil": [
        {"paciente_id": "P123", "nivel_cuidado": "uti", "especialidade_obrigatoria": "cardiologia", "equipamentos_obrigatorios": ["monitor"], "restricoes_sexo": "M", "restricoes_iso": "contato", "unidade_preferencial": "UTI", "prioridade_ordinal": 2, "prazo_max_espera_min": 120}
      ],
      "criterios_classificacao_aplicados": ["mapa_prioridade", "iso", "equipamentos"]
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.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.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

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 Otimização de Alocação de Leitos (RF 4).

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

Ao concluir sua execução, esse agente aciona o Agente de Otimização de Alocação de Leitos (RF 4).

RF 4. Agente de Otimização de Alocação de Leitos

4.1 Tarefa do Agente

Sugerir alocações de leitos que maximizem eficiência e atendam às necessidades e restrições dos pacientes.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados normalizados de leitos, pacientes e capacidade, juntamente com o perfil de necessidades dos pacientes. Utilize essas informações para sugerir alocações de leitos que maximizem a eficiência.

# 2. Objetivo
Sugerir alocações de leitos que maximizem eficiência e atendam às necessidades e restrições dos pacientes, garantindo uma distribuição equilibrada dos recursos hospitalares.

# 3. Regras que você deve seguir para gerar sua resposta
- Elegibilidade do leito: status==disponivel, tipo compatível com nivel_cuidado do paciente, isolamento e restricoes_sexo compatíveis.
- Ordem de atendimento por prioridade_ordinal ascendente.
- Proibir alocações que violem isolamento requerido.
- Preencher justificativa com regras aplicadas.
- Registrar em conflitos_residuais quaisquer concessões necessárias.
- Preencher nao_alocados com motivo específico.

# 4. Exemplo de Output que você deve produzir
{
  "alocacoes": [
    {"paciente_id": "P123", "leito_id": "A1", "unidade": "UTI", "prioridade_ordinal": 2, "prazo_max_espera_min": 120, "justificativa": "prioridade_2", "conflitos_residuais": [], "riscos_identificados": []}
  ],
  "nao_alocados": [],
  "indicadores": {
    "taxa_utilizacao_pos": 85,
    "tempo_medio_espera_estimado": 60,
    "percentual_prazo_atendido": 95
  },
  "criterios_otimizacao_aplicados": ["prioridade", "isolamento"]
} 
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: Dados normalizados de leitos, pacientes e capacidade, juntamente com o perfil de necessidades dos pacientes, em formato JSON.
  • 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 até 10.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo JSON contendo o plano de alocação de leitos.
  • Exemplo de Estrutura de Output:
     {
      "alocacoes": [
        {"paciente_id": "P123", "leito_id": "A1", "unidade": "UTI", "prioridade_ordinal": 2, "prazo_max_espera_min": 120, "justificativa": "prioridade_2", "conflitos_residuais": [], "riscos_identificados": []}
      ],
      "nao_alocados": [],
      "indicadores": {
        "taxa_utilizacao_pos": 85,
        "tempo_medio_espera_estimado": 60,
        "percentual_prazo_atendido": 95
      },
      "criterios_otimizacao_aplicados": ["prioridade", "isolamento"]
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.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.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

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 deve ser visível para o Agente de Detecção de Gargalos e Alertas (RF 5).

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

Ao concluir sua execução, esse agente aciona o Agente de Detecção de Gargalos e Alertas (RF 5).

RF 5. Agente de Detecção de Gargalos e Alertas

5.1 Tarefa do Agente

Identificar gargalos de capacidade e emitir alertas priorizados para a administração hospitalar.

5.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o plano de alocação de leitos e dados de capacidade. Utilize essas informações para identificar gargalos de capacidade e emitir alertas priorizados.

# 2. Objetivo
Identificar gargalos de capacidade e emitir alertas priorizados para a administração hospitalar, garantindo uma gestão eficiente e proativa dos recursos.

# 3. Regras que você deve seguir para gerar sua resposta
- Superlotação: se taxa_ocupacao_pos >= limite vermelho da unidade, emitir alerta vermelho.
- Escassez de isolamento: se nao_alocados por "falta_isolamento" > 0, emitir alerta.
- Falta de equipamentos: se nao_alocados por "falta_equipamento" > 0, listar equipamentos críticos.
- Desbalanceamento: se desvio da taxa_ocupacao_pos vs taxa_ocupacao_alvo > 10 p.p., registrar gargalo.
- Gerar alertas_priorizados com títulos objetivos e mensagem contendo: unidade, causa, volume impactado.

# 4. Exemplo de Output que você deve produzir
{
  "gargalos": [
    {"tipo": "superlotacao", "unidade": "UTI", "severidade": "vermelho", "evidencia": "taxa_ocupacao_pos > 90", "prazo_recomendado_min": 30, "acao_recomendada": "remanejar pacientes"}
  ],
  "alertas_priorizados": [
    {"titulo": "Alerta de Superlotação na UTI", "mensagem": "A UTI está com superlotação, taxa de ocupação acima de 90%. Ação recomendada: remanejar pacientes.", "prioridade": "alta"}
  ],
  "impacto_estimado": {
    "pacientes_afetados": 5,
    "prazo_comprometido": 120
  }
} 
5.3 Configurações do Agente

5.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 4).
  • Tipo do input: Plano de alocação de leitos e dados de capacidade em formato JSON.
  • 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 até 10.000 caracteres.

5.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo JSON contendo o relatório de gargalos e alertas priorizados.
  • Exemplo de Estrutura de Output:
     {
      "gargalos": [
        {"tipo": "superlotacao", "unidade": "UTI", "severidade": "vermelho", "evidencia": "taxa_ocupacao_pos > 90", "prazo_recomendado_min": 30, "acao_recomendada": "remanejar pacientes"}
      ],
      "alertas_priorizados": [
        {"titulo": "Alerta de Superlotação na UTI", "mensagem": "A UTI está com superlotação, taxa de ocupação acima de 90%. Ação recomendada: remanejar pacientes.", "prioridade": "alta"}
      ],
      "impacto_estimado": {
        "pacientes_afetados": 5,
        "prazo_comprometido": 120
      }
    } 
  • Número de caracteres esperado: O JSON gerado terá um tamanho aproximado de 5.000 caracteres.

5.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

5.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não utiliza.

5.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 ponto final do fluxo e não precisa ser passada para outros agentes.

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

A execução deste agente finaliza o fluxo. O relatório gerado deve ser disponibilizado à administração hospitalar para ações corretivas.

© 2025 prototipe.ai. Todos os direitos reservados.