Indexar o código fora do repo: como economizar tokens sem jogar o projeto no contexto Pessoal, o agent precisava achar um símbolo.
Trabalho de um minuto.
Na prática, ele abria arquivo atrás de arquivo, colava dump de teste no papo e a janela sumia. Às vezes a fatura também.
Não era o modelo burro.
Era eu pagando o monorepo inteiro pra responder a pergunta errada.
A pergunta mudou.
Deixei de ser “qual tool faz o agent entender o repo?” e virei: o que é memória de domínio, e o que é só custo de ler código nesta sessão?
Tem um segundo motivo, e ele não é economia.
Um índice de símbolos é um mapa do seu sistema: quem chama o quê, onde está o fluxo crítico.
Se esse mapa mora no git, no cache de CI ou num serviço que o agent também escreve, o blast radius não é só token. É superfície.
Duas contas, um prompt Memória de domínio é política.
O que pode ser lembrado, por qual porta se entra, o que é canônico.
Notas, contratos, “onde a gente decide X”.
Indexer de código não resolve isso.
Code-read barato é custo de sessão.
Achar caller e símbolo sem despejar o working tree no prompt.
Isso não deveria virar a sua base de conhecimento.
Eu misturava.
O indexer virava KB.
O vault virava grep sem porta.
Os dois falhavam, e a sessão inchava igual.
Economizar token aqui não é trocar de modelo da semana. É separar camada.
E decidir onde o mapa vive.
O que eu mudei na mesa O mapa de símbolos saiu do working tree.
Cache local, fora do repo, fora do git.
Reindex é operação de máquina, não de PR.
O agent consulta o índice; não precisa reler o monorepo pra “quem chama essa função?”.
Quatro perguntas que eu faço antes de indexar um repo (vale colar no README do setup): O índice vive na minha máquina ou sai dela (cloud, CI, cache compartilhado)?
Entra em contexto de agent que também tem tool de escrita?
Como eu apago e revogo?
Quem mais lê isso? Índice ≠ fonte de verdade versionada.
Least privilege no que entra no contexto continua valendo.
Depois, parei de mandar firehose de CLI cru. , , viram novela.
Aquilo no contexto é fogo amigo.
Output barulhento: comprimo com um wrapper de CLI, ou faço Read cirúrgico.
Incidente que precisa da linha exata do log: aí sim firehose.
Por último: um code-read por sessão.
Empilhar dois indexers dilui ROI e confunde o agent.
Escolhe um.
Se não servir, troca.
Não some. Índice também envelhece.
Sintoma: o agent cita símbolo que não existe mais, com confiança.
Aí reindexa.
Sem isso, você só mudou o tipo de alucinação.
O que isso ainda não é Isso não substitui contrato de memória.
Hubs, scopes, “não responda só com grep” são outra conversa.
E uma honestidade: eu não tenho “economizei X% de tokens”.
Sem medição, sem %.
O que eu tenho é sessão menos inchada e um mapa que não vai parar no PR por acidente.
Artefato Regra de bolso: se a sessão está cara e você não sabe qual camada inchou, nomeie a camada antes de plugar mais tool.
Pergunta pra comunidade No seu setup o índice é local (reindex chato, mapa em casa) ou hospedado (mais rápido, mapa fora da sua máquina)?
O que você não abre mão — e o que você cortaria primeiro: índice, dump de CLI, ou memória misturada com code-read?