DEV Community

Tiago Vilas Boas (Montanha)
Tiago Vilas Boas (Montanha)

Posted on

Consultar o grafo economiza token. Tirar o índice do git, não

Pessoal, eu ia vender a tese errada.

“Tirei o índice do git, então a sessão ficou barata.” Mentira educada. O modelo não lê gitignore. Se o agent abre dez arquivos, você pagou dez arquivos. A pasta do índice pode estar no lixo do disco que a fatura não muda.

O que mudou na minha cabeça: a prova não é a tool instalada. É o transcript. Primeiro tool foi query/neighbors/go-to-def, ou foi Read de um arquivo “suspeito”?

Token cai quando o agent pergunta ao mapa com orçamento. Fora do git só impede o mapa de ir no PR. São contas diferentes. Graphify, Serena, LSP, índice do editor: o logo não importa.

Tabela de Conteúdo

1. Eu misturava três coisas

Uma é política: o que pode ser lembrado, por qual porta se entra. Isso é memória de domínio. Outro post.

Outra é o turno: “quem chama este handler?” sem pagar o monorepo. Isso é mapa de código + budget.

A terceira é onde o arquivo do mapa mora. Disco, gitignore, cache fora da árvore. Blast radius. Quase zero na fatura.

Eu vendi a terceira como se fosse a segunda. Por isso o texto antigo parecia raso.

Se a pergunta é “o que a gente decidiu sobre retry?”, grep no repo é porta errada. Se é “quem chama?”, despejar dez arquivos “pra garantir” também é.

2. A prova está no transcript

Não tenho % de token pra te vender. Tenho um hábito que qualquer um reproduz: abre a sessão e conta os tools.

Pergunta sintético (de propósito): quem chama o handler de charge.paid, e o que quebra se o payload mudar?

Turno que eu classifico caro (reconstruído, não é log de produção):

grep charge.paid
Read WebhookController.php
Read ChargePaidHandler.php
Read PayloadDto.php
Read tests/ChargePaidTest.php
Read (mais quatro “só pra garantir”)
Enter fullscreen mode Exit fullscreen mode

Você pagou o repo pra uma pergunta de vizinho.

Turno que eu classifico barato:

neighbors / path / go-to-def  →  ChargePaidHandler
Read ChargePaidHandler.php
Read (no máximo mais um caller)
Enter fullscreen mode Exit fullscreen mode

O mapa já existia. O agent perguntou. Aí leu pouco.

Como eu sei que “o Graphify está ajudando”? Não é porque o MCP está verde. É porque o primeiro tool não é um Read de arquivo aleatório. Se o indexer está instalado e o transcript ainda começa com dez Read, você não economizou. Só gerou pasta de índice.

Índice velho tem cara própria: o agent cita função que você apagou ontem, com confiança. Aí reindexa. CLI (test, git status, build) é outra conta. Comprime ou lê o trecho. Não mistura com o grafo.

E o gitignore: vários indexers despejam output na raiz. Ignore. Isso não é a economia. É pra o mapa não ir no PR.

3. Se o seu indexer não é o meu

No desk o mapa é Graphify. A conta não precisa do nome.

Você tem Sinal caro no transcript Sinal barato
Grafo / symbol index Instalar e começar em Read Query / neighbors / go-to-def, depois 1–2 arquivos
Só grep Dez arquivos “pra garantir” Grep estreito + 1–2 arquivos
Dois indexers Dois mapas, zero consulta Um por sessão

Dois indexers na mesma conversa dilui o hábito que importa: consultar. Mede pelo transcript, não pelo setup.

4. O que eu corto (e o que eu não vendo como economia)

Gist:

Corta contexto: perguntar ao mapa com budget; Read cirúrgico; CLI resumido; um indexer.

Não corta contexto (e mesmo assim faça): output fora do git; saber quem lê o mapa; reindex quando ele mentir.

Fora do git protege o mapa. Consulta com budget é o que corta a janela.

No seu último turno: o primeiro tool foi query, Read em massa, ou dump de CLI? O que você cortaria na próxima?

Top comments (0)