A narrativa das big techs é sedutora: jogue todo o seu repositório em uma janela de 2 milhões de tokens e o LLM magicamente entenderá tudo. Ledo engano. A ideia de que o problema de recuperação de informação se dissolve à medida que o contexto cresce é uma das maiores falácias do momento. Recentemente, um paper de Tarakanath Paipuru, pesquisador independente, expôs o que ele chama de Paradoxo da Navegação.
Onde o contexto gigante falha
O argumento central do estudo é que, embora você consiga enfiar o código inteiro no prompt, o modelo não necessariamente atende aos arquivos arquitetonicamente críticos. Não se trata apenas do conhecido problema de lost-in-the-middle, onde a IA se perde no meio de contextos longos. É algo mais profundo e estrutural. Bases de código são grafos de dependências semânticas e sintáticas. Uma alteração em uma classe base exige a atualização silenciosa de todos os locais de instanciação. Isso é estruturalmente determinado, mas semanticamente invisível para uma busca por palavra-chave ou similaridade de embedding.
Eu já tratei de algo semelhante em uma análise técnica sobre como o GraphRAG e o framework HELP resolvem a busca gulosa. O ponto é o mesmo: a busca vetorial tradicional é cega para a topologia do seu software.
Navegação estruturada vs. Recuperação plana
O paper introduz o CodeCompass, um servidor de Model Context Protocol (MCP) que expõe um grafo de dependências estáticas ao Claude Code. Em vez de perguntar ao modelo quais arquivos são semelhantes à consulta, a ferramenta permite que o agente navegue pelo grafo: quem importa quem, quem herda de quem, quem instancia o quê. Os resultados do benchmark são fantásticos. Em tarefas de dependência oculta, onde os arquivos necessários não compartilham vocabulário com a descrição da tarefa, a navegação em grafo superou o baseline em mais de 23 pontos percentuais.
Isso ressoa com o que vejo na prática. O Claude é um exemplo de modelo que, mesmo com janelas menores que alguns concorrentes, produz resultados excelentes quando o contexto é estruturado de forma otimizada. Por outro lado, tive experiências interessantes com o Grok no Relpz, onde implementamos o envio de pastas inteiras como anexo. A resposta do Grok, com seus 2 milhões de tokens, é muito rápida e assertiva para análises rápidas, mas para refatorações profundas onde a arquitetura é o que manda, a força bruta da janela de contexto começa a patinar.
O problema da adoção (ou a preguiça do agente)
A descoberta mais curiosa do estudo de Paipuru não foi técnica, mas comportamental: 58% dos testes falharam em usar a ferramenta de grafo quando ela era opcional. O agente só invocava a ferramenta quando sentia a dificuldade da tarefa. Isso prova que, para ambientes de produção, não basta dar a ferramenta ao LLM; é preciso forçar o fluxo de trabalho estruturalmente.
Se você é desenvolvedor e está tentando construir sistemas baseados em agentes, o recado é: pare de esperar que modelos maiores resolvam sua falta de infraestrutura de dados. A vantagem competitiva real está na qualidade das ferramentas de navegação que você fornece ao seu agente, não apenas no orçamento de tokens que você está disposto a queimar. Acho que vou torrar uns tokens aqui para fazer uns testes de GraphRAG. :)
Para quem quer se aprofundar em como estruturar esses diálogos e extrair o máximo de modelos de fronteira, recomendo a leitura do meu livro Engenharia de Prompt para Devs. Vamos ajustar os pesos juntos.
Conecte-se comigo: https://linktr.ee/ricardo.pupo.