Mapa do código para agentes de IA: ache código sem grep

Mapa do código para agentes de IA: como um índice local de arquivos, símbolos, imports e testes ajuda o Claude Code e o Codex a achar o código certo lendo menos.

Solviera Teknoloji 8 min de leitura

Um mapa do código para agentes de IA é um índice local dos arquivos, símbolos, imports, testes e histórico de mudanças de um repositório que o agente pode consultar, para achar o código certo em poucas chamadas em vez de fazer grep e ler arquivo após arquivo. Menos arquivos lidos significa menos coisa na janela de contexto, e menos coisa na janela de contexto significa que cada turno seguinte sai mais barato.

Este post mostra por que os agentes gastam tokens explorando, o que um bom mapa contém e como o mapa de projeto do AgentVera entrega esse índice ao Claude Code, ao Codex e a outros agentes CLI via MCP.

Como os agentes exploram um repositório sem mapa

Dê a um agente de código uma tarefa como “adicionar um campo de cupom no checkout” num repositório desconhecido, e ele faz o que você faria tendo só um terminal:

  1. grep -r "checkout" e recebe 200 resultados
  2. Abre os arquivos que parecem promissores, muitas vezes inteiros
  3. Segue os imports lendo mais arquivos
  4. Procura de novo pelo arquivo de teste

Cada passo puxa texto para o contexto. Um arquivo de 1.000 linhas lido uma vez fica na conversa pelo resto da sessão, e o modelo relê a conversa a cada turno. Se os primeiros palpites estavam errados, esses arquivos continuam lá. Esse é um dos principais motivos de uma sessão ficar cara muito antes de a mudança de fato ser feita. Para a outra grande fonte, o contexto base, veja reduzir o uso de tokens do Claude Code.

O que um mapa do código útil contém

Uma lista de arquivos não basta. O agente precisa responder “onde fica” e “o que quebra se eu mudar isto” sem ler código. Um bom mapa guarda:

CamadaResponde
Arquivos e módulosO que tem neste repositório e como ele está organizado?
Símbolos com assinaturasOnde está applyCoupon e o que ela recebe?
ImportsQuem usa este arquivo, e quem usa esses?
Testes ligadosQuais testes cobrem este código?
Histórico de mudanças em conjuntoQuais arquivos costumam mudar junto com este?
Pontos de entrada e comando de testePor onde começa e como eu rodo os testes?

As duas últimas importam mais do que parece. O histórico do git sabe que checkout.ts, checkout.test.ts e pricing.ts costumam mudar no mesmo commit, mesmo quando nenhum import os liga.

Como o mapa de projeto do AgentVera é gerado

O AgentVera gera um mapa de projeto para cada pasta de projeto:

  • Símbolos. O tree-sitter lê funções, classes, métodos, interfaces, tipos, enums e constantes com intervalos de linhas, assinaturas e a primeira frase do comentário de documentação, para TypeScript, TSX, JavaScript, Python e Go. Cerca de 30 outras linguagens são indexadas pelo caminho.
  • Imports e testes. Os imports são resolvidos para arquivos, e os testes são ligados ao código que cobrem.
  • Mudanças em conjunto. Arquivos que mudaram juntos em pelo menos 2 dos últimos 500 commits ficam ligados. Commits que mexem em mais de 40 arquivos são ignorados, para que um grande rename não ligue tudo com tudo.
  • O que fica de fora. Ele parte do git ls-files e respeita o .gitignore. Pula node_modules, dist, build, arquivos acima de 1 MB e arquivos gerados ou minificados. Em repositórios com mais de 20.000 arquivos, indexa só pastas de código como src, lib, app e packages/*/src.

O mapa é gerado no seu computador e não custa tokens. Ele acompanha as mudanças de arquivos, recalcula o histórico de mudanças em conjunto quando chegam commits e confere de novo um arquivo quando um agente pergunta sobre ele. Um mapa por pasta é compartilhado por todos os agentes que trabalham nela, então um projeto e cada uma das suas worktrees têm o seu próprio. Ele fica armazenado compactado na pasta de dados do app.

As ferramentas MCP que os agentes usam

O AgentVera adiciona a cada agente um servidor MCP chamado agentvera-map. As instruções dele dizem ao agente para começar uma tarefa com map_related, usar map_outline antes de ler um arquivo e map_usages antes de mudar código.

FerramentaRetorna
map_relatedArquivos que uma tarefa provavelmente envolve, ranqueados, com os motivos (nome parecido, imports, mudanças em conjunto, testes)
map_outlineOs símbolos de um arquivo com intervalos de linhas e assinaturas, os imports, quem o importa e os testes
map_usagesQuem chama ou importa um símbolo ou arquivo, com profundidade 2 quem importa quem importa, mais os testes que cobrem
map_findSímbolos ou arquivos por nome aproximado, com tipo, file:line e assinatura
map_overviewMódulos, tamanhos, pontos de entrada e o comando de teste
map_apiA API exportada real de um pacote instalado, na versão que está em node_modules, a partir das declarações de tipos

map_related recebe uma tarefa em palavras comuns, em qualquer idioma. Palavras em turco como sepet, kupon ou ödeme casam com nomes em inglês no código, como cart, coupon e payment.

map_api resolve uma fonte silenciosa de bugs: o agente escrevendo chamadas de memória para uma versão de biblioteca que você não tem. Ele lê os arquivos .d.ts da versão que está de fato instalada.

Agentes novos também recebem nas instruções um resumo curto dos módulos, pontos de entrada e do comando de teste, para não gastarem os primeiros turnos descobrindo como rodar os testes.

Antes e depois: a mesma tarefa

Veja como a tarefa do cupom muda. Os passos são típicos, não um benchmark.

Sem mapa:

grep -rn "checkout" src        # 200 lines of hits
cat src/checkout/index.ts      # whole file
cat src/checkout/summary.tsx   # whole file, not the right one
cat src/pricing/total.ts       # whole file
grep -rn "total(" src test     # find callers and tests

Com o mapa:

map_related "add a coupon field to checkout"
  -> src/pricing/total.ts (name match, changed together with checkout)
  -> src/checkout/CheckoutForm.tsx (imports total.ts)
  -> test/pricing/total.test.ts (test)
map_outline src/pricing/total.ts   # symbols and lines only
map_usages calculateTotal          # callers and tests

Depois o agente lê só as linhas de que precisa. A primeira versão enche o contexto com arquivos desnecessários; a segunda, com uma lista ranqueada e um outline.

Smart tools: quando o agente lê mesmo assim

Os agentes nem sempre consultam o mapa primeiro. Para o Claude Code, as smart tools do AgentVera usam hooks para intervir:

  • A primeira leitura completa de um arquivo com mais de 800 linhas e 24 KB devolve o outline do mapa de projeto, para o agente ler só a parte de que precisa.
  • Leituras repetidas de um arquivo que não mudou são bloqueadas, já que o conteúdo já está no contexto.
  • As execuções de teste são restritas aos testes que importam.

Se quiser entender como os hooks funcionam em geral, leia o guia de hooks do Claude Code.

Ligando e desligando o mapa

O mapa de projeto vem ligado por padrão e faz parte do plano gratuito.

  1. Abra Settings → Token savings e encontre a chave Project map. Ela fica ligada, a não ser que você a tenha desligado.
  2. Para deixar um agente sem o mapa, desmarque a caixa Project map na janela de edição do agente.
  3. Para ver o mapa, abra a página Details do projeto e a aba Project map. Ela desenha um grafo com os imports em cinza e as ligações de mudanças em conjunto como linhas laranja tracejadas. Digite uma tarefa e pressione Show para ver o que o map_related retornaria.

Se o mapa ainda não estiver pronto, por exemplo logo depois de abrir um repositório grande, as ferramentas respondem com o progresso da geração. O agente espera alguns segundos e depois volta às ferramentas normais.

Economiza tokens de verdade?

A resposta honesta é: depende do repositório e da tarefa. Um repositório pequeno, em que o agente já sabe onde procurar, ganha pouco. Um repositório grande ou desconhecido, em que o agente leria uma dúzia de arquivos errados, ganha muito.

Em vez de confiar num número, meça no seu próprio trabalho. A aba AI ROI tem um card Project map impact que compara conversas com e sem o mapa por sucesso, aprovação na primeira tentativa, tokens por tarefa e mensagens de acompanhamento.

Limites que você precisa conhecer

  • O detalhe de símbolos vale para TypeScript, TSX, JavaScript, Python e Go. As outras linguagens são indexadas no nível do caminho.
  • Agentes num host SSH remoto não recebem o mapa.
  • Um agente lê só o mapa da própria pasta, então um agente numa worktree vê a worktree dele, não o checkout principal.
  • A janela de mapa do código no tour do projeto do AgentVera é um recurso separado, para você explorar o código; o mapa de projeto é o que os agentes consultam.

Resumo

Um mapa do código para agentes de IA troca a exploração às cegas com grep e leitura por algumas perguntas certeiras: quais arquivos, quais símbolos, quem os usa e quais testes os cobrem. O mapa de projeto do AgentVera gera esse índice localmente com tree-sitter e git, o mantém atualizado e o entrega a todo agente compatível com MCP pelo agentvera-map, enquanto as smart tools seguram leituras grandes e repetidas no Claude Code. Combine-o com uma memória de projeto compartilhada para que os agentes saibam tanto onde o código está quanto por que ele é assim, e baixe o AgentVera para testar no seu maior repositório.

Perguntas frequentes

O que é um mapa do código para agentes de IA?

Um índice do repositório que o agente pode consultar em vez de procurar às cegas: quais arquivos existem, que símbolos eles definem, quem os importa, quais testes os cobrem e quais arquivos costumam mudar juntos.

Um mapa do código reduz os tokens do Claude Code?

Pode reduzir. Cada arquivo que o agente lê fica no contexto e é relido nos turnos seguintes. Se o agente pede primeiro um outline ou uma lista ranqueada de arquivos, ele lê menos coisas e coisas menores. Quanto economiza depende do repositório e da tarefa.

Quais linguagens o mapa de projeto do AgentVera entende?

Ele lê símbolos de TypeScript, TSX, JavaScript, Python e Go, com intervalos de linhas, assinaturas e a primeira frase do comentário de documentação. Cerca de 30 outras linguagens são indexadas pelo caminho.

Gerar o mapa custa tokens?

Não. O mapa é gerado no seu computador com tree-sitter e git, e se mantém atualizado conforme os arquivos mudam e os commits chegam. Só as respostas que o agente pede entram no contexto dele.

Quais agentes podem usar o mapa de projeto?

Todo agente CLI do AgentVera que aceita servidores MCP, como Claude Code, Codex, opencode, Copilot, Gemini e Cursor. Agentes num host SSH remoto não recebem o mapa.

Reúna seus agentes em uma só mesa.

Baixe o AgentVera de graça; as CLIs que você já instalou estão prontas para usar.

Mais artigos