Motivação
- Nas notas de lançamento do Claude Opus 4.7, a parte que mais chamou atenção foi o trecho sobre o "aumento no uso de tokens".
- Com a chegada de uma era em que dá para fazer muito mais se houver tokens e tempo suficientes, a eficiência no uso de tokens também continua sendo uma questão importante
- Desde por volta de março, a comunidade ficou agitada com o fato de o Claude Code ter reduzido discretamente o TTL do cache de 1 hora → 5 minutos
- Uma análise mostrou que, ao medir com o Opus 4.7, ele consome quase 1,5x mais tokens do que o 4.6
- Também existe um repositório de pesquisa sobre a eficiência do cache do Claude Code
- Surgiu então a dúvida: "será que dá para melhorar a eficiência de tokens no Claude Code e no Codex mudando valores de configuração?". Ao analisar a documentação oficial do Claude Code (configuração/variáveis de ambiente/IDE), a documentação oficial do Codex (configuração/variáveis de ambiente/MCP) e também o código-fonte do Codex, foi possível chegar a resultados significativos
- Além do modo interativo que uso no dia a dia, também descobri várias formas de melhorar eficiência de tokens, velocidade de inicialização e estabilidade no modo não interativo, de forma programável
Prompt para analisar meu estado atual
Sem enrolação: para quem quer inspecionar como estão as configurações do próprio coding agent, segue um prompt:
https://gist.github.com/spilist/c468cbf1ed0ffc91100f813aabdcd520/… 를 읽고 그대로 실행해줘
O que realmente consome tokens
Em coding agents, em geral há três caminhos principais por onde os tokens vazam:
- Texto adicional anexado automaticamente a cada sessão ou a cada turno
- Saídas longas demais de chamadas de ferramentas que permanecem no histórico da conversa
- Chamadas adicionais causadas por conexões externas, como busca, conectores e integração com IDE
Apresento abaixo os controles no Claude Code e no Codex que permitem reduzir esses três pontos. (Itens básicos como desligar servidores MCP/plugins que você não usa, ajustar modelo e nível de reasoning etc. foram omitidos.)
- Explicações de cada configuração, bem como os trade-offs, estão descritos em detalhes no blog
Claude Code (última versão verificada: 2.1.114)
-
includeGitInstructions: false
-
autoConnectIde: false
-
CLAUDE_CODE_GLOB_NO_IGNORE=false
-
Definir limites de saída (
BASH_MAX_OUTPUT_LENGTH,CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS,MAX_MCP_OUTPUT_TOKENS) -
Variáveis de ambiente e flags para tarefas curtas e simples, ou para modo não interativo
ENABLE_CLAUDEAI_MCP_SERVERS=false: desativar servidores MCPCLAUDE_CODE_DISABLE_AUTO_MEMORY=1: impedir que memórias salvas automaticamente sejam carregadasCLAUDE_CODE_DISABLE_CLAUDE_MDS=1: ignorarCLAUDE.mdglobal/do projetoCLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1: excluir subagentes embutidos e definições de skills do system prompt--tools: ativa ferramentas nativas seletivamente. Com--tools "", todas ficam desativadas. Em workers que usam apenas a inteligência do modelo, dá até para desligar tudo; mas em tarefas interativas simples, se desligar tudo ele pode não conseguir fazer nada, então vale ativar só o necessário, como"Bash,Edit,Glob,Grep,Read,Write"--strict-mcp-config: usa apenas a configuração de MCP especificada pela CLI e ignora a configuração global de MCP. Isso permite injetar de forma limpa apenas os conectores necessários para cada worker.--disable-slash-commands: remove do system prompt as definições de slash commands como/helpe/clear--no-session-persistence: não usa o caminho de salvar/retomar sessões, então some o rastro de execuções pontuais--exclude-dynamic-system-prompt-sections: exclui seções que mudam conforme a máquina/ambiente, aumentando a taxa de reutilização do cache de prompt--system-prompt: além de tudo isso, também é possível substituir completamente o system prompt do Claude
-
Esvaziar a attribution
Codex CLI (última versão verificada: 0.121.0 + código-fonte do Github do Codex correspondente a essa versão)
- Desativar o MCP (apps/conectores) ligado ao ChatGPT (
features.apps = false) web_search = "disabled"- Definir limite de saída (
tool_output_token_limit) - Flags para funcionar bem no modo não interativo
--profile: permite agrupar certas configurações (comoweb_search = "disabled",tool_output_token_limit = 2000etc.) e aplicá-las seletivamente--json+--output-last-message FILE: facilita parsing/extração em pipelines e reduz o novo consumo de tokens na etapa de pós-processamento--sandbox read-only: em automações que só precisam de leitura, bloqueia o ciclo de tentativa de escrita não intencional → retry loop → desperdício de tokens--skip-git-repo-check: permite executar mesmo fora de um diretório confiável--ephemeral: não salva arquivos de sessão no disco--color never: deixa a saída de pipe mais limpa
- Esvaziar a attribution
Encerrando
Fiz uma checagem cuidadosa dos fatos, mas é claro que ainda pode haver algum erro. Se você notar algo, ficarei grato se puder avisar.
5 comentários
Obrigado.
Parece que vai ser um bom material de referência. Se a abordagem do texto principal é fechar a válvula dos "tokens de entrada",
eu já passei muito por casos em que o problema é a própria quantidade de coisas "registradas", então experimentei criar uma ferramenta chamada claude-slim.
É uma CLI que faz varredura, classificação e organização de situações como metade de 60 skills nunca ter sido usada, ou o CLAUDE.md ter ficado inchado por causa de plugins. A contagem de tokens é baseada em js-tiktoken,
e, em vez de remover, move para
skills.disabled/, então dá para restaurar a qualquer momento.https://github.com/iops-leo/claude-slim
Como a direção complementa exatamente as configurações do texto, acho que vale a pena usar em conjunto
Nossa, obrigado por compartilhar!
Obrigado por compartilhar essa informação útil. Fundamentalmente, tenho sentido que o próprio uso de tokens diminuiu demais, então seria bom se aumentassem isso no Claude. Como o harness fica rodando e acaba sendo interrompido no meio...
Obrigado. O consumo de tokens do Claude também é alto e, comparado ao Codex, eu fico um pouco menos satisfeito com o trabalho, então ultimamente tenho trabalhado mais com o Codex.