Como reduzir o consumo de tokens do seu agente de IA: testamos Pensieve em um repositório real

A forma mais direta de reduzir os tokens que um agente de programação gasta é evitar que ele faça grep em todo o seu repositório e leia arquivos inteiros só para encontrar uma função: dê a ele um índice local para consultar. Testamos isso com o Pensieve, um mecanismo de busca local e open source que se conecta ao Claude Code, Codex, Cursor e qualquer cliente MCP. No OpenSEO, um repositório real de TypeScript com cerca de 1.000 arquivos, o Claude Code fez 47 por cento menos chamadas de ferramentas e usou 12 por cento menos tokens por busca do que usando só grep, e encontrou o arquivo correto praticamente nas mesmas vezes.

:white_check_mark: yoDEV Tested · 12 de outubro de 2026
Executamos 160 buscas com Claude Code 2.1.296 e Pensieve 0.6.3 no OpenSEO, um repositório real de TypeScript com cerca de 1.000 arquivos, usando o harness de benchmark do autor sem modificações. Os resultados que apresentamos como nossos vêm desse teste.

Por que seu agente de IA gasta tantos tokens buscando código?

Porque ele busca por hábito, não por significado. Pergunte ao Claude Code “onde tratamos as novas tentativas de cobrança depois de uma recusa?” e a sequência habitual é: grep de “retry”, centenas de resultados, e depois ler arquivo após arquivo até achar o correto. Cada arquivo que ele lê entra na janela de contexto, e você paga por cada um desses tokens. Em um repositório grande, a busca pode custar mais do que a própria correção.

Um índice local muda esse primeiro passo. O agente faz uma pergunta em linguagem natural e recebe os poucos trechos mais relevantes, com arquivo e linha, em vez de uma parede de resultados de grep. É o que em inglês se chama semantic code search sobre um local code index.

O que é o Pensieve?

O Pensieve é um backend de busca local para Mac que indexa três coisas:

  • seus documentos e pastas
  • seus repositórios git, incluindo alterações sem commit e worktrees
  • suas sessões anteriores do Claude Code, Codex e Qwen Code

Depois, ele expõe esse índice aos seus agentes como um MCP server. É desenvolvido por Ted Haley, publicado sob licença MIT e tudo roda na sua máquina:

  • o texto é convertido em embeddings localmente com Qwen3-Embedding-0.6B
  • o índice fica no SQLite, com um índice de texto completo por trigramas para correspondências exatas e turbovec para a busca vetorial
  • tudo é guardado em ~/.pensieve

Por padrão, o agente vê onze ferramentas. As que importam para este artigo são search, read e similar. A busca funciona por significado (pricing model) e por palavras exatas ("rate limit"), e você pode combinar as duas: as correspondências exatas são ordenadas pelo significado do restante da consulta.

Ele traz mais coisas: um painel de busca no estilo Spotlight, um mapa 3D do seu código organizado por significado, autoria do código a partir do git blame e “lacunas de conhecimento” (áreas cujos autores já não estão ativos no repositório). Este artigo foca na parte que economiza tokens.

Quanto ele economiza de verdade? Nosso teste com o OpenSEO

Executamos o próprio harness de benchmark do autor (bench/agent_search.py, na tag v0.6.3, sem modificações) sobre o OpenSEO: 1.047 arquivos, dos quais o Pensieve indexou 1.008.

Como funciona:

  1. O script pega trechos de código do índice.
  2. O Sonnet descreve cada um em linguagem natural, sem permitir identificadores, para que o grep não possa pegar atalhos.
  3. O Claude Code é executado em modo headless e recebe a pergunta de qual arquivo contém esse código, em duas configurações:
    • Grep: apenas Read, Grep e Glob.
    • Pensieve: as mesmas ferramentas, mais as ferramentas MCP do Pensieve e seu bloco de instruções “busque antes de fazer grep”.
  4. As execuções das duas configurações são misturadas em um mesmo lote, para que o cache de prompts não favoreça nenhuma.

40 tarefas × 2 configurações × 2 repetições = 160 execuções. Claude Sonnet no Claude Code 2.1.296, Pensieve 0.6.3, 12 de outubro de 2026, zero erros:

Grep, Glob, Read Com Pensieve Mudança
Arquivos encontrados 74 / 80 76 / 80 praticamente igual
Chamadas de ferramentas por busca 2,66 1,40 −47%
Tokens por busca 36.607 32.132 −12%
Custo por busca 0,031 USD 0,027 USD −11%
Tempo por busca 16,7 s 13,8 s −18%

O ganho claro está nos passos, não na precisão.

  • Na precisão há empate. Os dois arquivos extras vieram de um único tipo de consulta, cadeias de texto exatas, em que o Pensieve acertou 4 de 4 e o grep 2 de 4. São poucas execuções para tirar conclusões. Todos os outros tipos empataram.
  • A economia de passos é real. Em 30 das 40 tarefas, a execução mediana com Pensieve usou uma única chamada. A maior diferença foi uma tarefa em que o grep precisou de 12 chamadas e o Pensieve, de 1.
  • Os tokens caíram menos do que as chamadas. É o esperado: cada busca do Pensieve devolve trechos que também entram no contexto, então você economiza idas e voltas, mas cada uma carrega mais conteúdo.

O agente usou a busca do Pensieve em suas 80 execuções e, mesmo assim, recorreu ao grep 14 vezes. É o bloco de instruções funcionando como foi projetado: primeiro buscar por significado, depois confirmar com grep.

Nossa economia de custo de 11 por cento é compatível com os números do autor. Ele mediu entre 6 e 15 por cento em repositórios de 500 a 2.400 arquivos, e sua maior economia, 28 por cento, em um monorepo de 35.000 arquivos. Em um repositório grande, espere mais. O teste completo de 160 execuções nos custou 4,62 USD.

Como se compara com os números do autor. O autor publicou seus próprios resultados, medidos com a versão 0.5.6 em quatro repositórios (de 504 a 34.847 arquivos) e 144 execuções:

  • chamadas de ferramentas por busca: 1,97 em vez de 3,44
  • tokens: 16 por cento a menos
  • custo por busca: 18 por cento menor
  • tempo por busca: 21 por cento mais rápido
  • arquivo correto: 131 de 144 execuções, contra 123 só com grep

São números autodeclarados e não replicados; por isso fizemos os nossos.

Os custos são os informados pelo Claude Code a preços de tabela da API. Eles dependem de quão “quente” está o cache de prompts, então compare-os apenas dentro de um mesmo lote, nunca entre artigos.

Onde o grep continua ganhando?

Nas cadeias exatas. O teste só de busca do autor (Pensieve contra um único grep, sem agente) coloca o arquivo correto em primeiro lugar nestas porcentagens:

Tipo de consulta Pensieve Grep
Cadeias de erro exatas 88% 92%
Nomes de funções e classes 94% 54%
Descrições em linguagem natural 58% 0%

No OpenSEO, a busca do Pensieve sozinha (sem agente) colocou o arquivo correto em primeiro lugar para 96 por cento de 25 consultas por nome, 81 por cento de 16 consultas por texto exato e 65 por cento de 40 descrições. Nosso teste não incluiu uma comparação com o grep sozinho, então a tabela do autor continua sendo a referência para a vantagem do grep em cadeias de erro.

A ideia, então, não é eliminar o grep. O bloco de instruções que o Pensieve instala diz ao agente para buscar primeiro por significado e usar grep para nomes exatos ou para confirmar.

Os resultados mudam conforme o repositório?

Sim, sobretudo conforme o tamanho. O grep fica mais caro à medida que o repositório cresce, enquanto uma busca no índice custa mais ou menos o mesmo em qualquer escala. Por isso o autor viu economias entre 6 e 15 por cento em repositórios médios e de 28 por cento em um monorepo de 35.000 arquivos, e por isso nosso repositório de TypeScript de cerca de 1.000 arquivos ficou em 11 por cento. Há outros três fatores que movem o número:

  • Quão “grepável” é o seu código. No OpenSEO, o grep já encontrava a maioria dos arquivos em duas chamadas, então sobrava pouco para cortar.
  • O tamanho dos arquivos. Os componentes .tsx pequenos tornam cada leitura barata; por isso os tokens caíram menos do que as chamadas.
  • O que você pergunta. Cadeias de erro exatas favorecem o grep; descrições de comportamento favorecem o Pensieve.

Lembre também que o benchmark mede apenas a busca, não uma sessão completa: uma sessão real também gasta tokens editando, testando e raciocinando. Os scripts vêm no repositório justamente por isso: o número que conta é o seu.

Como instalar o Pensieve?

O caminho mais rápido é um único comando (ou colá-lo no seu agente e deixar que ele o execute):

curl -fsSL https://tedhaley.ca/pensieve/install.sh | sh

Em um Mac com Apple Silicon, isso baixa o app e instala o backend pensieve. Você não precisa de git, das ferramentas do Xcode nem de Python. Se preferir não executar um script baixado diretamente no seu shell, instale o backend manualmente:

uv tool install git+https://github.com/TedHaley/pensieve

Depois escolha o que indexar. O Pensieve não indexa nada até você concluir a configuração inicial:

pensieve setup                  # lista las sesiones de agentes, carpetas y repos encontrados, con sus tamaños
pensieve setup recommended      # indexa los marcados con [x]

Para indexar apenas um repositório específico, nomeie-o: pensieve setup repos//Users/me/code/app (o caminho absoluto vai depois de repos/).

O que esperar no primeiro uso (válido em 12 de outubro de 2026, versão 0.6.3):

  • Um download grande. Ele baixa um modelo de embeddings de cerca de 1,2 GB.
  • Uma primeira indexação pesada. Avança a uns 500 arquivos de código por minuto no Apple Silicon, então um repositório de 35.000 arquivos leva pouco mais de uma hora. Ligue o carregador.
  • Um aviso do Gatekeeper. O app ainda não é notarizado, então o macOS pode bloqueá-lo na primeira vez. Vá em Ajustes do Sistema → Privacidade e Segurança → Abrir Mesmo Assim.
  • Um comando de configuração que pode não ter efeito. No nosso teste de 12 de outubro de 2026, pensieve setup repos//… não adicionou o repositório à fila. Adicioná-lo em Settings → Sources → add repo funcionou.

Como adicionar o Pensieve como servidor MCP no Claude Code, Codex ou Cursor?

Um único comando conecta todos os agentes que ele encontrar no seu Mac:

pensieve integrate recommended

Ele detecta Claude Code, Codex, Cursor, Gemini CLI, Qwen Code, Windsurf, Claude Desktop e VS Code, e registra o Pensieve como servidor MCP em cada um. No Claude Code, além disso, adiciona:

  • o bloco “busque antes de fazer grep” em ~/.claude/CLAUDE.md
  • o skill pensieve-search
  • dois hooks:
    • um PostToolUse, para que as novas edições possam ser buscadas na hora
    • um SessionStart, que pergunta uma vez se você quer indexar um repositório desconhecido

Não pule o bloco de instruções. Sem ele, os agentes continuam fazendo grep por hábito mesmo com o Pensieve conectado, e nosso benchmark rodou com ele ativado.

Se preferir adicionar o servidor MCP ao Claude Code manualmente, com claude mcp add:

claude mcp add --scope user pensieve -- pensieve mcp

Escopos (scopes). Por padrão, cada agente fica limitado ao repositório em que foi iniciado, junto com seus worktrees e suas sessões anteriores. Ele não vê o resto do seu código. Para os agentes que só aceitam uma configuração JSON via stdio, é esta:

{"mcpServers": {"pensieve": {"command": "pensieve", "args": ["mcp"]}}}

Reinicie qualquer agente que já esteja aberto para que ele carregue o servidor.

Se você quer cortar tokens no Claude Code por outros caminhos, aqui explicamos como fazer isso com hooks, e aqui como ver o consumo de tokens no Codex CLI.

É grátis e algo sai do seu Mac?

Preço: é grátis e open source, sob licença MIT.

O que fica local: a indexação e a busca rodam no seu Mac, e o servidor local só responde à sua máquina. Arquivos que parecem segredos nunca são indexados (.env, chaves, credenciais, exportações de gerenciadores de senhas). Você pode desativar qualquer fonte e, ao fazer isso, o que estava indexado é apagado.

O que sai:

  • o download do modelo
  • uma verificação de atualizações no GitHub, que você pode desativar
  • os resumos de IA opcionais, só se você escolher Claude Code ou Codex para escrevê-los. Eles estão marcados como Cloud. O Qwen 3.5 9B integrado ou o LM Studio mantêm tudo local.

Uma nota para equipes. As fontes padrão incluem ~/Documents, ~/Desktop e ~/Downloads. Você escolhe o que é indexado durante a configuração, então, em um computador de trabalho, escolha com critério.

Funciona no Windows ou no Linux?

Em parte. Na versão 0.6.3:

  • Mac com Apple Silicon (macOS 14 ou posterior): app de desktop completo.
  • Linux e Mac com Intel: o instalador configura o backend a partir do código-fonte com uv, então a busca via MCP e o mapa no navegador funcionam. O painel de busca é só para macOS, embora um Mac com Intel também o receba se tiver instaladas as ferramentas de linha de comando do Xcode.
  • Windows: no momento da publicação desta nota, a documentação não o menciona.

Como repetir o teste no seu próprio repositório?

Os scripts do benchmark vêm no repositório, então você não precisa acreditar nem em nós nem no autor. Estes são exatamente os comandos que executamos:

git clone https://github.com/TedHaley/pensieve && cd pensieve && git checkout v0.6.3
uv run python bench/agent_search.py gen --repo ~/code/myrepo -n 40 --tasks tasks-v2.jsonl
uv run python bench/exact_tasks.py
uv run python bench/agent_search.py find --repo ~/code/myrepo --tasks tasks-v2.jsonl --split all --styles query,desc,mixed,ident,literal
uv run python bench/agent_search.py run --repo ~/code/myrepo --tasks tasks-v2.jsonl --split all --reps 2 --arms grep,guided
uv run python bench/agent_search.py report --repo ~/code/myrepo --tasks tasks-v2.jsonl

Cada execução tem um teto de 1 USD e o comando run retoma de onde parou se for interrompido. Se você usa o Claude Code com assinatura em vez de cobrança por API, as execuções contam contra seus limites de uso. Se procura outras ferramentas que cortam o que o seu agente lê, o code-review-graph aplica a mesma ideia à revisão de código.


E você? Quantas chamadas de ferramentas o seu agente faz antes de encontrar o arquivo que você procura?

Como o seu agente encontra código hoje?
  • Grep e leitura de arquivos, nada mais
  • Um índice ou servidor MCP de busca
  • Eu indico os arquivos manualmente
  • Outra forma (conte qual)
0 votantes

Comente abaixo ou, se este artigo chegou a você por e-mail, responda diretamente ao e-mail: sua resposta é publicada aqui.

Relacionado: Como reduzir tokens no Claude Code com hooks e Portal do Spotify