Por que este benchmark existe e o que ele testa
A análise de sangue por IA com assistência está sendo cada vez mais usada em fluxos de trabalho de consumo e clínicos; ainda assim, frameworks de avaliação reproduzíveis voltados para medicina laboratorial permanecem incomuns. As perguntas que mais importam neste contexto não são as que são cobertas por benchmarks gerais de perguntas e respostas médicas: um motor consegue separar deficiência de ferro de traço de talassemia quando o volume corpuscular médio é idêntico, ele faz sobrediagnóstico da síndrome de Gilbert como hepatite e ele fabrica patologia em um painel de triagem totalmente normal?
Um único painel de exames de sangue normalmente contém sinal suficiente para sustentar várias interpretações concorrentes, e o trabalho do clínico que interpreta é ponderar essas interpretações entre si, em vez de buscar uma resposta de livro-texto. Um mecanismo que se sai bem em casos de livro-texto ainda pode falhar justamente nos casos que mais importam: as armadilhas de diagnóstico diferencial, as variantes benignas que parecem alarmantes quando isoladas e os painéis totalmente normais que tentam assistentes confiantes a fabricar patologia.
Este benchmark foi construído exatamente em torno desses modos de falha. Cada um dos quinze casos foi selecionado por uma propriedade diagnóstica específica: uma microcitose por deficiência de ferro que precisa ser mantida distinta de uma característica de beta-talassemia com volume corpuscular médio idêntico, uma apresentação de síndrome de Gilbert em que a única alteração é uma hiperbilirrubinemia indireta isolada e um painel de triagem com quinze parâmetros em que cada analito está dentro do seu intervalo de referência. A rubrica recompensa motores que leem cada caso em seus próprios termos e penaliza motores que chegam a um diagnóstico confiante quando não há justificativa para tal diagnóstico.
Como Thomas Klein, MD, selecionei o painel de casos porque são esses os padrões que vejo com mais frequência os assistentes de medicina laboratorial interpretarem de forma incorreta. O modo de falha caro não é "deixar de detectar uma doença rara" — é fabricar patologia rotineira em pacientes que não a têm. Nosso Validação médica hub descreve a estrutura mais ampla; esta página descreve seu resultado aplicado no motor V11.
Última execução de referência — V11 (abril de 2026)
A execução de referência de abril de 2026 do Kantesti AI Engine V11 produziu uma pontuação composta de 99.12% na rubrica pré-registrada de quinze casos. Ambos os casos-armadilha de hiperdia gnosticação pontuaram no teto. O índice de Mentzer foi aplicado corretamente no diferencial entre deficiência de ferro e talassemia.
A fórmula composta combina três componentes: conformidade estrutural com as sete seções obrigatórias do relatório e dezesseis subseções obrigatórias, acurácia clínica medida como recuperação de palavras-chave mais recuperação do sistema de pontuação mais uma verificação de validade da distribuição de probabilidade, e latência de resposta em relação à meta principal de nível de serviço de 20 segundos. A decomposição exata é mostrada na fórmula da rubrica abaixo.
Os restantes 0,88 pontos percentuais de folga (headroom) decompõem-se quase inteiramente em perda por latência — três invocações de fallback da Fase 2, cada uma com -0,05 de forma composta, contribuíram com cerca de 0,60 dos 0,88 pontos de défice — em vez de conteúdo clínico. O motor não falhou um diagnóstico correto em nenhum dos quinze casos; quando ficou aquém, foi por demorar ligeiramente mais do que o alvo primário de 20 segundos em uma pequena minoria das invocações.
Quinze casos em sete especialidades médicas
O painel de casos abrange sete especialidades — hematologia, endocrinologia, medicina metabólica, hepatologia, nefrologia, cardiologia, reumatologia — além de dois casos dedicados de armadilha de hiperdeteção (hyperdiagnosis). Cada caso é um registo real anonimizado de um doente, extraído do repositório de dados clínicos Kantesti, sob consentimento informado por escrito.
A desidentificação foi realizada pela abordagem Safe Harbor: todos os identificadores diretos foram removidos ou substituídos, e cada registo recebeu um código interno de caso de referência no formato BT-NNN-LABEL. O processamento foi efetuado em conformidade com Artigo 9(2)(j) do GDPR para investigação científica com salvaguardas adequadas, e as disposições equivalentes do UK GDPR. Nenhuma informação pessoal identificável aparece em qualquer parte do dispositivo (harness) publicado, do relatório técnico ou dos conjuntos de dados disponibilizados.
Por que esta distribuição em particular
A hematologia recebe três casos porque diferenciais microcíticos e diferenciais macrocíticos são as armadilhas de maior volume na prática laboratorial do mundo real. A endocrinologia recebe três porque as apresentações de Hashimoto, SOPC e deficiência de vitamina D exercitam formatos diagnósticos diferentes (orientados por autoanticorpos, orientados por proporções hormonais, orientados por um único marcador). As especialidades de caso único ainda são significativas porque cada uma de DRC, risco de ASCVD e LES tem seu próprio sistema de pontuação que o motor deve acionar (estadiamento KDIGO, risco ASCVD em 10 anos, e critérios de LES EULAR/ACR de 2019, respectivamente).
A rubrica pré-registrada, explicada
O pré-registro é a escolha metodológica única mais importante neste benchmark. Cada diagnóstico esperado, cada sistema de pontuação clínica e cada seção do relatório foram comprometidos com o código-fonte antes de o motor ser acionado. Portanto, o ajuste a posteriori da rubrica para favorecer o motor é impossível.
Três componentes compõem a pontuação composta. O componente estrutural contribui com 35% e mede se o motor retornou as sete seções obrigatórias do relatório (cabeçalho, resumo, principais achados, diferencial, sistemas de pontuação, recomendações, acompanhamento) e as dezesseis subseções obrigatórias dentro delas. A presença de seções pesa 40% e a presença de subseções pesa 60% dentro do cálculo estrutural.
O componente clínico contribui com 55% e combina três coisas: recuperação de palavras-chave do diagnóstico (70% da subpontuação clínica), recuperação do sistema de pontuação (20% — o motor calcula Mentzer, FIB-4, HOMA-IR, risco de ASCVD, estadiamento KDIGO, critérios EULAR/ACR quando relevante), e uma verificação de validade da soma de probabilidades (10% — as probabilidades do diferencial devem somar dentro do intervalo [90, 110]). Para casos de armadilha, uma penalidade explícita de hiperdia gnosticação de até 0,30 é subtraída, calculada como 0,10 por sinalizador de patologia fabricado, limitada a três sinalizadores.
O componente de latência contribui com 10%. Uma resposta em menos de 20 segundos recebe a pontuação total de 0,10, uma resposta em menos de 40 segundos recebe 0,05, e qualquer coisa mais lenta recebe zero. A meta de 20 segundos reflete o objetivo de nível de serviço do serviço primário de produção; o teto de 40 segundos reflete o orçamento de fallback da Fase 2 para invocações pesadas do motor.
O que o pré-registro impede
Benchmarks de primeira parte são notórios por inflar seus próprios números por meio de ajuste a posteriori da rubrica. O padrão quase sempre é o mesmo: a equipe executa o motor, vê onde ele tem desempenho inferior e então ajusta silenciosamente a rubrica para que as áreas com desempenho inferior contem menos. Ao comprometer a rubrica com o código-fonte antes da primeira chamada ao motor e publicar o harness sob licença MIT, esse ajuste fica visível no controle de versão. Qualquer pessoa pode clonar o repositório, verificar as datas de autoria da rubrica e confirmar que os resultados do motor não foram usados para moldar a pontuação.
Casos-armadilha de hiperdia gnosticação — por que a superchamada é o modo de falha real
Superchamadas agressivas de patologia em telas normais é um modo de falha documentado de assistentes médicos voltados ao consumidor. Seus custos a jusante incluem investigação desnecessária, ansiedade do paciente e investigação iatrogênica. Os dois casos de armadilha neste benchmark são projetados para tornar esse modo de falha visível e pontuável.
🟡 Armadilha 1 — BT-014-GILBERT
Apresentação. Um homem de 24 anos com bilirrubina total de 2,4 mg/dL. A fração direta é normal, as transaminases e a fosfatase alcalina ficam dentro de seus intervalos de referência, os reticulócitos são pouco notáveis, e haptoglobina e LDH descartam hemólise.
Interpretação correta. Síndrome de Gilbert — uma polimorfismo benigno de UGT1A1. A interpretação não deve invocar hepatite, cirrose, anemia hemolítica ou obstrução biliar.
Resultado da v11. Composto 1,000. Nenhuma das seis sinalizações de superdiagnóstico monitoradas apareceu como diagnóstico ativo.
🟡 Armadilha 2 — BT-015-HEALTHY
Apresentação. Uma mulher de 35 anos com um painel de triagem de rotina com quinze parâmetros. Cada analito está confortavelmente dentro do seu intervalo de referência.
Interpretação correta. Tranquilização e manutenção do estilo de vida. A interpretação não deve fabricar patologia limítrofe para soar clinicamente útil.
Resultado da v11. Composto 1.000. Nenhuma das sete sinalizações de sobrediagnóstico monitoradas — diabetes, anemia, hipotireoidismo, dislipidemia, hepatite, doença renal, deficiência — apareceu como diagnóstico ativo.
Em ambas as armadilhas, foram verificadas treze sinalizações de hiperdianóstico monitoradas. Nenhuma foi acionada. Este é o resultado que mais importa para qualquer clínico que esteja considerando usar um mecanismo de IA como ferramenta de triagem ou pré-consulta: o sistema não inventou doença onde não existia.
Índice de Mentzer: separando deficiência de ferro de traço de talassemia
Um segundo achado de alto valor diz respeito ao pareamento do caso BT-001 (anemia ferropriva) com o caso BT-007 (traço beta-talassêmico menor). Ambos apresentam microcitose e são um obstáculo bem conhecido para classificadores ingênuos. O índice de Mentzer, calculado como MCV dividido pela contagem de RBC, excede 13 na deficiência de ferro e fica abaixo de 13 no traço talassêmico.
Em BT-001, a paciente era uma mulher de 34 anos com hemoglobina 10,4 g/dL, MCV 72,4 fL, RBC 4,1 × 10¹²/L, ferritina 6 ng/mL e TIBC elevado. O índice de Mentzer de aproximadamente 17,7 apoia deficiência absoluta de ferro. Em BT-007, o paciente era um homem de 28 anos com microcitose (MCV 65,8 fL), mas com contagem de RBC alta de 6,2, RDW normal, ferritina normal e HbA2 de 5,6%. O índice de Mentzer de aproximadamente 10,6 aponta para traço talassêmico, e o HbA2 elevado confirma beta-talassemia menor.
Ambos os casos pontuaram 1.000. O mecanismo invocou explicitamente o índice de Mentzer em ambas as interpretações e retornou o diagnóstico correto em cada instância. Este é o resultado mais tranquilizador do ponto de vista clínico em todo o benchmark, porque classificar erroneamente o traço talassêmico como deficiência de ferro leva à suplementação inadequada de ferro e a oportunidades perdidas de triagem familiar, e classificar erroneamente a deficiência de ferro como talassemia atrasa a terapia de reposição direta. Nosso guia de faixa de ferritina explica o contexto diferencial mais amplo.
Resultados por caso da execução de abril de 2026
Doze dos quinze casos atingiram a pontuação composta máxima de 1.000 no caminho primário. Três casos foram atendidos via fallback da Fase 2, perdendo o bônus de latência de 0,05 enquanto preservavam todo o conteúdo clínico e estrutural. Um caso estava faltando uma única subseção obrigatória; um retornou uma soma de distribuição de probabilidade marginalmente reduzida.
O caso de PCOS (BT-008) perdeu uma única subseção obrigatória na estrutura da resposta — quinze de dezesseis em vez de dezesseis de dezesseis — o que reduziu a pontuação estrutural de 1,000 para 0,963. O caso de LES (BT-011) retornou uma soma de probabilidade-distribuição marginalmente reduzida, que diminuiu a pontuação clínica para 0,965, preservando todas as palavras-chave diagnósticas e o sistema de pontuação. Nenhum dos dois casos abaixo do ideal deixou de identificar um diagnóstico correto.
O que a pontuação do título não nos diz
Uma pontuação composta de 99,12% nesta rubrica pré-registrada específica representa desempenho próximo ao teto, mas merece uma contextualização cuidadosa. O resultado descreve o comportamento do motor em relação a quinze casos anonimizados cuidadosamente selecionados, avaliados uma vez cada, usando uma única rubrica. Somos explícitos sobre o que o número faz e não estabelece.
A pontuação diz que o motor V11 tratou corretamente os padrões diagnósticos selecionados para esta avaliação, com uma metodologia publicada e reproduzível. Ela não diz que o motor está correto em todo e qualquer painel de exame de sangue existente no mundo real. Ela não diz que o motor deve substituir o julgamento clínico. E não diz que o motor supera sistemas alternativos de IA — análises comparativas com outros motores ficaram deliberadamente fora do escopo deste relatório.
O que a pontuação estabelece, de fato, é uma linha de base. Com a rubrica e o arcabouço (harness) públicos, versões futuras do motor podem ser avaliadas contra os mesmos quinze casos, e a diferença entre a pontuação publicada e qualquer execução subsequente é, por si só, mensurável. Esse é o valor do pré-registro: ele transforma alegações de desempenho em alegações testáveis.
Como reproduzir este benchmark em 10 minutos
A reprodução exige apenas um par de credenciais de API Kantesti e um ambiente Python 3.10 ou posterior com o requests e reportlab bibliotecas instaladas. O harness completo é um único módulo Python autocontido, lançado sob a licença MIT.
Quatro etapas para uma execução nova
Uma. Clone o repositório: git clone https://github.com/emirhanai/kantesti-blood-test-benchmark.git. Duas. Instale as dependências com pip install -r requirements.txt. Três. Defina KANTESTI_USERNAME e KANTESTI_PASSWORD como variáveis de ambiente — as credenciais são lidas em tempo de execução e nada é codificado de forma fixa no script. Quatro. Execute python benchmark_bloodtest.py e inspecione os quatro artefatos emitidos para o diretório de trabalho: um scorecard CSV, um scorecard JSON, um dump JSON completo incluindo respostas brutas do motor e um relatório em Markdown legível por humanos.
A execução de referência de 23 de abril de 2026 é preservada em results/ no diretório do repositório. Uma execução nova gerará um novo scorecard com timestamp, deixando a execução de referência inalterada. Se a sua execução produzir um resultado significativamente diferente, por favor abra uma issue no GitHub com o timestamp da execução e a versão do motor retornada nos metadados da resposta.
Limitações e trabalhos futuros
Quatro limitações merecem reconhecimento explícito: tamanho da amostra, avaliação de disparo único, escopo de um único motor e origem dos dados de uma única fonte. Cada uma está sendo endereçada em trabalho de acompanhamento ativo.
Tamanho da amostra. Quinze casos em oito categorias de especialidade são suficientes para uma prova de conceito, mas não para análise de subgrupos dentro de uma especialidade. A expansão para cinquenta casos está planejada e incluirá painéis de coagulação, triagem de malignidades hematológicas, painéis de gestação e apresentações pediátricas.
Avaliação de disparo único. Cada caso foi avaliado uma vez. Modelos de linguagem grande apresentam variância de saída não trivial mesmo com temperatura de amostragem baixa, então um protocolo com múltiplas execuções com cinco avaliações por caso e variância reportada é o próximo passo natural.
Escopo de um único motor. Este relatório caracteriza um único motor. Análises comparativas contra sistemas de IA alternativos estão fora do escopo aqui; podemos persegui-las como um estudo independente separado com metodologia apropriada.
Origem dos dados de uma única fonte. Os quinze casos são registros reais de pacientes anonimizados, provenientes de um único repositório clínico. Eles representam uma amostra selecionada e não um sorteio aleatório representativo da população. Estender a avaliação para dados de múltiplos centros está no roteiro.
A extensão planejada mais impactante é a paridade multilíngue. O motor de IA Kantesti atende usuários em 75+ idiomas, e executar o mesmo conjunto de quinze casos em turco, alemão, espanhol, francês e árabe quantificará a qualidade da saída entre os idiomas suportados pelo motor. Publicaremos cada execução por idioma com seu próprio DOI e branch do harness.