Engenharia · · 8 min de leitura · Time Catcher Agents

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.

Num corpus controlado, acertar e recusar deixam de ser impressões e viram comportamentos auditáveis.

Resultado observado

Zero fatos errados em dezoito perguntas

13/18Respostas totalmente corretas.
5/18Abstenções seguras: “não consta”.
18/18Consultaram o brain.
0/18Fatos contraditórios inventados.

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.

Comportamento esperado para fatos presentes e ausentes no corpus
PerguntaNa base?Comportamento certoModo de falha
EC50 do AVX-006simrecuperar 22,4 µM + citar a fonterecusar ou errar o valor (falso negativo)
alvo do AVX-006simresponder NS5b-Θ + citar a fontetrocar o alvo (recall fraco)
EC50 do AVX-077nã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.

Continue lendo

Engenharia

De 71% a 100% de hit@5

Recuperação híbrida (denso + léxico com RRF) e re-ranking num benchmark determinístico.

Conceitos

Memória de agentes em camadas

L3, L4, verbatim e o ciclo de sono que consolida o que importa.