Como Parar de Alimentar LLMs e Ensinar Agentes a Entender Seu Código
Situação familiar: você conecta um agente de IA a um projeto, e ele começa a "alucinar" ou reler repetidamente os mesmos arquivos, consumindo seu orçamento de tokens. Até ferramentas avançadas como o Cursor às vezes perdem o controle das conexões entre módulos quando um projeto cresce para milhares de arquivos. Recentemente, encontrei o Memtrace — um projeto que tenta resolver esse problema fundamentalmente ao transformar uma base de código em um grafo de conhecimento vivo.
Por que os agentes precisam de "memória estrutural"
A maioria dos assistentes de IA modernos funcionam no princípio de RAG (Retrieval-Augmented Generation). Eles pesquisam trechos de código por palavras-chave ou similaridade vetorial. O problema é que código não é apenas texto — é uma hierarquia complexa de chamadas, imports e dependências. Se um agente não vê o quadro completo, ele pode refatorar uma função de uma forma que quebra testes em um microsserviço vizinho do qual o agente nem sabia da existência.
O Memtrace cria o que os desenvolvedores chamam de "grafo de conhecimento bi-temporal". Ele não apenas indexa texto — entende estrutura: qual função chama qual, quais interfaces estão sendo implementadas, e como tudo isso mudou ao longo do tempo.
O que essa ferramenta pode fazer
O principal recurso do projeto é velocidade e localismo. Enquanto ferramentas similares gastam dezenas de dólares em chamadas de API e horas na indexação, o Memtrace faz isso em segundos na sua máquina.
Indexação sem LLM
Os desenvolvedores usaram Rust e Tree-sitter. Isso torna possível analisar 15.000 arquivos em cerca de 1,5 segundos. Ao mesmo tempo, os custos de API são zero porque redes neurais não são usadas para construir o grafo — apenas análise estática determinística. Todo o processo acontece localmente, então seu código não vai para os servidores de outras pessoas.
Entendimento de contexto via MCP
A ferramenta suporta o Model Context Protocol (MCP). Isso significa que pode ser "conectada" ao Claude Code, Cursor, Windsurf ou VS Code com literalmente um comando. O agente obtém acesso a mais de 25 ferramentas: desde encontrar código "morto" até análise de raio de impacto para mudanças.
Linha do tempo de mudanças
O Memtrace armazena histórico de versão para cada símbolo. Um agente pode perguntar: "O que mudou na última semana?" ou "Quais funções ficaram muito complexas após o último merge?" O sistema usa seis algoritmos de avaliação, incluindo análise de novidade e intensidade de mudança, para destacar as coisas mais importantes para o agente.
Comparação com alternativas
O README tem uma tabela de benchmark interessante. Por exemplo, Mem0 ou Graphiti dependem de chamadas a LLM para extração de entidades durante a indexação. Isso é lento e caro. O Memtrace parece um carro de corrida em comparação:
| Operação | Memtrace | Alternativas (Mem0/GitNexus) | |---|---|---| | Indexação de 15.000 arquivos | 1,5 seg | 30 min a 2 horas | | Custos de API | $0 | $10–50 | | Consumo de memória | 26 MB | ~1 GB |
É claro que vale notar que o Memtrace é focado estreitamente em código, enquanto outros sistemas podem trabalhar com conversas arbitrárias. Mas para tarefas de desenvolvimento, essa especialização é um grande diferencial.
Detalhes técnicos
Por baixo do capô, o projeto tem uma pilha bem séria. Além do Rust, usa Tantivy para busca em texto completo (BM25) e embeddings vetoriais para busca semântica. Tudo isso é combinado através de Reciprocal Rank Fusion (RRF) para entregar os resultados mais relevantes.
O suporte a linguagens é implementado de forma interessante. Além do conjunto padrão (TypeScript, Python, Go, Rust), o Memtrace entende código de infraestrutura: Terraform, GitHub Actions e até políticas RLS no PostgreSQL. Ele vê conexões entre o esquema do banco de dados e o código ORM na aplicação.
Como usar isso na prática
Imagine que você precisa fazer mudanças em uma classe base em um grande monorepo. Normalmente, você executa uma busca em todo o projeto e espera não ter esquecido nada.
Com o Memtrace, o agente pode executar o comando get_impact e imediatamente ver a árvore de dependências. Ele dirá: "Se você mudar esse campo, esses três endpoints e um worker em outro módulo vão quebrar." Isso elimina refatorações "cegas".
Para começar, basta instalar o pacote globalmente:
npm install -g memtrace
Depois disso, a ferramenta configurará automaticamente as configurações necessárias para o Claude ou Cursor. Se você é paranoico com privacidade, pode desativar a telemetria com uma variável de ambiente MEMTRACE_TELEMETRY=off.
Quem deveria experimentar
O projeto está atualmente em beta privado, mas o acesso está gradualmente abrindo em grupos. Na minha opinião, o Memtrace será mais útil para quem:
- Trabalha com grandes bases de código onde é difícil manter todas as conexões na cabeça.
- Usa ativamente agentes de IA e quer reduzir gastos com tokens.
- Tem hesitação em enviar código-fonte para serviços em nuvem para indexação.
A única ressalva é que a licença é proprietária (EULA), embora prometam manter acesso gratuito para desenvolvedores individuais. Se você não consegue esperar para colocar as mãos em "memória estrutural" para seus agentes, vale a pena verificar o Discord deles ou enviar uma solicitação no site.
Até agora, o projeto parece uma tentativa muito energética de tornar o desenvolvimento assistido por IA mais previsível e barato. No mínimo, a velocidade de indexação de 1,5 segundos é algo que estávamos perdendo há muito tempo.
Projetos relacionados