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, busca online, consulta a documentos e demais requisitos funcionais para o Agente de IA para Suporte na Decisão Clínica. 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 é fornecer recomendações clínicas precisas e em tempo real, integrando dados de múltiplas fontes para apoiar decisões críticas durante a internação hospitalar.
2. Contexto e Problema
Problemas Específicos
O agente de IA é projetado para resolver problemas críticos na prática clínica hospitalar, incluindo:
- Necessidade de suporte em tempo real para decisões clínicas críticas.
- Integração de dados de múltiplas fontes para recomendações precisas.
- Redução de erros de julgamento em decisões clínicas complexas.
Para enfrentar esses desafios, o agente deve ser capaz de analisar dados de diferentes fontes, priorizar recomendações com base na urgência e no impacto potencial, e garantir a integração contínua com sistemas hospitalares para acesso a dados atualizados.
3. Impactos Esperados
A implementação deste agente de IA visa alcançar os seguintes resultados:
- Melhoria na precisão das decisões clínicas com recomendações baseadas em dados.
- Integração contínua com sistemas hospitalares para dados atualizados em tempo real.
- Redução de erros clínicos através de análises de dados integradas e recomendações prioritárias.
- Apoio em tempo real durante a internação hospitalar, permitindo respostas rápidas a situações críticas.
4. Visão Geral da Solução
O agente de IA para suporte na decisão clínica processa dados de múltiplas fontes, aplica regras clínicas pré-definidas e fornece recomendações em tempo real para apoiar decisões durante a internação 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 no suporte à decisão clínica.
A solução consiste em um fluxo de automação composto por 5 agentes de IA. O processo inicia com a execução de chamadas às APIs dos sistemas clínicos para obtenção de dados atualizados e termina com a geração de recomendações clínicas priorizadas.
A execução dos agentes é sequencial, 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 Execução de Chamada à API de Sistemas Clínicos (RF 1)
| Realizar chamadas às APIs dos sistemas hospitalares para recuperar dados clínicos atualizados do paciente. |
Agente de Normalização e Integração de Dados Clínicos (RF 2)
| Padronizar e consolidar dados clínicos multi-fontes em um contexto único do paciente. |
Agente de Estratificação de Risco e Sinais de Alarme (RF 3)
| Calcular escores de risco, identificar sinais de alarme e listar dados críticos ausentes. |
Agente de Execução de Consulta a Documento (RF 4)
| Recuperar trechos de protocolos e diretrizes clínicas internas para embasar recomendações. |
Agente de Síntese e Priorização de Recomendações Clínicas (RF 5)
| Produzir recomendações clínicas contextualizadas e priorizadas para apoio à decisão em tempo real. |
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 usuário receberá. Explore os links abaixo para entender melhor a solução em ação.
6. Requisitos Funcionais
RF 1. Agente de Execução de Chamada à API de Sistemas Clínicos
1.1 Tarefa do Agente
Realizar chamadas às APIs dos sistemas hospitalares (EMR/HIS, LIS, PACS, PDMS/monitores, sistemas de farmácia) para recuperar dados clínicos atualizados do paciente em janela temporal definida.
1.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados de acesso para várias APIs de sistemas hospitalares. Estes dados incluem informações de autenticação e endpoints para recuperação de informações clínicas do paciente.
# 2. Objetivo
Realizar chamadas às APIs dos sistemas hospitalares para recuperar dados clínicos atualizados do paciente em uma janela de tempo específica.
# 3. Regras que você deve seguir para gerar sua resposta
- Execute as chamadas às APIs informadas no input com os parâmetros e autenticações já fornecidos.
- Retorne os payloads sem transformação, apenas consolidando os dados conforme recebidos.
- Respeite os tempos limite e as políticas de autenticação para cada sistema.
# 4. Exemplo de Output que você deve produzir
{
"raw_data": {
"EMR": {...},
"LIS": {...},
"PACS": {...},
"PDMS": {...},
"PHARMACY": {...}
},
"fetched_at": "iso_datetime",
"latency_ms": {
"EMR": 120,
"LIS": 240,
"PACS": 310
},
"request_correlation_id": "uuid"
} 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 uma solicitação via API contendo as informações necessárias para acessar os sistemas clínicos. Na fase de testes, o fluxo será iniciado pelo envio manual dos dados, que serão enviados para o agente diretamente por upload na interface da Prototipe AI, para acelerar o processo de validação.
- Tipo do input: Dados estruturados contendo detalhes de autenticação e endpoints para APIs de sistemas clínicos.
- Formatos Suportados: Esse agente deve ser capaz de receber dados em formato JSON.
- Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
1.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON consolidando os dados recuperados de cada sistema clínico consultado.
-
Exemplo de Estrutura de Output:
{ "raw_data": { "EMR": {...}, "LIS": {...}, "PACS": {...}, "PDMS": {...}, "PHARMACY": {...} }, "fetched_at": "iso_datetime", "latency_ms": { "EMR": 120, "LIS": 240, "PACS": 310 }, "request_correlation_id": "uuid" } - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 5.000 caracteres.
1.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
1.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Executa chamadas às APIs dos sistemas hospitalares conforme especificado no input.
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 Normalização e Integração de Dados Clínicos (RF 2).
1.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Normalização e Integração de Dados Clínicos (RF 2).
RF 2. Agente de Normalização e Integração de Dados Clínicos
2.1 Tarefa do Agente
Padronizar unidades, alinhar timestamps, deduplicar e consolidar dados clínicos multi-fontes em um contexto único do paciente, com relatório de qualidade dos dados.
2.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo dados brutos de múltiplos sistemas clínicos, cada um com seu próprio formato e unidade de medida.
# 2. Objetivo
Padronizar e consolidar esses dados em um formato coeso e unificado, garantindo que todas as unidades sejam convertidas para o padrão SI e que todos os timestamps estejam alinhados corretamente.
# 3. Regras que você deve seguir para gerar sua resposta
- Converter todas as unidades para padrão SI aplicando fatores de conversão conforme necessário.
- Alinhar todos os timestamps para um único fuso horário, garantindo a consistência dos dados temporais.
- Deduplicar registros idênticos, mantendo a versão mais confiável dos dados.
- Gerar um relatório de qualidade dos dados, indicando quaisquer problemas ou inconsistências encontradas.
# 4. Exemplo de Output que você deve produzir
{
"patient_context": {"demographics": {"id": "string", "age": 0, "sex": "M|F|X"}, "vitals_last_2h": [{"type": "HR", "value": 88, "unit": "bpm", "ts": "iso_datetime", "source": "PDMS"}], "labs_last_24h": [{"analyte": "Lactato", "value": 1.8, "unit": "mmol/L", "ts": "iso_datetime", "loinc": "xxxx"}], "meds_active": [{"drug": "Norepinefrina", "dose": {"value": 0.05, "unit": "mcg/kg/min"}, "route": "IV", "status": "running"}], "allergies": ["penicilinas"], "diagnoses": [{"code": "A41.9", "system": "ICD10", "desc": "Sepsis"}], "devices": [{"type": "Ventilador", "mode": "AC-VC", "settings": {...}}]}, "data_quality_report": {"completeness": {"vitals": 0.92, "labs": 0.85}, "latency_minutes": {"vitals": 3, "labs": 45}, "plausibility_flags": [{"signal": "HR", "ts": "iso_datetime", "issue": "out_of_range", "value": 220}]}, "normalization_notes": ["Unidades convertidas para SI", "Timestamps alinhados a America/Sao_Paulo" ]} 2.3 Configurações do Agente
2.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 1).
- Tipo do input: Dados brutos estruturados em JSON, contendo informações clínicas de múltiplos sistemas.
- Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
- Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 15.000 caracteres.
2.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo o contexto unificado do paciente, incluindo dados demográficos, vitais, laboratoriais, medicamentos e dispositivos, além de um relatório de qualidade dos dados.
-
Exemplo de Estrutura de Output:
{ "patient_context": {"demographics": {"id": "string", "age": 0, "sex": "M|F|X"}, "vitals_last_2h": [{"type": "HR", "value": 88, "unit": "bpm", "ts": "iso_datetime", "source": "PDMS"}], "labs_last_24h": [{"analyte": "Lactato", "value": 1.8, "unit": "mmol/L", "ts": "iso_datetime", "loinc": "xxxx"}], "meds_active": [{"drug": "Norepinefrina", "dose": {"value": 0.05, "unit": "mcg/kg/min"}, "route": "IV", "status": "running"}], "allergies": ["penicilinas"], "diagnoses": [{"code": "A41.9", "system": "ICD10", "desc": "Sepsis"}], "devices": [{"type": "Ventilador", "mode": "AC-VC", "settings": {...}}]}, "data_quality_report": {"completeness": {"vitals": 0.92, "labs": 0.85}, "latency_minutes": {"vitals": 3, "labs": 45}, "plausibility_flags": [{"signal": "HR", "ts": "iso_datetime", "issue": "out_of_range", "value": 220}]}, "normalization_notes": ["Unidades convertidas para SI", "Timestamps alinhados a America/Sao_Paulo" ]} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 10.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 conversão de unidades e alinhamento de timestamps.
- 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 Estratificação de Risco e Sinais de Alarme (RF 3).
2.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Estratificação de Risco e Sinais de Alarme (RF 3).
RF 3. Agente de Estratificação de Risco e Sinais de Alarme
3.1 Tarefa do Agente
Calcular escores de risco clinicamente aceitos com dados disponíveis, identificar sinais de alarme e listar dados críticos ausentes que impedem avaliação adequada.
3.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um contexto clínico unificado do paciente, incluindo dados demográficos, vitais, laboratoriais e medicamentos.
# 2. Objetivo
Calcular escores de risco e identificar sinais de alarme com base nos dados disponíveis, além de listar quaisquer dados críticos ausentes que possam impactar a avaliação clínica.
# 3. Regras que você deve seguir para gerar sua resposta
- Calcular escores de risco como qSOFA e NEWS2, utilizando os dados disponíveis.
- Identificar sinais de alarme com base em thresholds clínicos predefinidos.
- Listar dados críticos ausentes que são necessários para uma avaliação completa e segura do paciente.
# 4. Exemplo de Output que você deve produzir
{
"risk_summary": {"qSOFA": {"score": 2, "components": [{"criterion": "FR>=22", "value": 28, "met": true}]}, "NEWS2": {"score": 6}}, "red_flags": [{"item": "PAM<65 mmHg", "ts": "iso_datetime", "severity": "alta"}, {"item": "Lactato>=4 mmol/L", "severity": "crítica"}], "contraindications": [{"context": "Alergia a penicilinas", "affects": ["piperacilina-tazobactam"]}], "missing_critical_data": ["PaO2/FiO2", "creatinina recente (<24h)"]} 3.3 Configurações do Agente
3.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 2).
- Tipo do input: Contexto clínico unificado do paciente em formato JSON, incluindo dados demográficos, vitais, laboratoriais e 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 até 10.000 caracteres.
3.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo o resumo dos escores de risco, sinais de alarme identificados e dados críticos ausentes.
-
Exemplo de Estrutura de Output:
{ "risk_summary": {"qSOFA": {"score": 2, "components": [{"criterion": "FR>=22", "value": 28, "met": true}]}, "NEWS2": {"score": 6}}, "red_flags": [{"item": "PAM<65 mmHg", "ts": "iso_datetime", "severity": "alta"}, {"item": "Lactato>=4 mmol/L", "severity": "crítica"}], "contraindications": [{"context": "Alergia a penicilinas", "affects": ["piperacilina-tazobactam"]}], "missing_critical_data": ["PaO2/FiO2", "creatinina recente (<24h)"]} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 5.000 caracteres.
3.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
3.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para cálculo de escores de risco e identificação de sinais de alarme.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
3.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Execução de Consulta a Documento (RF 4).
3.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Execução de Consulta a Documento (RF 4).
RF 4. Agente de Execução de Consulta a Documento
4.1 Tarefa do Agente
Recuperar trechos de protocolos e diretrizes clínicas internas para embasar recomendações ao caso atual.
4.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo consultas pré-definidas relacionadas a protocolos e diretrizes clínicas internas, junto com o identificador do corpus a ser consultado.
# 2. Objetivo
Executar consultas no corpus interno de diretrizes clínicas para recuperar trechos relevantes que embasem as recomendações clínicas.
# 3. Regras que você deve seguir para gerar sua resposta
- Execute as consultas no corpus indicado com os parâmetros recebidos.
- Retorne os trechos encontrados com metadados, sem síntese ou interpretação adicional.
# 4. Exemplo de Output que você deve produzir
{
"evidence_snippets": [{"title": "Protocolo de Sepse 2023", "section": "Antibióticos iniciais", "snippet": "Iniciar antibiótico de amplo espectro em até 1h...", "source_id": "doc_123", "url": "interna://...", "year": 2023}], "queries_executed": ["manejo de sepse em UTI"], "corpus_id": "diretrizes_hospitalares_v1"} 4.3 Configurações do Agente
4.3.1 Especificação do Input
- Mecanismo de Acionamento: Este agente deve ser acionado automaticamente após a conclusão bem-sucedida do agente anterior (RF 3).
- Tipo do input: Consultas pré-definidas em formato JSON, incluindo identificador do corpus e parâmetros de filtro.
- Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
- Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 5.000 caracteres.
4.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo trechos de evidências clínicas recuperados, com metadados completos.
-
Exemplo de Estrutura de Output:
{ "evidence_snippets": [{"title": "Protocolo de Sepse 2023", "section": "Antibióticos iniciais", "snippet": "Iniciar antibiótico de amplo espectro em até 1h...", "source_id": "doc_123", "url": "interna://...", "year": 2023}], "queries_executed": ["manejo de sepse em UTI"], "corpus_id": "diretrizes_hospitalares_v1"} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 3.000 caracteres.
4.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
4.3.4 Ferramentas do Agente
- Documentos: Executa consultas em um corpus interno de diretrizes clínicas.
- Calculadora: Não utiliza.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
4.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Síntese e Priorização de Recomendações Clínicas (RF 5).
4.3.6 Regras de Orquestração e Transição
Ao concluir sua execução, esse agente aciona o Agente de Síntese e Priorização de Recomendações Clínicas (RF 5).
RF 5. Agente de Síntese e Priorização de Recomendações Clínicas
5.1 Tarefa do Agente
Produzir recomendações clínicas contextualizadas e priorizadas para apoio à decisão em tempo real, incluindo justificativas, citações e requisitos de monitorização.
5.2 Prompt ou Instruções do Agente
# 1. Contexto e explicações sobre inputs iniciais
Você está recebendo um conjunto de dados clínicos, escores de risco, sinais de alarme e trechos de evidências para apoiar a geração de recomendações clínicas.
# 2. Objetivo
Produzir recomendações clínicas contextualizadas e priorizadas, incluindo justificativas baseadas em dados e diretrizes clínicas.
# 3. Regras que você deve seguir para gerar sua resposta
- Gerar recomendações apenas com base em dados presentes nos inputs recebidos.
- Priorizar as recomendações com base na urgência clínica e no impacto potencial.
- Incluir justificativas, citações de evidências e requisitos de monitorização para cada recomendação.
# 4. Exemplo de Output que você deve produzir
{
"recommendations": [{"id": "REC-001", "title": "Reanimação volêmica cautelosa", "priority": "alta", "actions": ["Avaliar resposta a 250-500 mL de cristaloide"], "rationale": "PAM<65 mmHg e lactato elevado", "prerequisites": ["Acesso venoso pérvio"], "monitoring_plan": ["Reavaliar PAM e lactato em 30-60 min"], "contraindications_considered": ["Sobrecarga hídrica"], "sources": [{"title": "Protocolo de Sepse 2023", "source_id": "doc_123", "year": 2023}], "confidence": 0.78, "time_critical_window_min": 60, "expected_benefit": "Melhora de perfusão", "potential_harm": "Edema pulmonar", "human_approval_required": true}], "disclaimers": ["Conteúdo destinado a apoio à decisão; não substitui julgamento clínico."]} 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 bem-sucedida do agente anterior (RF 4).
- Tipo do input: Dados clínicos, escores de risco, sinais de alarme e evidências em formato JSON.
- Formatos Suportados: Esse agente deve ser capaz de receber inputs no formato JSON.
- Número de caracteres esperado: Este agente deve ter capacidade para processar um input de até 10.000 caracteres.
5.3.2 Especificação do Output
- Formato de output: O output deve ser um JSON contendo recomendações clínicas contextualizadas e priorizadas, com justificativas, citações e requisitos de monitorização.
-
Exemplo de Estrutura de Output:
{ "recommendations": [{"id": "REC-001", "title": "Reanimação volêmica cautelosa", "priority": "alta", "actions": ["Avaliar resposta a 250-500 mL de cristaloide"], "rationale": "PAM<65 mmHg e lactato elevado", "prerequisites": ["Acesso venoso pérvio"], "monitoring_plan": ["Reavaliar PAM e lactato em 30-60 min"], "contraindications_considered": ["Sobrecarga hídrica"], "sources": [{"title": "Protocolo de Sepse 2023", "source_id": "doc_123", "year": 2023}], "confidence": 0.78, "time_critical_window_min": 60, "expected_benefit": "Melhora de perfusão", "potential_harm": "Edema pulmonar", "human_approval_required": true}], "disclaimers": ["Conteúdo destinado a apoio à decisão; não substitui julgamento clínico."]} - Número de caracteres esperado: O JSON gerado deve ter um tamanho estimado em torno de 8.000 caracteres.
5.3.3 Parâmetros de Geração
- Modelo: GPT-5
- Temperatura: 0.6
5.3.4 Ferramentas do Agente
- Documentos: Não consulta documentos externos.
- Calculadora: Utiliza lógica interna para cálculo de prioridades e avaliação de impacto.
- Busca Online: Não utiliza.
- Sistemas Externos: Não utiliza.
5.3.5 Memória
- Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para nenhum agente subsequente.
- Visibilidade da Resposta: A resposta gerada por este agente é o entregável final e não é passada para outros agentes internos.
5.3.6 Regras de Orquestração e Transição
A execução deste agente finaliza o fluxo. As recomendações geradas devem ser disponibilizadas ao usuário para apoio à decisão clínica.