Agente de IA para Prevenção de Erros de Medicação em Internação

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

Como criar um agente de IA que analisa prescrições médicas e prontuários para identificar potenciais erros de medicação.

1. Propósito e Escopo

Este documento define todos os prompts, configurações de memória, transição entre estados, ferramentas como busca online e demais requisitos funcionais para o Fluxo de Agentes "Prevenção de Erros de Medicação em Internação", uma solução de automação voltada para identificar potenciais erros de medicação e sugerir correções. Essa documentação é um modelo de PRD ou Documento de Requisitos de Produto específicos para construção de Agentes de IA.

O objetivo é analisar prescrições médicas e prontuários para identificar possíveis erros de medicação e sugerir alternativas seguras, atualizando as recomendações conforme novas diretrizes de segurança e farmacologia.

2. Contexto e Problema

Cenário Atual

No ambiente hospitalar, erros de medicação são um risco constante que pode levar a incidentes adversos graves. A complexidade das prescrições médicas e a necessidade de atualização contínua com as diretrizes mais recentes tornam a prevenção de erros um desafio significativo.

  • Identificação de potenciais erros de medicação para prevenir incidentes adversos.
  • Análise de prescrições e prontuários médicos para detectar inconsistências.

Problemas Identificados

  • Risco elevado de incidentes adversos: Erros de medicação podem resultar em danos significativos aos pacientes.
  • Falta de padronização: As práticas de prescrição variam amplamente, aumentando o potencial para erros.
  • Atualização constante: Diretrizes de segurança e farmacologia evoluem rapidamente, exigindo adaptações frequentes.

3. Impactos Esperados

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

  • Reduzir a incidência de erros de medicação em pelo menos 50%.
  • Aumentar a segurança do paciente através de recomendações baseadas em diretrizes atualizadas.
  • Padronizar a análise de prescrições e prontuários médicos.

4. Visão Geral da Solução

O agente de IA para prevenção de erros de medicação em internação analisa prescrições médicas e prontuários para identificar potenciais erros e sugere correções baseadas nas diretrizes mais recentes. 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 prevenção de erros de medicação.

A solução envolve um fluxo de automação com 4 agentes de IA. O processo inicia com a extração e normalização de dados de prescrições e prontuários e termina com a geração de um plano de ação estruturado para o time assistencial.

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

Agentes Função Principal
Agente de Extração e Normalização de Prescrições e Prontuários (RF 1) Extrair e normalizar dados clínicos e de medicamentos de prescrições e prontuários.
Agente de Avaliação de Segurança de Medicação (RF 2) Detectar potenciais erros de medicação e emitir recomendações acionáveis.
Agente de Busca Online (RF 3) Realizar busca online por diretrizes clínicas atualizadas e alertas de segurança.
Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4) Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado.

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

6. Requisitos Funcionais

RF 1. Agente de Extração e Normalização de Prescrições e Prontuários

1.1 Tarefa do Agente

Extrair e normalizar, de documentos de prescrição e prontuário, dados clínicos e de medicamentos em um JSON estruturado e padronizado para avaliação de segurança.

1.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo texto livre da prescrição e/ou prontuário, incluindo metadados do paciente quando disponíveis.

# 2. Objetivo
Extrair e normalizar dados clínicos e de medicamentos em um JSON estruturado e padronizado para avaliação de segurança.

# 3. Regras que você deve seguir para gerar sua resposta
- Padronize unidades: converta doses para unidades base (mg, mcg, g, UI, mL) quando possível; mantenha valores originais em observacoes se houver ambiguidade.
- Mapeie nomes comerciais para princípio ativo; se múltiplos princípios, liste todos separados por “+”.
- Interprete frequência e intervalo: normalize para intervalo_h quando explícito (ex.: 8/8h => 8); se apenas “1x/dia”, defina intervalo_h=24.
- Extraia via e forma farmacêutica; se ausentes, deixe null e registre em lacunas_dados.
- Identifique PRN por termos como “se dor”, “se necessário”, “S/N”, “PRN”.
- Concilie duplicidades de linhas iguais (mesmo princípio, via, intervalo): mantenha uma entrada somando doses se for claramente aditivo; caso contrário, preserve linhas separadas.
- Contexto clínico: calcule tfg_ml_min_1_73 se idade, sexo e creatinina estiverem disponíveis; se não, não estime e registre lacuna.
- Alergias: normalize para substâncias (ex.: “dipirona”, “penicilina”); se apenas classe (ex.: “beta-lactâmico”), mantenha termo como está.
- Sinais vitais e laboratórios: normalize valores numéricos, removendo textos extras; se valores fora de formato numérico, mantenha null e anote lacuna.
- Não invente dados: se não constar no input, deixe null e descreva a lacuna explicitamente em lacunas_dados.
- Garanta JSON válido, com todos os campos previstos, mesmo quando null.
- idiomas/abreviações: interprete termos médicos comuns em PT-BR; mantenha grafias originais de medicamentos, sem corrigir marcações não ambíguas. 
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 texto livre da prescrição e/ou prontuário 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 texto na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: Texto livre da prescrição e/ou prontuário, incluindo metadados do paciente quando disponíveis.
  • Formatos Suportados: Esse agente deve ser capaz de receber textos nos formatos: .txt, .docx, .pdf.
  • 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 e padronizado para avaliação de segurança.
  • Exemplo de Estrutura de Output:
     { "paciente": { "idade_anos": number|null, "peso_kg": number|null, "altura_cm": number|null, "sexo": "M"|"F"|"outro"|null, "gestacao": boolean|null, "lactacao": boolean|null, "alergias": ["substancia"], "insuficiencia_renal": boolean|null, "tfg_ml_min_1_73": number|null, "insuficiencia_hepatica": "leve"|"moderada"|"grave"|null }, "contexto_clinico": { "diagnosticos": ["CID10_opcional_ou_texto"], "sinais_vitais": {"pa_mmHg": "120x80"|null, "fc_bpm": number|null, "fr_irpm": number|null, "temp_c": number|null }, "laboratoriais": { "k_mEq_l": number|null, "mg_mg_dl": number|null, "na_mEq_l": number|null, "creatinina_mg_dl": number|null, "alt_u_l": number|null, "ast_u_l": number|null, "inr": number|null, "tsh_u_ui_ml": number|null } }, "historico_medicamentos": [ { "principio_ativo": "string", "dose_valor": number|null, "dose_unidade": "mg|mcg|g|UI|mL|gotas|%|unidade"|null, "frequencia": "1x/dia|12/12h|8/8h|sob demanda"|null } ], "prescricoes": [ { "linha_id": "string", "medicamento": "nome comercial ou genérico", "principio_ativo": "string", "forma_farmaceutica": "comprimido|cápsula|solução|suspensão|ampola|pomada|outro", "via": "VO|IV|IM|SC|SL|Tópica|Inalatória|Oftálmica|Otológica|Retal|Vaginal|SNG|Outras", "dose_valor": number|null, "dose_unidade": "mg|mcg|g|UI|mL|gotas|%|unidade"|null, "intervalo_h": number|null, "frequencia_texto": "string|null", "duracao_dias": number|null, "prn": boolean, "indicacao": "string|null", "horarios": ["HH:MM"]|[], "observacoes": "string|null" } ], "lacunas_dados": ["peso_kg ausente", "tfg ausente", "alergias não informadas"] }
  • Número de caracteres esperado: O JSON final deve ser conciso e informativo, com um tamanho estimado em torno de 5.000 caracteres, podendo variar conforme a complexidade do input.

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 Avaliação de Segurança de Medicação (RF 2).

RF 2. Agente de Avaliação de Segurança de Medicação

2.1 Tarefa do Agente

Detectar potenciais erros de medicação, inconsistências e riscos clínicos com base no JSON estruturado e emitir recomendações acionáveis.

2.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um JSON estruturado com dados clínicos e de medicamentos.

# 2. Objetivo
Detectar potenciais erros de medicação, inconsistências e riscos clínicos e emitir recomendações acionáveis.

# 3. Regras que você deve seguir para gerar sua resposta
- Dose por peso/idade: quando peso e faixa etária estiverem disponíveis, calcule dose mg/kg e compare com faixas recomendadas; sinalize quando <50% do mínimo ou >120% do máximo usual.
- Limites máximos diários: avalie soma de todas as doses de um mesmo princípio ativo; sinalize se exceder limite diário padrão para adultos ou pediatria.
- Ajuste renal: se tfg_ml_min_1_73 < 60, aplique regra de ajuste por princípio (ex.: reduzir dose ou aumentar intervalo); se TFG ausente e medicamento é renoexcretado, registre lacuna_critica e recomendação de coletar creatinina.
- Ajuste hepático: se insuficiencia_hepatica moderada/grave e fármaco hepatotóxico/metabolizado via hepática, recomende redução/suspensão conforme gravidade.
- Duplicidade terapêutica: identifique combinações com mesmo mecanismo/classe (ex.: dois AINEs, dois IECA/BRAs, dupla estatina); recomende manter apenas um, justificando.
- Interações: classifique como contraindicada/maior/moderada com base em mecanismos comuns (QT, serotonina, 3A4/2D6, hipercalemia); descreva o par envolvido e a consequência clínica esperada; proponha alternativa ou monitoramento.
- Alergia/hipersensibilidade: se princípio ativo ou classe consta em alergias, marque severidade contraindicada e recomende substituição segura.
- Contraindicações por condição: gestação/lactação, idosos (critérios de Beers), pediatria (restrições etárias), comorbidades (ex.: asma + betabloqueador não seletivo); sinalize e proponha alternativa.
- Via/forma incompatível: valide coerência entre via e forma (ex.: comprimido não triturável via SNG; EV rápida para medicação que exige infusão lenta).
- Dilução/velocidade de infusão: para fármacos IV, verifique se velocidade mínima usual foi respeitada; se ausente, recomende especificar taxa.
- Frequência/intervalo: converta frequência textual e avalie se intervalo_h é compatível com meia-vida e recomendações usuais; sinalize subdosagem/superdosagem por intervalo inadequado.
- Duração do tratamento: antimicrobianos, corticoterapia e anticoagulação devem ter duração definida; identifique duração excessiva ou ausente e recomende prazo.
- Riscos específicos: QT prolongado (múltiplos fármacos com risco + eletrólitos baixos), síndrome serotoninérgica (ISRS + triptanos/IMAO/tramadol), hipercalemia (IECA/ARA + espironolactona + K alto), sangramento (anticoagulantes + antiagregantes), hipoglicemia (insulinas/sulfonilureias).
- Monitoramento necessário: quando risco moderado exigir acompanhamento, especifique alvo e periodicidade (ex.: “monitorar INR 2-3, reavaliar em 48-72h”).
- Classificação e prioridade: priorize 1 para risco de dano grave iminente; 2 para risco clínico relevante; 3 para oportunidade de otimização.
- Atualização de diretrizes: se o caso envolver terapias dependentes de recomendações dinâmicas (ex.: antimicrobianos locais, alertas novos de segurança), defina necessita_atualizacao_diretrizes=true e liste topicos_para_atualizacao.
- Explique cada alerta em linguagem clínica objetiva, mencionando a regra aplicada; evite jargões não médicos ou vagos.
- Não prescreva em nome do médico: formule recomendações como propostas claras e verificáveis. 
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 estruturado com dados clínicos e de medicamentos.
  • 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 JSON com até 5.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON com a avaliação de segurança e recomendações acionáveis.
  • Exemplo de Estrutura de Output:
     { "tem_erro": boolean, "risco_global": "alto|moderado|baixo", "erros_identificados": [ { "id": "string", "tipo": "dose_inapropriada|frequencia_inadequada|ajuste_renal_necessario|ajuste_hepatico_necessario|interacao_medicamentosa|duplicidade_terapeutica|alergia|contraindicacao|via_incorreta|forma_incompativel|diluicao_velocidade_inadequada|duracao_excessiva|monitoramento_necessario|uso_contraindicado_gestacao_lactacao|risco_qt|risco_serotoninergico|outros", "severidade": "contraindicada|maior|moderada|menor", "itens_afetados": ["linha_id"], "justificativa": "texto objetivo citando regra clínica aplicada", "recomendacao": "ação concreta (ex.: reduzir dose para X mg a cada Y h)", "prioridade": 1|2|3, "referencias": [ { "fonte": "string", "titulo": "string", "data": "AAAA-MM-DD" } ] } ], "lacunas_criticas": ["peso_kg ausente"], "necessita_atualizacao_diretrizes": boolean, "topicos_para_atualizacao": ["antimicrobianos_duracao", "anticoagulacao_inr", "alertas_farmacovigilancia"] }
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 3.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 cálculos de dose e ajustes.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

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 Busca Online (RF 3) se necessita_atualizacao_diretrizes for verdadeiro, caso contrário, aciona o Agente de Síntese de Recomendações Clínicas e Plano de Ação (RF 4).

RF 3. Agente de Busca Online

3.1 Tarefa do Agente

Realizar busca online por diretrizes clínicas atualizadas, alertas de segurança e recomendações farmacoterapêuticas relevantes aos princípios ativos e tópicos indicados.

3.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo uma lista de princípios ativos, condições clínicas e tópicos para busca online.

# 2. Objetivo
Realizar busca online por diretrizes clínicas atualizadas, alertas de segurança e recomendações farmacoterapêuticas.

# 3. Regras que você deve seguir para gerar sua resposta
- Este agente não precisa de instruções para chamadas ao LLM, pois sua única função é executar a busca online com parâmetros de busca que já recebe prontos. 
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) quando necessita_atualizacao_diretrizes for verdadeiro.
  • Tipo do input: Este agente deve ser apto a receber como input um JSON com princípios ativos, condições clínicas e tópicos para busca online.
  • 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 JSON com até 2.000 caracteres.

3.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON com as fontes e resumos das diretrizes clínicas encontradas.
  • Exemplo de Estrutura de Output:
     { "fontes": [ { "titulo": "string", "url": "string", "fonte": "entidade/orgão", "data": "AAAA-MM-DD", "resumo": "string", "nivel_evidencia": "A|B|C|consenso" } ] }
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 1.500 caracteres.

3.3.3 Parâmetros de Geração

  • Modelo: Este agente não utiliza modelos de IA para geração de output.

3.3.4 Ferramentas do Agente

  • Documentos: Não consulta documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Executa busca online com parâmetros recebidos.
  • Sistemas Externos: Não se conecta a sistemas externos.

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 Síntese de Recomendações Clínicas e Plano de Ação (RF 4).

RF 4. Agente de Síntese de Recomendações Clínicas e Plano de Ação

4.1 Tarefa do Agente

Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado para o time assistencial.

4.2 Prompt ou Instruções do Agente
 # 1. Contexto e explicações sobre inputs iniciais
Você está recebendo a saída do Agente de Avaliação de Segurança de Medicação e, se houver, as fontes do Agente de Busca Online.

# 2. Objetivo
Consolidar os erros identificados e as referências recuperadas em um plano de ação estruturado para o time assistencial.

# 3. Regras que você deve seguir para gerar sua resposta
- Ordene o plano por prioridade (1>2>3) e impacto clínico.
- Para cada recomendação, inclua ação específica, condição de aplicação, dose/intervalo propostos ou alternativa terapêutica e quem deve executar.
- Direcione a comunicação: médico (decisões terapêuticas), farmácia (ajustes de produto, diluição, compatibilidades), enfermagem (taxas de infusão, horários, monitoramentos).
- Se não houver erros mas houver oportunidades, registre otimizações como prioridade 3.
- Se existirem lacunas_criticas, liste-as em itens_para_coleta com instruções objetivas de coleta (ex.: “dosar creatinina antes da próxima dose”).
- Utilize as fontes recuperadas quando disponíveis; se indisponíveis, mantenha recomendações baseadas em regras gerais e sinalize necessidade de validação local.
- Mantenha linguagem clara, objetiva e clínica; evitar ambiguidade e termos vagos.
- Produza JSON final coerente e consistente com chaves previstas, sem adicionar campos não definidos. 
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 ou RF 2).
  • Tipo do input: Este agente deve ser apto a receber como input a saída do Agente de Avaliação de Segurança de Medicação e, se houver, as fontes do Agente de Busca Online.
  • 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 JSON com até 8.000 caracteres.

4.3.2 Especificação do Output

  • Formato de output: O output deve ser um JSON com o plano de ação estruturado para o time assistencial.
  • Exemplo de Estrutura de Output:
     { "resumo_clinico": "string curta com principais riscos", "plano_acoes": [ { "prioridade": 1|2|3, "acao": "string concreta (ex.: reduzir dose para X mg a cada Y h)", "responsavel_sugerido": "medico|farmacia|enfermagem", "prazo": "imediato|24-48h|na alta", "justificativa": "string", "referencias_chave": ["url ou fonte"] } ], "comunicacoes": { "para_medico": "bullet points", "para_farmacia": "bullet points", "para_enfermagem": "bullet points" }, "itens_para_coleta": ["peso_kg", "creatinina_mg_dl"], "registro_decisoes": { "aceite_medico": "pendente|parcial|total", "observacoes": "string" }, "versao_regras": "v1.0" }
  • Número de caracteres esperado: O JSON gerado deve ser claro e direto, com um tamanho estimado em 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 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 são visíveis para agentes subsequentes.
  • Visibilidade da Resposta: A resposta (JSON do plano de ação) é o entregável final e não é passada para outros agentes internos.

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

A execução deste agente finaliza o fluxo. O JSON gerado é o resultado que deve ser disponibilizado ao time assistencial.

© 2025 prototipe.ai. Todos os direitos reservados.