Validando o cérebro do agente
com 40 papers fictícios
Um agente que responde certo não prova nada por si só — a pergunta é se ele acertou por causa da sua base ou apesar dela. Contamos por que validamos a recuperação e a anti-alucinação do agente com 40 papers científicos totalmente inventados, onde a única forma de acertar é recuperar de verdade, e onde "não consta na minha base" é a resposta certa.

Resultado observado
Zero fatos errados em dezoito perguntas
O placar bruto foi 72%; todos os cinco misses falharam de forma segura, sem substituir ausência por invenção.
RAG (retrieval-augmented generation) promete uma coisa simples: o agente responde a partir dos seus documentos, não do que o modelo decorou no treino. O difícil é provar isso. Se você testa a recuperação com papers reais, manuais conhecidos ou qualquer texto que o modelo já viu, abre um segundo caminho para o acerto — a memória paramétrica do próprio modelo.
E aí o teste perde o sentido. Imagine perguntar "qual a fórmula da cafeína?" para um agente com um PDF de química na base. Se ele acertar, você não sabe se leu o seu PDF ou se apenas sabia a resposta de cor. Um teste que passa por dois caminhos possíveis não valida nenhum dos dois. Para testar a recuperação, é preciso fechar o caminho do treino.
Se o agente pode acertar sem olhar para a sua base, o acerto não prova que a base funciona.
A solução: um corpus que não existe
A saída foi montar um corpus de 40 papers científicos totalmente fictícios. Não papers reais anonimizados — inventados do zero. Compostos que não existem (AVX-006), alvos moleculares que não existem (a THV-polimerase NS5b-Θ), valores que ninguém jamais mediu (um EC50 de 22,4 µM). Tudo internamente consistente, com a cara de um paper de verdade, mas sem um único fato que o modelo pudesse ter visto antes.
O ponto é cirúrgico: o modelo nunca encontrou "AVX-006" no treino, porque AVX-006 não existe fora do nosso corpus. Então a única forma de o agente dizer "o EC50 do AVX-006 é 22,4 µM" é ter recuperado o trecho certo do paper certo. Não há memória paramétrica para consultar. O acerto vira prova direta de que a recuperação funcionou.
Se o modelo acerta um número que só existe no seu PDF, a recuperação funcionou. Não sobra outra explicação.
Como se monta um corpus que não existe
Construir os 40 papers é a parte que decide se o teste vale. Cada um é um mundo interno consistente: um esquema de nomes fixo (compostos AVX-006, AVX-011, AVX-023…), um alvo compartilhado (a THV-polimerase, NS5b-Θ) e medições inventadas mas plausíveis, sempre com unidade — um EC50 de 22,4 µM, não um "22,4" solto. A regra é dupla: real o bastante para ter cara de paper de verdade, distante o bastante do mundo real para que nenhum token tenha aparecido no treino.
Dois detalhes fazem o corpus trabalhar. Referências cruzadas: uma resposta às vezes exige juntar o composto de um paper com o ensaio de outro, então a recuperação precisa acertar mais de um documento, não casar um chunk sortudo. E o gabarito: cada fato afirmado e cada lacuna deliberada ficam registrados. Sabemos exatamente o que está e o que não está no corpus — sem isso, "acertou?" e "inventou?" viram opinião.
Por que fictício vence real
É controle de variável, o mesmo princípio de qualquer experimento honesto. Com um documento real existem dois caminhos para a resposta certa e você não consegue distingui-los. Com um documento fictício existe um caminho só:
- Documento real: acerto = a recuperação funcionou ou o modelo já sabia. Resultado ambíguo.
- Documento fictício: acerto = a recuperação funcionou. Ponto. Resultado limpo.
- O erro pode estar na recuperação ou no uso que o modelo fez do trecho; o corpus fictício torna o acerto conclusivo e a proveniência ajuda a localizar a falha.
Em linguagem de experimento: a variável de interesse é "a recuperação disparou e o modelo usou o trecho", e o fator de confusão é a memória paramétrica — o que o modelo decorou no pré-treino. No corpus real os dois se sobrepõem; no fictício a memória paramétrica é zero por construção, porque não há o que decorar sobre AVX-006. Sobra uma variável só, e o teste mede o que promete.
A outra metade: a pergunta que não tem resposta
Recuperar o que existe é só metade da prova. A outra metade — a mais difícil — é recusar o que não existe. Um corpus fechado e conhecido permite fazer a pergunta perigosa: "qual o EC50 do AVX-077?". O AVX-077 não está em nenhum dos 40 papers.
Aqui os dois tipos de agente se separam. Um agente fraco vê que AVX-006, AVX-011 e AVX-023 existem, conclui que AVX-077 "deveria" existir e inventa um número plausível — do mesmo intervalo, com a mesma unidade, convincente e falso. Um agente correto responde: "não consta na minha base".
Um agente que sempre entrega um número é um agente que, quando não sabe, mente com confiança.
"Não consta" é a resposta certa, não uma falha
Essa é a parte contraintuitiva. Você está validando que o agente às vezes se recusa a responder — e comemorando quando ele faz isso. Em produto real, alucinação não é o modelo errar um fato; é o modelo preencher uma lacuna que deveria ficar vazia. Com o corpus fictício, a lacuna é conhecida: sabemos exatamente o que não está lá, então sabemos exatamente quando a resposta certa é o silêncio. Sem esse gabarito, "o agente inventou?" viraria uma discussão de opinião.
Dois eixos, dois modos de falha
Com o gabarito na mão, o teste vira duas perguntas objetivas, e a tabela abaixo separa as duas. Recuperar o que está na base — a falha é o falso negativo: recusar ou errar um valor presente. E recusar o que não está — a falha é o falso positivo: inventar um número para uma lacuna. São metas distintas; um sistema só é confiável quando fecha as duas, e medir um eixo só esconde metade dos erros.
| Pergunta | Na base? | Comportamento certo | Modo de falha |
|---|---|---|---|
| EC50 do AVX-006 | sim | recuperar 22,4 µM + citar a fonte | recusar ou errar o valor (falso negativo) |
| alvo do AVX-006 | sim | responder NS5b-Θ + citar a fonte | trocar o alvo (recall fraco) |
| EC50 do AVX-077 | não | "não consta na minha base" | inventar um valor plausível (alucinação) |
Como isso se conecta à recuperação híbrida
Este teste não substitui o benchmark de recuperação — ele o completa. Em "De 71% a 100% de hit@5" contamos como a recuperação híbrida (densa + léxica com RRF) e o re-ranking garantem que o trecho certo chega ao top-5 entregue ao modelo. Aquilo mede o encanamento: o chunk certo chegou? Este teste mede o comportamento: o modelo usou o chunk certo, e recusou quando não havia chunk?
São as duas metades de uma prova só. Recuperação forte sem geração honesta ainda alucina — entrega o trecho certo e o modelo inventa por cima. Geração honesta sem recuperação forte responde "não consta" até para o que está na base. Você precisa das duas, e cada uma tem o seu teste.
Citação da fonte fecha o loop
A última peça é a citação. Cada afirmação do agente aponta para o paper de origem. Com um corpus fictício que nós mesmos escrevemos, essa citação é 100% auditável: conferimos, trecho a trecho, se a fonte citada realmente contém a afirmação. Se o agente citar o paper 12 para um valor que está no paper 3, pegamos na hora. Nada de "parece certo" — cada elo é verificável porque conhecemos o corpus inteiro, do título de cada paper ao último número de cada tabela.
Na Catcher Agents essa citação é estruturada, não uma frase solta no fim da resposta. A busca de conhecimento (GET /v1/agents/{id}/knowledge/search) devolve os trechos com a sua origem, e a camada de Q&A destilado — a Refinery — transforma cada resposta em um card com proveniência explícita. O GET /v1/agents/{id}/qa devolve algo assim:
GET /v1/agents/{id}/qa
{
"cards": [
{
"question": "Qual o EC50 do AVX-006?",
"answer": "22,4 µM contra a THV-polimerase (NS5b-Θ).",
"provenance": [
{
"source_id": "src_a1b2",
"chunk_id": "chk_0f3e",
"filename": "paper-03-avx006.pdf",
"excerpt": "...atividade antiviral com EC50 = 22,4 µM..."
}
],
"confidence": 0.94,
"contradiction": false,
"status": "ready",
"enabled": true
}
]
}
É isso que torna a recusa verificável, não uma questão de fé. Para um fato presente, a proveniência aponta arquivo e trecho exato — dá para conferir, chunk a chunk, se a fonte sustenta a afirmação. Para um fato ausente como o AVX-077, não há trecho para citar: a proveniência fica vazia, e o honesto é recusar em vez de fabricar um card sem lastro. O flag contradiction cobre o terceiro caso — quando duas fontes discordam, o card é marcado em vez de escolher um lado no silêncio.
Anti-alucinação por design, não por promessa
Vale ser honesto sobre o que isso é. Nenhum modelo de linguagem é infalível, e não vendemos um agente que nunca erra. O que a arquitetura garante é estrutura: a resposta é ancorada nos seus documentos, cada afirmação carrega a fonte, e a ausência de fonte vira recusa em vez de invenção — grounded, cita, admite ignorância. Não é promessa de perfeição; é a diferença entre um agente que erra mostrando de onde tirou e um que inventa com a mesma confiança com que acerta. Os 40 papers existem para medir isso com número, não com fé.
Na rodada registrada, o agente consultou o brain nas 18 perguntas: respondeu 13/18 corretamente, produziu cinco abstenções seguras quando o trecho necessário não apareceu e emitiu 0/18 fatos errados. O resultado é mais útil que uma promessa de perfeição: mostra o limite de recall e, ao mesmo tempo, o modo de falha que o produto precisa preservar.
O que os 40 papers provam, em resumo
No fim, um único corpus fictício valida quatro comportamentos que, com documentos reais, ficariam embaçados:
- Recuperação real: o agente entrega valores literais que só existem na sua base, não no treino do modelo.
- Anti-alucinação: diante de uma pergunta fora do corpus, ele responde "não consta" em vez de inventar.
- Citação fiel: cada afirmação aponta para a fonte certa, verificável trecho a trecho.
- Cobertura E2E: da ingestão dos documentos à resposta final, o caminho inteiro é exercido com um gabarito que só nós conhecemos.
É por isso que o cérebro do agente não é validado com o mundo real, e sim com um mundo que inventamos de propósito — onde toda resposta certa só pode ter vindo de um lugar, e onde toda resposta que deveria faltar tem o direito de faltar.
Perguntas frequentes
Por que usar papers fictícios em vez de reais?
Com documentos reais, o modelo pode acertar pela memória do treino mesmo que a recuperação falhe — você não distingue a sua base da memória paramétrica dele. Um corpus inventado, com compostos, alvos e valores que não existem no mundo real, fecha esse caminho: se o agente diz o EC50 certo do AVX-006, ele recuperou o trecho de verdade, porque não havia outro lugar onde aprender aquilo.
"Não consta na minha base" é um erro do agente?
Não — é a resposta certa quando a pergunta cai fora do corpus. Um agente que sempre entrega um número é um agente que inventa quando não sabe. Testamos isso perguntando pelo AVX-077, um composto ausente dos 40 papers, e exigindo a recusa explícita em vez de um valor plausível e falso.
Como esse teste se relaciona com o hit@5 de 100%?
São as duas metades da mesma prova. O hit@5 mede se o trecho certo chega ao modelo; o corpus fictício mede se o modelo usa esse trecho e recusa quando ele não existe. Recuperação forte sem geração honesta ainda alucina, então cada metade precisa do seu próprio teste.
Como a citação torna a recusa verificável?
Cada resposta vira um card com proveniência — source_id, chunk_id, arquivo e o trecho exato que a sustenta — mais um flag de contradição para quando duas fontes discordam. Para um fato presente, dá para conferir trecho a trecho se a fonte citada realmente contém a afirmação. Para um fato ausente, não existe trecho para citar: a proveniência fica vazia e o comportamento honesto é recusar em vez de fabricar um card sem lastro.
Crie um agente com conhecimento próprio — e honesto
A recuperação híbrida e a prova de anti-alucinação dos 40 papers estão em cada agente da Catcher Agents. Suba seus documentos, faça uma pergunta e veja a resposta com a fonte citada — ou o "não consta" honesto quando a resposta não está na base.