Agente de IA para Gestão de Medicamentos em Internação

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

Como criar um agente de IA que verifica prescrições médicas, controla o estoque de medicamentos e alerta sobre interações medicamentosas ou dosagens incorretas.

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 "Gestão de Medicamentos em Internação", uma solução de automação projetada para verificar prescrições médicas, controlar o estoque de medicamentos e alertar sobre interações medicamentosas ou dosagens incorretas. 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 a segurança do paciente e a eficiência operacional no ambiente hospitalar, minimizando erros de medicação e otimizando a gestão de estoque de medicamentos.

2. Contexto e Problema

Cenário Atual

Em muitos hospitais, a gestão de medicamentos é um processo crítico que exige precisão e atenção aos detalhes. No entanto, erros de dosagem e interações medicamentosas prejudiciais ainda ocorrem com frequência, colocando em risco a segurança dos pacientes. Além disso, a gestão ineficiente do estoque de medicamentos pode levar a desperdícios ou à falta de medicamentos essenciais.

Atualmente, a verificação automática de prescrições médicas ainda é limitada, e muitos hospitais dependem de processos manuais que são suscetíveis a erros humanos.


Problemas Identificados

  • Erros de dosagem ou interações medicamentosas: A falta de verificação automática pode resultar em prescrições que não consideram interações medicamentosas prejudiciais ou dosagens incorretas.
  • Gestão ineficiente do estoque: Sem um monitoramento contínuo, o estoque de medicamentos pode não refletir as necessidades reais, levando a falta ou excesso de produtos.
  • Verificação manual de prescrições: O processo manual de verificação de prescrições é demorado e sujeito a erros, comprometendo a segurança do paciente.

3. Impactos Esperados

A implementação deste fluxo de automação visa alcançar os seguintes resultados:

  • Reduzir erros de medicação ao verificar automaticamente as prescrições médicas.
  • Otimizar a gestão de estoque de medicamentos, garantindo que os produtos certos estejam disponíveis quando necessário.
  • Aumentar a segurança do paciente ao identificar e alertar sobre interações medicamentosas e dosagens incorretas.
  • Agilizar o processo de verificação de prescrições, liberando a equipe médica para se concentrar no atendimento ao paciente.

4. Visão Geral da Solução

O agente de IA para gestão de medicamentos em internação verifica prescrições médicas, controla o estoque de medicamentos e alerta sobre interações medicamentosas ou dosagens incorretas, garantindo a segurança do paciente e a eficiência operacional no ambiente hospitalar. 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 medicamentos durante a internação.

A solução consiste em um fluxo de automação composto por 8 agentes de IA. O processo inicia com a consolidação da prescrição e contexto do paciente e termina com a geração de alertas estruturados para a equipe médica.

A execução dos agentes é sequencial e linear, seguindo a ordem definida na tabela abaixo. O fluxo inclui etapas condicionais que são executadas apenas se critérios específicos forem atendidos, conforme detalhado após a tabela.

Agentes Função Principal
Agente de Consolidação da Prescrição e Contexto do Paciente (RF 1) Consolidar a prescrição e o contexto clínico do paciente em um JSON padronizado e pronto para verificação clínica e consulta de estoque.
Agente de Preparação para Chamada à API - Verificação de Interações e Dose (RF 2) Preparar o payload para a API de base de fármacos que verifica interações medicamentosas, alergias, duplicidades terapêuticas e adequação de dose.
Agente de Execução de Chamada à API - Base de Fármacos (RF 3) Realizar chamada à API do Sistema Base de Fármacos para obter análise de interações, alergias, duplicidade e checagem de dose.
Agente de Análise Clínica da Prescrição (RF 4) Analisar o retorno da Base de Fármacos e qualificar discrepâncias de dose, interações e alergias, com recomendações acionáveis.
Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5) Preparar o payload para consulta de saldo e posição de estoque dos medicamentos prescritos no sistema de farmácia/ERP.
Agente de Execução de Chamada à API - ERP/Estoque Farmácia (RF 6) Realizar chamada à API do ERP/Farmácia para obter saldos, lotes e pontos de ressuprimento.
Agente de Reconciliação de Estoque e Sugestões (RF 7) Comparar necessidade estimada com posição de estoque e sugerir ações (dispensação, fracionamento, substituição terapêutica equivalente ou acionamento de ressuprimento).
Agente de Síntese Final e Geração de Alertas (RF 8) Unificar análise clínica e reconciliação de estoque em um output final estruturado e mensagem de alerta para a equipe.


Regras de Execução Condicional ou Edges

  • Ativação do Agente de Preparação para Chamada à API - Verificação de Interações e Dose (RF 2): Este agente só será executado se a propriedade "requires_interaction_check" do objeto JSON gerado pelo Agente de Consolidação da Prescrição e Contexto do Paciente (RF 1) for "true". Caso contrário, o fluxo pulará esta etapa e prosseguirá diretamente para o Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5).
  • Ativação do Agente de Execução de Chamada à API - Base de Fármacos (RF 3): Este agente só será executado se a propriedade "requires_interaction_check" do objeto JSON gerado pelo Agente de Consolidação da Prescrição e Contexto do Paciente (RF 1) for "true". Caso contrário, o fluxo pulará esta etapa e prosseguirá diretamente para o Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5).
  • Ativação do Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5): Este agente só será executado se a propriedade "requires_stock_check" do objeto JSON gerado pelo Agente de Consolidação da Prescrição e Contexto do Paciente (RF 1) for "true". Caso contrário, o fluxo pulará esta etapa e prosseguirá diretamente para o Agente de Síntese Final e Geração de Alertas (RF 8).
  • Ativação do Agente de Execução de Chamada à API - ERP/Estoque Farmácia (RF 6): Este agente só será executado se a propriedade "requires_stock_check" do objeto JSON gerado pelo Agente de Consolidação da Prescrição e Contexto do Paciente (RF 1) for "true". Caso contrário, o fluxo pulará esta etapa e prosseguirá diretamente para o Agente de Síntese Final e Geração de Alertas (RF 8).

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 Consolidação da Prescrição e Contexto do Paciente

1.1 Tarefa do Agente

Consolidar a prescrição e o contexto clínico do paciente em um JSON padronizado e pronto para verificação clínica e consulta de estoque.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um objeto JSON com dados da prescrição e do paciente. Este JSON contém informações detalhadas sobre o paciente e a prescrição médica que devem ser normalizadas e verificadas.

# 2. Objetivo
Consolidar a prescrição e o contexto clínico do paciente em um JSON padronizado para verificação clínica e consulta de estoque.

# 3. Regras que você deve seguir para gerar sua resposta
- **Normalização de nomes:** Remova marcas comerciais, concentração e forma do campo medicamento; produza nome_normalizado contendo DCI (quando inferível) e, se não inferível, preserve o melhor nome descritivo sem marca.
- **Unidades de dose/força:** Converta g→mg (x1000), mg→mcg (x1000) somente se necessário para consistência; nunca misture massa com volume. Para soluções, mantenha unidade de dose coerente com prescrição (ex.: mL) e registre concentração separadamente em forca_* quando informada. Não some dose e força; mantenha dose_valor/dose_unidade independentes da força.
- **Vias e formas permitidas:** Restrinja via a {VO, IV, IM, SC, SL, INH, TOP, OFT, OT, RET, NASAL}. Se vier fora do conjunto, mapeie para o mais próximo (ex.: oral→VO); se não houver mapeamento seguro, preserve como veio e marque integridade_minima_ok=false.
- **Frequência padronizada:** Mapeie expressões livres para {q4h,q6h,q8h,q12h,q24h,BID,TID,QID,STAT,PRN}. Conversões determinísticas: 6/6h→q6h; 8/8h→q8h; 12/12h→q12h; 1x/dia→q24h ou QD; 2x/dia→BID; 3x/dia→TID; 4x/dia→QID. PRN permanece PRN; STAT permanece STAT. Se ambíguo, selecione a equivalência mais comum (ex.: 3x/dia→TID) e adicione campo auxiliar interno frequencia_mapeada_origem="3x/dia" (não obrigatório no output final).
- **Duração:** Converta duracao para horas: dias×24, horas→horas. Se ausente, defina duracao_horas=0.
- **Integridade mínima:** integridade_minima_ok=true somente se nome_normalizado, via, dose_valor>0 e dose_unidade presentes. Caso contrário, integridade_minima_ok=false neste item específico.
- **Mapeamento de códigos:** Preencha med_id.rxnorm e/ou med_id.atc quando o nome_normalizado corresponder inequivocamente; se não houver certeza, deixe vazio sem suposições.
- **Contexto do paciente:** Converta peso para kg quando informado em lb (1 lb=0,453592 kg, arredondar para 1 casa decimal). Copie eGFR_mL_min_1_73m2 como eGFR no nível do paciente; Child-Pugh como A/B/C quando presente.
- **Sinalização de subfluxos:** Defina flags.requires_interaction_check=true se existir ao menos um item. Defina flags.requires_stock_check=true se existir ao menos um item com dose_valor>0.
- **Ordenação determinística:** Ordene itens por nome_normalizado ascendente para estabilidade de outputs.

# 4. Exemplo de Output que você deve produzir
{
  "prescricao_normalizada": {
    "paciente": {
      "id": "",
      "idade": 0,
      "peso_kg": 0,
      "sexo": ""
    },
    "itens": [
      {
        "med_id": {
          "rxnorm": "",
          "atc": ""
        },
        "nome_normalizado": "",
        "via": "",
        "forma": "",
        "dose_valor": 0,
        "dose_unidade": "mg|g|mcg|mL|U",
        "frequencia_padrao": "q8h|BID|TID|...",
        "duracao_horas": 0,
        "integridade_minima_ok": true
      }
    ]
  },
  "flags": {
    "requires_interaction_check": true,
    "requires_stock_check": true
  }
} 
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 objeto JSON com dados da prescrição e do paciente 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 do JSON na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: O input inicial para o fluxo é um objeto JSON contendo dados detalhados sobre o paciente e a prescrição médica.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de texto com até 20.000 caracteres.

1.3.2 Especificação do Output

  • Formato de output: O output deve ser um arquivo no formato JSON, contendo a prescrição normalizada e flags para verificação clínica e de estoque. A estrutura deve seguir o exemplo fornecido no prompt.
  • Exemplo de Estrutura de Output:
     {
      "prescricao_normalizada": {
        "paciente": {
          "id": "",
          "idade": 0,
          "peso_kg": 0,
          "sexo": ""
        },
        "itens": [
          {
            "med_id": {
              "rxnorm": "",
              "atc": ""
            },
            "nome_normalizado": "",
            "via": "",
            "forma": "",
            "dose_valor": 0,
            "dose_unidade": "mg|g|mcg|mL|U",
            "frequencia_padrao": "q8h|BID|TID|...",
            "duracao_horas": 0,
            "integridade_minima_ok": true
          }
        ]
      },
      "flags": {
        "requires_interaction_check": true,
        "requires_stock_check": true
      }
    } 
  • Número de caracteres esperado: O JSON final deve ter um tamanho estimado em torno 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: Não utiliza.
  • 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 de Preparação para Chamada à API - Verificação de Interações e Dose (RF 2).

RF 2. Agente de Preparação para Chamada à API - Verificação de Interações e Dose

2.1 Tarefa do Agente

Preparar o payload para a API de base de fármacos que verifica interações medicamentosas, alergias, duplicidades terapêuticas e adequação de dose.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON com a prescrição normalizada do paciente. Este JSON deve ser transformado em um payload adequado para a API de base de fármacos.

# 2. Objetivo
Preparar o payload para a API de base de fármacos que verifica interações medicamentosas, alergias, duplicidades terapêuticas e adequação de dose.

# 3. Regras que você deve seguir para gerar sua resposta
- **Estrita aderência ao schema:** Gere somente as chaves patient, medications e context conforme o expected_output, sem campos adicionais ou comentários.
- **Normalização de sexo:** Mapeie sexo para 'M' ou 'F'. Se vier desconhecido, omita sex e não envie valor nulo.
- **Alergias:** Envie a lista completa de alergias; se vazia, envie um array vazio []. Não deduza alergias.
- **Medicamentos:** Para cada item, preencha name com nome_normalizado; inclua rxnorm/atc quando presentes; preencha route com via; dose.value com dose_valor e dose.unit com dose_unidade; frequency com frequencia_padrao. Não substitua dose_unidade.
- **Contexto:** Inclua diagnoses da entrada quando presentes; care_setting=ICU se contexto.servico contiver 'UTI', caso contrário 'Ward'.
- **Rounding:** Arredonde weight_kg para 1 casa decimal; mantenha dose.value como número com no máximo 2 casas decimais.
- **Acionamento:** Só gere payload quando requires_interaction_check=true; caso contrário, retorne um objeto vazio {}.
- **Ordenação:** Ordene medications pelo campo name ascendente para saídas estáveis.

# 4. Exemplo de Output que você deve produzir
{
  "patient": {
    "age": 0,
    "sex": "M|F",
    "weight_kg": 0,
    "eGFR": 0,
    "hepatic_function": "A|B|C",
    "allergies": [
      "penicillin",
      "..."
    ]
  },
  "medications": [
    {
      "name": "",
      "rxnorm": "",
      "atc": "",
      "route": "VO|IV|...",
      "dose": {
        "value": 0,
        "unit": "mg|g|mcg|mL|U"
      },
      "frequency": "q8h|BID|..."
    }
  ],
  "context": {
    "diagnoses": [
      ""
    ],
    "care_setting": "ICU|Ward"
  }
} 
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), somente se a flag requires_interaction_check for verdadeira.
  • Tipo do input: Este agente deve ser apto a receber como input um JSON contendo a prescrição normalizada do paciente.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 3.500 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON estruturado conforme o schema da API de base de fármacos, pronto para a chamada externa.
  • Exemplo de Estrutura de Output:
     {
      "patient": {
        "age": 0,
        "sex": "M|F",
        "weight_kg": 0,
        "eGFR": 0,
        "hepatic_function": "A|B|C",
        "allergies": [
          "penicillin",
          "..."
        ]
      },
      "medications": [
        {
          "name": "",
          "rxnorm": "",
          "atc": "",
          "route": "VO|IV|...",
          "dose": {
            "value": 0,
            "unit": "mg|g|mcg|mL|U"
          },
          "frequency": "q8h|BID|..."
        }
      ],
      "context": {
        "diagnoses": [
          ""
        ],
        "care_setting": "ICU|Ward"
      }
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.500 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 Execução de Chamada à API - Base de Fármacos (RF 3).

RF 3. Agente de Execução de Chamada à API - Base de Fármacos

3.1 Tarefa do Agente

Realizar chamada à API do Sistema Base de Fármacos para obter análise de interações, alergias, duplicidade e checagem de dose.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um payload JSON pronto para ser enviado à API do Sistema Base de Fármacos. Este payload contém informações detalhadas sobre o paciente e a prescrição médica.

# 2. Objetivo
Realizar chamada à API do Sistema Base de Fármacos para obter análise de interações, alergias, duplicidade e checagem de dose.

# 3. Regras que você deve seguir para gerar sua resposta
- Este agente não precisa de instruções para LLM, pois sua única função é executar a chamada à API cujo payload ele já recebe pronto.

# 4. Exemplo de Output que você deve produzir
Dados recuperados na chamada à API contendo lista de issues por medicamento (interaction_severity, interaction_pairs, max_dose, renal_adjustment, hepatic_adjustment, duplicate_therapy, allergy_contraindication, route_mismatch, warnings). 
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), somente se a flag requires_interaction_check for verdadeira.
  • Tipo do input: Este agente deve ser apto a receber como input um payload JSON estruturado para a chamada à API de base de fármacos.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 2.500 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser os dados recuperados na chamada à API, contendo uma lista de issues por medicamento, conforme descrito no exemplo de output.
  • Exemplo de Estrutura de Output: Dados recuperados na chamada à API contendo lista de issues por medicamento (interaction_severity, interaction_pairs, max_dose, renal_adjustment, hepatic_adjustment, duplicate_therapy, allergy_contraindication, route_mismatch, warnings).
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 4.000 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: Não se aplica (uso de ferramenta)

3.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: O agente deverá enviar o JSON recebido para a API externa do Sistema Base de Fármacos e retornar os dados recebidos como resposta.

3.3.5 Memória

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

Ao concluir sua execução, esse agente aciona o Agente de Análise Clínica da Prescrição (RF 4).

RF 4. Agente de Análise Clínica da Prescrição

4.1 Tarefa do Agente

Analisar o retorno da Base de Fármacos e qualificar discrepâncias de dose, interações e alergias, com recomendações acionáveis.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o retorno bruto da API da Base de Fármacos e o JSON normalizado da prescrição.

# 2. Objetivo
Analisar o retorno da Base de Fármacos e qualificar discrepâncias de dose, interações e alergias, com recomendações acionáveis.

# 3. Regras que você deve seguir para gerar sua resposta
- **Classificação de severidade:** Use a severidade fornecida pela API quando existir. Na ausência, classifique: contraindicada quando houver alergia ou interação proibitiva; alta quando risco de dano significativo (ex.: dose >150% da máxima recomendada ou interação de alto risco); moderada quando exige monitorização/ajuste; baixa para observações sem impacto imediato.
- **Dose inadequada:** Compare dose_valor×frequencia contra ranges ou max_dose da API. Sinalize superdose se >110% do máximo; subdose se <80% do mínimo quando fornecido. Se houver ajustes por eGFR/Child-Pugh, recomende dose/frequência ajustadas explicitando cálculo (ex.: 'reduzir para 50% por eGFR<30').
- **Interações:** Liste interações clinicamente relevantes priorizando severidade alta/contraindicada; inclua pares_envovidos com nomes_normalizados; descreva mecanismo/efeito se fornecido; proponha acao_recomendada objetiva (substituir, ajustar_dose, monitorar com parâmetro alvo, suspender).
- **Alergias/contraindicações:** Qualquer correspondência com alergias do paciente marca severidade=contraindicada e acao_recomendada=suspender ou substituir; deixe referencia='Alergia registrada'.
- **Duplicidade terapêutica:** Utilize ATC quando disponível para detectar mesma substância (ATC idêntico nível 5) ou mesma classe (nível 4). Recomende racionalização mantendo um agente.
- **Via/forma inadequada:** Se API sinalizar route_mismatch ou paciente em NPO (quando contexto indicar), crie problema via_inadequada com sugestão de via alternativa segura.
- **Dados incompletos:** Se integridade_minima_ok=false em qualquer item, ou se peso/eGFR/duração ausentes impactarem cálculo, crie problema dados_incompletos (severidade baixa ou moderada conforme impacto) listando campos faltantes.
- **Rastreabilidade/Referências:** Preencha referencia com texto curto ('Monografia API', 'Diretriz institucional'); quando ajustar dose, inclua a regra aplicada no texto.
- **Cálculo do resumo:** qtde_itens_com_problema=contagem de itens com ao menos um problema; itens_com_alta_severidade=contagem de itens com problema severidade alta ou contraindicada.
- **Ordenação e consistência:** Ordene problemas por severidade (contraindicada>alta>moderada>baixa) e, dentro da severidade, por nome do medicamento ascendente. O relatorio_markdown deve listar primeiro os problemas contraindicada/alta.

# 4. Exemplo de Output que você deve produzir
{
  "analise_clinica": {
    "itens": [
      {
        "med_id": {
          "rxnorm": ""
        },
        "problemas": [
          {
            "tipo": "interacao|dose_inadequada|alergia|duplicidade|via_inadequada|dados_incompletos|outro",
            "severidade": "baixa|moderada|alta|contraindicada",
            "descricao": "",
            "pares_envovidos": [
              "med1",
              "med2"
            ],
            "acao_recomendada": "ajustar_dose|substituir|monitorar|suspender",
            "referencia": ""
          }
        ]
      }
    ],
    "resumo": {
      "qtde_itens_com_problema": 0,
      "itens_com_alta_severidade": 0
    }
  },
  "relatorio_markdown": "# Avaliação Clínica da Prescrição\n..."
} 
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 dois artefatos como input: o retorno bruto da API da Base de Fármacos e o JSON normalizado da prescrição.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar uma soma de inputs de até 8.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON estruturado contendo a análise clínica da prescrição, conforme o exemplo fornecido.
  • Exemplo de Estrutura de Output:
     {
      "analise_clinica": {
        "itens": [
          {
            "med_id": {
              "rxnorm": ""
            },
            "problemas": [
              {
                "tipo": "interacao|dose_inadequada|alergia|duplicidade|via_inadequada|dados_incompletos|outro",
                "severidade": "baixa|moderada|alta|contraindicada",
                "descricao": "",
                "pares_envovidos": [
                  "med1",
                  "med2"
                ],
                "acao_recomendada": "ajustar_dose|substituir|monitorar|suspender",
                "referencia": ""
              }
            ]
          }
        ],
        "resumo": {
          "qtde_itens_com_problema": 0,
          "itens_com_alta_severidade": 0
        }
      },
      "relatorio_markdown": "# Avaliação Clínica da Prescrição\n..."
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 4.500 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

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

Ao concluir sua execução, esse agente aciona o Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5).

RF 5. Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos

5.1 Tarefa do Agente

Preparar o payload para consulta de saldo e posição de estoque dos medicamentos prescritos no sistema de farmácia/ERP.

5.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON normalizado da prescrição, contendo as quantidades necessárias para 24 horas de cada medicamento.

# 2. Objetivo
Preparar o payload para consulta de saldo e posição de estoque dos medicamentos prescritos no sistema de farmácia/ERP.

# 3. Regras que você deve seguir para gerar sua resposta
- **Horizonte de consumo:** Defina horizonte_horas=24 por padrão quando não especificado no contexto; se contexto solicitar outro horizonte numérico válido, utilize-o.
- **Cálculo de necessidade 24h:** Converta frequencia_padrao em número de administrações por 24h: q4h→6; q6h→4; q8h→3; q12h→2; q24h→1; BID→2; TID→3; QID→4; STAT/PRN→0 (não quantificável). quantidade_necessaria_unidade = dose_valor × administrações_no_horizonte. Arredonde para 2 casas decimais em mg/mL e para inteiros em U quando apropriado.
- **Identificadores:** Preencha codigo.rxnorm/atc quando existirem; caso contrário, deixe vazio e preencha nome com nome_normalizado.
- **Unidade:** Copie dose_unidade para unidade; não converta massa↔volume neste ponto.
- **Setor:** Use setor=Farmacia_Central quando contexto.servico ausente; se contexto.servico contiver 'UTI', use UTI_A (placeholder) mantendo padrão do hospital quando existir no input.
- **Acionamento:** Só gere payload quando requires_stock_check=true; caso contrário, retorne {}.
- **Ordenação:** Ordene items por nome ascendente.

# 4. Exemplo de Output que você deve produzir
{
  "items": [
    {
      "codigo": {
        "rxnorm": "",
        "atc": ""
      },
      "nome": "",
      "quantidade_necessaria_unidade": 0,
      "unidade": "mg|mL|U",
      "horizonte_horas": 24
    }
  ],
  "setor": "Farmacia_Central|UTI_A|Enfermaria_B"
} 
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), somente se a flag requires_stock_check for verdadeira.
  • Tipo do input: Este agente deve ser apto a receber como input um JSON normalizado da prescrição, contendo as quantidades necessárias para 24 horas de cada medicamento.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 3.500 caracteres.

5.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON estruturado conforme o schema do sistema de farmácia/ERP, pronto para a chamada externa.
  • Exemplo de Estrutura de Output:
     {
      "items": [
        {
          "codigo": {
            "rxnorm": "",
            "atc": ""
          },
          "nome": "",
          "quantidade_necessaria_unidade": 0,
          "unidade": "mg|mL|U",
          "horizonte_horas": 24
        }
      ],
      "setor": "Farmacia_Central|UTI_A|Enfermaria_B"
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 2.500 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

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

Ao concluir sua execução, esse agente aciona o Agente de Execução de Chamada à API - ERP/Estoque Farmácia (RF 6).

RF 6. Agente de Execução de Chamada à API - ERP/Estoque Farmácia

6.1 Tarefa do Agente

Realizar chamada à API do ERP/Farmácia para obter saldos, lotes e pontos de ressuprimento.

6.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um payload JSON pronto para ser enviado à API do ERP/Farmácia. Este payload contém informações detalhadas sobre as quantidades necessárias de cada medicamento para 24 horas.

# 2. Objetivo
Realizar chamada à API do ERP/Farmácia para obter saldos, lotes e pontos de ressuprimento.

# 3. Regras que você deve seguir para gerar sua resposta
- Este agente não precisa de instruções para LLM, pois sua única função é executar a chamada à API cujo payload ele já recebe pronto.

# 4. Exemplo de Output que você deve produzir
Dados brutos de estoque por item (saldo_atual, unidade, ponto_pedido, lote, validade, localizacao, status_compra_em_andamento). 
6.3 Configurações do Agente

6.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 5), somente se a flag requires_stock_check for verdadeira.
  • Tipo do input: Este agente deve ser apto a receber como input um payload JSON estruturado para a chamada à API do ERP/Farmácia.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 2.500 caracteres.

6.3.2 Especificação do Output

  • Formato de output: O output deve ser os dados brutos de estoque por item, conforme descrito no exemplo de output.
  • Exemplo de Estrutura de Output: Dados brutos de estoque por item (saldo_atual, unidade, ponto_pedido, lote, validade, localizacao, status_compra_em_andamento).
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 4.000 caracteres.

6.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: Não se aplica (uso de ferramenta)

6.3.4 Ferramentas do Agente

  • Documentos: Não consulta.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: O agente deverá enviar o JSON recebido para a API externa do ERP/Farmácia e retornar os dados recebidos como resposta.

6.3.5 Memória

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

Ao concluir sua execução, esse agente aciona o Agente de Reconciliação de Estoque e Sugestões (RF 7).

RF 7. Agente de Reconciliação de Estoque e Sugestões

7.1 Tarefa do Agente

Comparar necessidade estimada com posição de estoque e sugerir ações (dispensação, fracionamento, substituição terapêutica equivalente ou acionamento de ressuprimento).

7.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo o retorno bruto da API de estoque e o JSON normalizado da prescrição com quantidades necessárias para 24 horas.

# 2. Objetivo
Comparar necessidade estimada com posição de estoque e sugerir ações (dispensação, fracionamento, substituição terapêutica equivalente ou acionamento de ressuprimento).

# 3. Regras que você deve seguir para gerar sua resposta
- **Alinhamento de unidades:** Compare saldo com necessario_24h somente quando unidade coincidir; se unidade divergir, registre observacao informando incompatibilidade e defina status com base na melhor equivalência óbvia (ex.: mesma substância com apresentação diferente), caso contrário trate como indisponivel.
- **Classificação de status:** disponivel se saldo>=necessario_24h; baixo se 00, sem acionar ressuprimento automático.

# 4. Exemplo de Output que você deve produzir
{
  "estoque": {
    "itens": [
      {
        "nome": "",
        "necessario_24h": 0,
        "saldo": 0,
        "status": "disponivel|baixo|indisponivel",
        "acao": "dispensar|fracionar|substituir|ressuprir",
        "observacao": ""
      }
    ]
  },
  "relatorio_markdown": "# Status de Estoque\n..."
} 
7.3 Configurações do Agente

7.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 6).
  • Tipo do input: Este agente deve ser apto a receber dois artefatos como input: o retorno bruto da API de estoque e o JSON normalizado da prescrição com quantidades necessárias para 24 horas.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs nos formatos: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar uma soma de inputs de até 8.000 caracteres.

7.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON estruturado contendo a reconciliação de estoque e sugestões de ação, conforme o exemplo fornecido.
  • Exemplo de Estrutura de Output:
     {
      "estoque": {
        "itens": [
          {
            "nome": "",
            "necessario_24h": 0,
            "saldo": 0,
            "status": "disponivel|baixo|indisponivel",
            "acao": "dispensar|fracionar|substituir|ressuprir",
            "observacao": ""
          }
        ]
      },
      "relatorio_markdown": "# Status de Estoque\n..."
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 4.500 caracteres.

7.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

7.3.4 Ferramentas do Agente

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

7.3.5 Memória

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

Ao concluir sua execução, esse agente aciona o Agente de Síntese Final e Geração de Alertas (RF 8).

RF 8. Agente de Síntese Final e Geração de Alertas

8.1 Tarefa do Agente

Unificar análise clínica e reconciliação de estoque em um output final estruturado e mensagem de alerta para a equipe.

8.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a saída do Agente de Análise Clínica da Prescrição e a saída do Agente de Reconciliação de Estoque.

# 2. Objetivo
Unificar análise clínica e reconciliação de estoque em um output final estruturado e mensagem de alerta para a equipe.

# 3. Regras que você deve seguir para gerar sua resposta
- **Unificação de achados:** Concatene problemas clínicos e de estoque em alertas; deduplicate por (item, tipo, descricao) mantendo a maior severidade.
- **prescricao_valida:** false se existir qualquer alerta clinico com severidade alta ou contraindicada; true caso contrário.
- **Prioridades:** prioridade=alta para severidade contraindicada/alta e para estoque indisponivel de medicamentos críticos (quando descritos como tal pelo sistema/diagnóstico); prioridade=media para baixo estoque e severidade moderada; prioridade=baixa para ajustes menores/observações.
- **Tradução de recomendações→ações:** Converta recomendações em acoes_operacionais concretas (ex.: ajustar_dose com novo regime; substituir por equivalente; ressuprir com abertura de requisição; dispensar quando suficiente em estoque).
- **Mensagem markdown:** Estruture em seções fixas: 1) Resumo Executivo (status prescricao_valida); 2) Achados Clínicos (ordenados por severidade desc); 3) Status de Estoque (indisponível→baixo→disponível); 4) Ações Recomendadas (com prioridade). Liste primeiro contraindicada/alta.
- **Campos obrigatórios:** Cada alerta deve conter tipo, severidade, descricao e acao_recomendada. Cada ação operacional deve conter item, acao e prioridade.
- **Consistência de nomes:** Use sempre nome_normalizado dos itens ao referenciar os medicamentos na mensagem e nas acoes_operacionais.

# 4. Exemplo de Output que você deve produzir
{
  "resultado_final": {
    "prescricao_valida": true,
    "alertas": [
      {
        "tipo": "clinico|estoque",
        "severidade": "baixa|moderada|alta|contraindicada",
        "descricao": "",
        "acao_recomendada": ""
      }
    ],
    "acoes_operacionais": [
      {
        "item": "",
        "acao": "dispensar|ajustar_dose|substituir|ressuprir",
        "prioridade": "alta|media|baixa"
      }
    ]
  },
  "mensagem_markdown": "# Alertas da Prescrição\n..."
} 
8.3 Configurações do Agente

8.3.1 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão do agente anterior (RF 7).
  • Tipo do input: Este agente deve ser apto a receber dois artefatos como input: a saída do Agente de Análise Clínica da Prescrição e a saída do Agente de Reconciliação de Estoque.
  • Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato: .json (JSON).
  • Número de caracteres esperado: Este agente deve ter capacidade para processar uma soma de inputs de até 8.000 caracteres.

8.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON estruturado contendo o resultado final da análise clínica e de estoque, além de uma mensagem de alerta em formato markdown.
  • Exemplo de Estrutura de Output:
     {
      "resultado_final": {
        "prescricao_valida": true,
        "alertas": [
          {
            "tipo": "clinico|estoque",
            "severidade": "baixa|moderada|alta|contraindicada",
            "descricao": "",
            "acao_recomendada": ""
          }
        ],
        "acoes_operacionais": [
          {
            "item": "",
            "acao": "dispensar|ajustar_dose|substituir|ressuprir",
            "prioridade": "alta|media|baixa"
          }
        ]
      },
      "mensagem_markdown": "# Alertas da Prescrição\n..."
    } 
  • Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 4.500 caracteres.

8.3.3 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

8.3.4 Ferramentas do Agente

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

8.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
  • Visibilidade da Resposta: A resposta (JSON final) é o entregável final e não é passada para outros agentes internos.

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

A execução deste agente finaliza o fluxo. O resultado final é disponibilizado para a equipe médica e de farmácia.

© 2025 prototipe.ai. Todos os direitos reservados.