Ir para o conteúdo
ragretrievalagents

Uma Pergunta de Três Saltos, Passo a Passo

Uma pergunta, três documentos, traçada duas vezes: veja a recuperação top-k travar num beco sem saída em uma pergunta de três saltos, e o mesmo corpus respondê-la quando um agente o percorre nó a nó.

Time MonkeyLLM5 min de leitura

Toda discussão sobre recuperação multi-hop acaba precisando de um exemplo passo a passo. Aqui vai um: uma única pergunta sobre uma wiki corporativa plausível, traçada duas vezes, uma via recuperação top-k e outra como uma caminhada por uma floresta de conhecimento (um grafo interligado de documentos pelo qual um agente se move). Se você quer a teoria primeiro, comece por por que multi-hop quebra o RAG; este post é o trace que a acompanha.

O corpus e a pergunta

Imagine a wiki interna de uma empresa de médio porte, digamos Northwind Robotics: algumas centenas de documentos cobrindo páginas de serviços, runbooks, registros de decisão de arquitetura e postmortems. Um engenheiro novo pergunta:

Qual time é acionado quando o export por trás do dashboard trimestral de receita falha?

A resposta existe, mas está espalhada por três documentos:

  1. A página do dashboard diz que seus dados vêm do export finance-mart.
  2. A página do finance-mart diz que o export roda como um job noturno no atlas-pipelines.
  3. O runbook do atlas-pipelines diz que falhas de job acionam o plantão do Data Platform.

Nenhum documento sozinho contém "dashboard trimestral de receita" e "Data Platform" ao mesmo tempo. A resposta só aparece quando você encadeia os três, o que faz desta uma pergunta estritamente de três saltos.

O que a recuperação top-k devolve

Faça o embedding da pergunta, busque os cinco chunks mais similares. O que volta é exatamente o que a similaridade promete: chunks sobre o dashboard (seus widgets, sua agenda de atualização), a frase que cita o finance-mart e talvez um postmortem que por acaso contém "dashboard" e "falhou" no mesmo parágrafo.

O único documento que nomeia a resposta, o runbook do atlas-pipelines, pontua perto do fundo do corpus inteiro para essa consulta. Ele nunca menciona dashboards nem receita. Não compartilha vocabulário com a pergunta e compartilha pouquíssima semântica. Ele nunca seria recuperado, por melhor que fosse o modelo de embedding, porque relevância para a pergunta não é o mesmo que relevância para a resposta.

O modelo leitor agora segura meia evidência, e faz o que modelos de linguagem fazem com meia evidência: chuta um time plausível, ou se recusa. A recuperação disparou uma vez. A pergunta precisava de três disparos, cada um condicionado ao que o anterior encontrou. Top-k é um único salto por construção.

A mesma pergunta, caminhada

Agora dê o mesmo corpus ao MonkeyLLM. Cada documento vira um nó com um passaporte (um pequeno cartão curado: título, resumo, tags), e os nós se linkam onde os documentos se referenciam. Navegue, não recupere (Navigate, don't retrieve).

  1. Entrar. Busque "dashboard trimestral de receita". O agente cai no nó do dashboard.
  2. Salto 1. O resumo do passaporte menciona uma fonte de dados. O agente abre o nó, encontra o link para o finance-mart, segue.
  3. Salto 2. O passaporte do finance-mart já diz "export noturno no atlas-pipelines". Segue o link, sem precisar abrir o corpo inteiro.
  4. Salto 3. Abre só a seção de acionamento do runbook: plantão do Data Platform.
A tela Explore no Studio, mostrando uma floresta percorrida nó a nó
A tela Explore no Studio, mostrando uma floresta percorrida nó a nó

A resposta chega com os ids dos três nós em que se apoia, e cada salto teve orçamento de tokens: ler um passaporte é barato, e abrir um documento inteiro só acontece quando o rótulo diz que vale a pena.

Há mais um movimento que merece menção. A caçada bem-sucedida deposita feromônio (um rastro de uso no caminho percorrido), e um link de atalho pode ser cunhado do nó do dashboard direto para o runbook. A próxima pergunta parecida é um salto só.

Isto não é só uma história

O trace acima é inventado; a medição, não. Em 11 perguntas estritamente multi-hop, cada uma exigindo pelo menos 3 saltos encadeados, o mesmo modelo local de 12B marcou 0/11 como leitor de RAG top-k clássico e 11/11 como navegador de floresta.

Gráfico de barras comparando 0/11 respostas corretas do RAG top-k contra 11/11 do navegador de floresta, com o mesmo modelo 12B
Gráfico de barras comparando 0/11 respostas corretas do RAG top-k contra 11/11 do navegador de floresta, com o mesmo modelo 12B

Onze perguntas é um conjunto pequeno, e dizemos isso. O corpus, os conjuntos de perguntas e o harness estão commitados, e cada tabela é regenerada com um comando.

Trace uma das suas

Pegue uma pergunta que o seu time realmente faz e conte os saltos. Se a conta passa de um, o top-k nunca teve como respondê-la. Dê uma estrela no repo, suba uma floresta com quatro comandos pelo quickstart e rode o trace você mesmo em monkeyllm.com.

Quer a versão longa?

O paper traz a arquitetura completa, as tabelas do benchmark e os achados que não bateram seus critérios.