Agente de IA para Análise de Exames de Imagem

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

Como criar um agente de IA que interpreta exames de imagem, como raios-X e tomografias, para auxiliar na identificação de anormalidades.

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 "Análise de Exames de Imagem", uma solução de automação projetada para interpretar exames de imagem, como raios-X e tomografias, auxiliando na identificação de anormalidades. 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 é utilizar técnicas avançadas de visão computacional para analisar imagens médicas, destacando automaticamente áreas suspeitas ou anormais para revisão dos radiologistas e fornecendo relatórios preliminares que devem ser validados por profissionais de saúde.

2. Contexto e Problema

Cenário Atual

O setor de radiologia enfrenta uma alta carga de trabalho, o que pode levar a atrasos no diagnóstico e a possibilidade de erros humanos na interpretação manual de exames de imagem. Este agente de IA é projetado para aliviar essas pressões, proporcionando uma análise inicial que pode ser revisada por radiologistas.


Problemas Identificados

  • Alta carga de trabalho: Radiologistas muitas vezes enfrentam um volume excessivo de exames para revisar, o que pode levar a atrasos.
  • Erros humanos: A interpretação manual de exames de imagem está sujeita a falhas, especialmente sob pressão.

3. Impactos Esperados

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

  • Reduzir o tempo de diagnóstico ao fornecer análises preliminares rápidas.
  • Diminuir a carga de trabalho dos radiologistas ao automatizar a identificação inicial de anormalidades.
  • Aumentar a precisão da interpretação de exames de imagem através de aprendizado contínuo com feedback dos radiologistas.

4. Visão Geral da Solução

O agente de IA para análise de exames de imagem utiliza técnicas avançadas de visão computacional para interpretar exames, destacando áreas suspeitas e gerando relatórios preliminares para revisão. 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 análise de exames de imagem.

A solução consiste em um fluxo de automação composto por 3 agentes de IA. O processo inicia com a extração de dados de imagem e termina com a consolidação do relatório final após revisão do radiologista.

Agentes Função Principal
Agente de Execução de Extração de Dados de Imagem (RF 1) Executar a extração técnica a partir de exames de imagem para produzir um conjunto estruturado de achados e medidas.
Agente Analítico de Interpretação de Exames de Imagem (RF 2) Interpretar achados estruturados e gerar relatório preliminar para revisão do radiologista.
Agente de Consolidação Pós-Validação Agente Condicionado (RF 3) Consolidar o relatório final após revisão e anotações do radiologista.

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 Execução de Extração de Dados de Imagem

1.1 Tarefa do Agente

Executar a etapa de extração técnica a partir de exames de imagem (raios-X, tomografia, etc.) para produzir um conjunto estruturado de achados e medidas que sirva de insumo ao agente analítico.

1.2 Prompt ou Instruções do Agente
 Este agente é exclusivamente de execução técnica de extração; não necessita de instruções a LLM. Sua única função é receber os parâmetros de extração já definidos e retornar os dados estruturados de achados e medidas para o próximo agente. 
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 arquivos de imagem 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 das imagens na interface da Prototipe AI, para acelerar o processo de validação.
  • Tipo do input: Arquivos de imagem (ex.: DICOM, JPEG, PNG) e metadados opcionais.
  • Formatos Suportados: .dcm, .jpeg, .png.
  • Número de caracteres esperado: Este agente não processa texto, apenas dados binários de imagem.

1.3.2 Especificação do Output

  • Formato de output: Objeto estruturado com achados detectados e medidas brutas.
  • Exemplo de Estrutura de Output:
     {
      "modality": "CT",
      "body_part": "torax",
      "projections": ["PA"],
      "achados": [
        {
          "regiao": "pulmao direito",
          "bounding_box": "[x1, y1, x2, y2]",
          "medidas": { "diametro": "20mm", "HU": "-800" }
        }
      ]
    } 
  • Número de caracteres esperado: O JSON gerado é tipicamente pequeno, com até 1.000 caracteres.

1.3.3 Parâmetros de Geração

  • Modelo: Não se aplica
  • Temperatura: Não se aplica

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 Analítico de Interpretação de Exames de Imagem (RF 2).

RF 2. Agente Analítico de Interpretação de Exames de Imagem

2.1 Tarefa do Agente

Interpretar achados estruturados provenientes da extração de imagens médicas, gerar relatório preliminar padronizado, sinalizar áreas suspeitas e priorização, sempre para revisão do radiologista.

2.2 Prompt ou Instruções do Agente
 - Escopo e linguagem: redigir em português do Brasil, tom técnico e objetivo, sem afirmar diagnóstico conclusivo; empregar termos como “achado sugestivo de”, “compatível com”, “não se pode excluir”.
- Inclusão de achados: considerar apenas achados com score_confiança >= 0,50. Classificar nível de certeza por limiar: >=0,90 = definitivo; 0,70–0,89 = provável; 0,50–0,69 = possível. Não listar achados com score < 0,50; se clinicamente relevantes, incluir em “considerações adicionais” como baixa probabilidade.
- Severidade e priorização: mapear achados críticos (ex.: pneumotórax moderado/alto, hemorragia intracraniana, dissecção, embolia suspeita, fratura deslocada, posicionamento inadequado de tubo endotraqueal) como prioridade stat. Se nenhum achado crítico, priorização routine. Campo triage_priority deve ser “stat” ou “routine”.
- Estrutura do JSON de saída (obrigatória):
  {
    report_version: "v1",
    modality: string,
    body_part: string,
    projections: [string],
    summary_text: string curto (<= 500 caracteres),
    triage_priority: "stat" | "routine",
    findings: [
      {
        id: string (ref. ao achado de entrada),
        label: string (ex.: consolidação, nódulo, fratura),
        location: string (ex.: lobo inferior direito, terço médio fêmur),
        laterality: "direito" | "esquerdo" | "mediano" | "bilateral" | "não aplicável",
        measurements: { unidade explícita; incluir e.g., mm, cm, HU },
        severity: "leve" | "moderado" | "severo",
        certainty_level: "definitivo" | "provável" | "possível",
        supporting_evidence: [string de padrões/achados de suporte],
        contraindications_evidence: [string],
        annotation_reference: { bbox/mask_id },
        quality_flags: [string]
      }
    ],
    differentials: [
      {
        hypothesis: string,
        rationale: string (máx. 240 caracteres),
        ranked_priority: 1|2|3
      }
    ],
    comparison_to_prior: { status: "sem_estudo_previo" | "estável" | "piorou" | "melhorou" | "indeterminado", rationale: string opcional },
    quality_and_limitations: [string],
    recommendations_next_steps: [
      { type: "imagem_complementar"|"clínico_laboratorial"|"followup_tempo", detail: string }
    ],
    annotation_instructions: [ { finding_id: string, action: "destacar", color: string } ],
    requires_radiologist_review: true,
    disclaimers: [string],
    handoff_questions: [string]
  } 
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: Objeto estruturado do Agente de Execução de Extração de Dados de Imagem.
  • Formatos Suportados: JSON estruturado.
  • Número de caracteres esperado: O input pode conter até 6.000 caracteres.

2.3.2 Especificação do Output

  • Formato de output: Relatório preliminar em JSON estruturado.
  • Exemplo de Estrutura de Output:
     {
      "report_version": "v1",
      "modality": "CT",
      "body_part": "torax",
      "projections": ["PA"],
      "summary_text": "Achado sugestivo de pneumonia no pulmão direito.",
      "triage_priority": "stat",
      "findings": [
        {
          "id": "achado_001",
          "label": "consolidação",
          "location": "lobo inferior direito",
          "laterality": "direito",
          "measurements": { "diametro": "20mm" },
          "severity": "moderado",
          "certainty_level": "provável",
          "supporting_evidence": ["imagem compatível com pneumonia"],
          "annotation_reference": { "bbox_id": "001" },
          "quality_flags": []
        }
      ],
      "requires_radiologist_review": true,
      "disclaimers": ["Este relatório é preliminar e deve ser validado por um radiologista."],
      "handoff_questions": ["Qual o próximo passo recomendado?"]
    } 
  • Número de caracteres esperado: O JSON gerado deve conter aproximadamente 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 documentos externos.
  • Calculadora: Não utiliza.
  • Busca Online: Não utiliza.
  • Sistemas Externos: Não se conecta a sistemas externos.

2.3.5 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para o próximo agente.
  • Visibilidade da Resposta: A resposta gerada por este agente deve ser visível para o Agente de Consolidação Pós-Validação (RF 3).

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

Ao concluir sua execução, esse agente aciona o Agente de Consolidação Pós-Validação (RF 3).

RF 3. Agente de Consolidação Pós-Validação

3.1 Tarefa do Agente

Consolidar o relatório final após revisão e anotações do radiologista, harmonizando ajustes e produzindo a versão final para laudo.

3.2 Prompt ou Instruções do Agente
 - Aplicar integralmente as alterações do radiologista priorizando correções clínicas sobre formatação.
- Preservar a estrutura JSON definida no relatório preliminar, adicionando campo status_final: "validado_por_radiologista" e timestamp de validação se fornecido.
- Remover disclaimers de “preliminar” se explicitamente indicado pelo radiologista; caso contrário, manter.
- Garantir consistência final de unidades, laterality, severidade e nivel de certeza.
- Se o radiologista solicitar supressão de áreas de anotação, remover correspondentes em annotation_instructions. 
3.3 Configurações do Agente

3.3.1 Condições de Ativação

Este agente é acionado somente se a seguinte condição for atendida:

  • O campo radiologista_validou_relatorio_preliminar é igual a true.

3.3.2 Especificação do Input

  • Mecanismo de Acionamento: Este agente deve ser acionado condicionalmente após a revisão do relatório preliminar pelo radiologista.
  • Tipo do input: Relatório preliminar em JSON do Agente Analítico de Interpretação + feedback/edições do radiologista.
  • Formatos Suportados: JSON estruturado e texto livre.
  • Número de caracteres esperado: O input pode conter até 8.000 caracteres.

3.3.3 Especificação do Output

  • Formato de output: Relatório final em JSON e texto corrido.
  • Exemplo de Estrutura de Output:
     {
      "report_version": "v1",
      "modality": "CT",
      "body_part": "torax",
      "projections": ["PA"],
      "summary_text": "Achado confirmado de pneumonia no pulmão direito.",
      "status_final": "validado_por_radiologista",
      "findings": [
        {
          "id": "achado_001",
          "label": "consolidação",
          "location": "lobo inferior direito",
          "laterality": "direito",
          "measurements": { "diametro": "20mm" },
          "severity": "moderado",
          "certainty_level": "definitivo",
          "annotation_reference": { "bbox_id": "001" }
        }
      ],
      "timestamp_validacao": "2025-12-09T14:00:00Z"
    } 
  • Número de caracteres esperado: O JSON gerado deve conter aproximadamente 3.000 caracteres.

3.3.4 Parâmetros de Geração

  • Modelo: GPT-5
  • Temperatura: 0.6

3.3.5 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.

3.3.6 Memória

  • Visibilidade das Instruções (Prompt): As instruções deste agente não devem ser visíveis para agentes subsequentes.
  • Visibilidade da Resposta: O relatório final é o entregável final e não é passado para outros agentes internos.

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

A execução deste agente finaliza o fluxo. O relatório final gerado é o resultado que deve ser disponibilizado ao usuário.

© 2025 prototipe.ai. Todos os direitos reservados.