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
- 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 Preparação para Chamada à API - Verificação de Interações e Dose (RF 2).
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_checkfor 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
- 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 Execução de Chamada à API - Base de Fármacos (RF 3).
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_checkfor 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
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Análise Clínica da Prescrição (RF 4).
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
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Preparação para Chamada à API - Consulta de Estoque de Medicamentos (RF 5).
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_checkfor 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
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Execução de Chamada à API - ERP/Estoque Farmácia (RF 6).
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_checkfor 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
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Reconciliação de Estoque e Sugestões (RF 7).
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
- Visibilidade das Instruções (Prompt): As instruções não são visíveis para agentes subsequentes.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Síntese Final e Geração de Alertas (RF 8).
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.