>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Segurança
C

Como Fazer um Agente de IA Trabalhar com uma Base de Código Legada Massiva Sem Perder Contexto ou Dinheiro

16.677 estrelas

Te soa familiar? Você pede ao Claude ou ChatGPT para entender a lógica de um projeto antigo, e ele começa a "alucinar" ou simplesmente queima todo o limite de tokens tentando ler centenas de arquivos com grep simples. Até agentes modernos como o Claude Code frequentemente se comportam como filhotes cegos quando se trata de conexões profundas entre serviços ou cadeias de chamadas complexas.

Outro dia eu encontrei o repositório codebase-emory-mcp. É um servidor MCP (Model Context Protocol) que transforma seu código em um grafo de conhecimento estruturado. Em vez de alimentar texto bruto para a rede neural, a ferramenta constrói um mapa de funções, classes e dependências que a IA pode entender com meia palavra.

Qual é o Problema com a Busca Tradicional

Quando um agente de IA tenta entender seu código, geralmente faz isso da maneira mais bruta possível. Executa buscas por strings, abre arquivos um por um e tenta manter tudo na cabeça. O problema é que a janela de contexto não é infinita. Se o projeto é grande, o agente rapidamente esquece o início da cadeia de chamadas ou começa a confundir métodos similares em módulos diferentes.

Os desenvolvedores da DeusData alegam números impressionantes: usar o grafo deles reduz o consumo de tokens em 120 vezes. Onde um agente normal precisa processar 400.000 tokens, esta ferramenta precisa de apenas três a quatro mil. Isso não é apenas sobre economizar dinheiro em chamadas de API—é principalmente sobre a precisão das respostas.

O Que Este Mecanismo Pode Fazer

O projeto é escrito em C "puro" e usa SQLite para armazenamento de dados. Isso dá uma velocidade absurda. Indexar o kernel Linux (são 28 milhões de linhas de código) leva apenas três minutos. Um projeto típico de Django ou React é "devorado" em poucos segundos.

Aqui estão algumas coisas que chamaram minha atenção:

  • Entendimento da arquitetura. A ferramenta vê não apenas texto, mas estrutura. Ela distingue endpoints de API, entende qual função chama qual, e até encontra código "morto" que ninguém usa.
  • Suporte para 66 linguagens. Graças ao tree-sitter, o mecanismo entende quase tudo—from Python e TypeScript até Rust e COBOL. Além disso, para C, C++ e Go ele pode inferir tipos no estilo LSP.
  • Visualização. Vem com um visualizador de grafo 3D (opcional). Você pode literalmente girar seu projeto no navegador em localhost:9749 e ver como os módulos estão conectados.
  • Integração com agentes. Com um comando install o utilitário se configura para Claude Code, Zed, Aider e uma dúzia de outras ferramentas populares.

Visualização do grafo de conhecimento do projeto
Aquele grafo 3D que você pode girar no navegador

Como Funciona nos Bastidores

Curiosamente, os autores decidiram não embutir seu próprio LLM dentro para traduzir consultas em comandos de banco de dados. Raciocinaram sabiamente: já que você está falando com um agente inteligente (como o Claude 3.5 Sonnet), deixe ele lidar com a tradução.

Você pergunta: "Quem chama o método ProcessOrder?". O agente entende a intenção e chama a ferramenta trace_call_path. O mecanismo percorre o grafo em milissegundos e retorna uma resposta estruturada. Como resultado, a IA vê uma cadeia clara em vez de tentar adivinhá-la a partir de pistas indiretas.

SQLite em modo WAL é usado para armazenamento, e os dados são comprimidos com o algoritmo LZ4. Isso permite manter o índice de projetos muito grandes diretamente na memória durante a operação sem sobrecarregar o disco.

Benefícios Práticos para Desenvolvedores

O caso de uso mais óbvio é o onboarding em um novo projeto ou refatoração de um antigo. Em vez de construir diagramas manualmente na sua cabeça, você dá acesso ao agente codebase-memory-mcp.

Por exemplo, você pode perguntar: "Encontre todos os endpoints que aceitam UserID mas não verificam direitos de acesso". A ferramenta encontrará as conexões entre rotas HTTP e métodos de validação que a busca de texto tradicional perderia.

Outro recurso interessante é detect_changes. Ele analisa seu diff atual do git e mostra o "raio de impacto": quais funções e módulos suas alterações afetarão. Isso é um ótimo seguro antes de fazer commit.

Como Experimentar

A instalação é tão simples quanto possível—sem Docker ou dependências extras. Para macOS e Linux, basta um comando no terminal:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

Se quiser a visualização imediatamente, adicione a flag --ui. Após a instalação, basta reiniciar seu agente de IA e dizer: "Indexe este projeto".

Vale a Pena?

O projeto parece muito promissor. O que eu gosto especialmente é que não é mais um serviço na nuvem, mas um utilitário local. Todo seu código permanece na sua máquina—nenhum dado é enviado para servidores externos para indexação.

Claro, há nuances. A qualidade da análise para algumas linguagens como Haskell ainda é menor do que para Python ou Go mainstream. Mas a lista de tecnologias suportadas e a velocidade de processamento compensam amplamente essas arestas.

Se você usa ativamente IA no seu desenvolvimento diário e sente que ela está começando a "engasgar" em tarefas complexas, esta ferramenta pode ser aquele elo que faltava. No mínimo, a capacidade de ver seu projeto como um grafo 3D definitivamente vale dez minutos de tempo de instalação.

Projetos relacionados