DEV Community

Cover image for Como economizar tokens no Claude Code: conheça o Downshift
Tiago Vilas Boas (Montanha)
Tiago Vilas Boas (Montanha)

Posted on

Como economizar tokens no Claude Code: conheça o Downshift

Há cerca de seis meses, comecei a usar o Claude Code no plano Pro, que me custava US$ 20 por mês. Em poucos dias de trabalho, eu já esgotava o limite semanal sem entender por quê. Era como uma mesa cheia de papéis: eu precisava de uma informação, mas o restante ocupava espaço.

Foi dessa dor que nasceu o Downshift, meu projeto open source em Go e um dos mais importantes da minha carreira. As principais funcionalidades são:

  • Compactor: encurta resultados de comandos antes que a IA os leia, preservando erros e códigos de saída. No Computer Use, quando o agente opera aplicativos, também compacta as descrições de tela do Agent Desktop e pode enviar apenas o que mudou entre leituras da mesma janela.
  • Model-routing: aplica regras para escolher o modelo e quanto esforço ele deve dedicar às tarefas recebidas pelos subagentes, os agentes auxiliares. A escolha considera a política definida, os modelos disponíveis e o suporte da ferramenta utilizada.
  • Agents: reúne perfis especializados e skills, instruções reutilizáveis para atividades como pesquisa, implementação, revisão e segurança. Eles orientam como dividir o trabalho e o que cada agente deve entregar.
  • Telemetry: permite acompanhar sessões, escolhas de modelos e resultados da compactação. Esses dados ajudam a enxergar onde os recursos estão sendo usados e o que vale otimizar.

O projeto está em beta. O código e a documentação estão no GitHub. Já há resultados em cenários específicos, mas ainda falta medir quanto eles prolongam o uso do plano Pro no dia a dia.

Ilustração dos agentes do Downshift trabalhando em conjunto

O que precisei estudar para construir o Downshift

Para entender esse consumo, precisei estudar contexto, o conjunto de informações que o modelo recebe, e tokens, as unidades de texto que ele processa. Uma pergunta curta pode carregar arquivos, histórico e resultados de comandos, como explica a documentação do Claude Code. A engenharia de contexto, apresentada pela Anthropic, trata de como escolher e organizar esse material.

Também estudei como dividir tarefas entre agentes e escolher modelos e níveis de esforço. Building effective agents é uma referência para essa arquitetura. Junto disso vieram os testes: uma saída menor precisa continuar dando ao agente condições de executar a tarefa. Essa relação entre otimização e qualidade aparece em Demystifying evals for AI agents.

Como reduzir o consumo de tokens no Claude Code

Ao construir o Compactor, percebi que boa parte do tratamento das saídas dos comandos podia ser feita por funções em Go: reconhecer formatos, contar testes e separar o que passou do que falhou. Esse processamento segue regras e acontece localmente, sem chamar um modelo de IA para resumir o resultado. A informação já chega mais enxuta ao agente.

Exemplo didático: você pede ao agente para corrigir uma falha em um projeto Go. Ele investiga o código, faz a alteração e executa os testes. A resposta do terminal também entra no contexto. É nessa etapa que o compactador pode entregar uma versão mais curta, preservando o código de saída e os detalhes de falhas.

No Claude Code configurado, o hook encaminha comandos compatíveis e associa a execução à sessão. Para experimentar a compactação manualmente, fora desse fluxo:

downshift compactor -- go test ./...
Enter fullscreen mode Exit fullscreen mode

Uma execução local de 10 de novembro, com uma seleção de testes do Downshift e saída detalhada (go test -v), mostra a diferença. Trechos reais:

Antes:

=== RUN   TestStripColour
--- PASS: TestStripColour (0.00s)
=== RUN   TestScreenText
--- PASS: TestScreenText (0.00s)
Enter fullscreen mode Exit fullscreen mode

Depois:

Go test -v: PASS (5 passed, 0 failed, 0 skipped) in 0.187s
Subtests: 16 passed or skipped under those tests
Enter fullscreen mode Exit fullscreen mode

A entrega completa caiu de 2.006 para 271 bytes, incluindo a indicação de recuperação: 86,5% menos bytes nessa execução. O original pôde ser recuperado com downshift retrieve ID_DA_SUA_SAIDA. É uma demonstração local; esse percentual não mede tokens nem duração do plano Pro.

O padrão passa a ser balanced: cortes com perda só acima de um limite de tamanho, sempre com a saída completa recuperável via retrieve. O lossless é a opção conservadora, sem cortes com perda; o aggressive faz cortes mais intensos. Nas minhas medições mais recentes no Claude Code, usei lossless; antes, usava balanced.

Também há situações em que o Compactor devolve a saída inteira. Por exemplo: em uma execução de testes com falha, uma linha que o parser não reconhece antes do bloco de erros pode impedir a compactação. O agente recebe o resultado original, com os detalhes necessários para investigar. Esse comportamento está descrito na documentação de compactação de testes com falha.

Fluxo de compactação da saída de comandos no Downshift

Roteamento de modelos: capacidade proporcional à tarefa

Na mesma correção, o agente principal pode delegar uma parte do trabalho a um subagente. Renomear uma variável e avaliar uma mudança de arquitetura exigem capacidades diferentes. O Downshift aplica as regras configuradas às escolhas do agente principal, considerando os modelos conhecidos da sessão.

Essa etapa acontece localmente, sem consultar outro modelo de linguagem. Quando não é possível estabelecer uma escolha segura, o modelo solicitado é mantido. O modelo da sessão principal permanece o mesmo.

Diagrama do roteamento de subagentes e verificação de política do Downshift

Na sessão instrumentada, downshift session --why mostra a árvore de subagentes e seus motivos; downshift report reúne os dados de consumo disponíveis. Essas informações ajudam a investigar saídas e decisões de delegação antes de mudar a configuração. A chamada manual da demonstração acima não é associada à sessão nem entra nesse painel.

Computer Use: o “Opalão” no consumo de tokens

Outra descoberta foi como o Computer Use pode virar um “Opalão” no consumo de tokens. O agente consulta a interface, executa uma ação e precisa olhar de novo para conferir o resultado. Para trabalhar com o Agent Desktop, estudei as árvores de acessibilidade: estruturas que descrevem textos, botões e campos do aplicativo.

Pense em um formulário: depois de clicar em “Salvar”, o agente precisa conferir a confirmação. Receber toda a descrição da janela novamente repete informações que não mudaram. Na v0.13.0, de 9 de novembro, estendi a compactação a essas leituras: o Downshift encurta a primeira descrição e pode enviar só as alterações, chamadas de deltas, nas seguintes. A leitura completa continua recuperável. Com menos texto repetido no contexto, o agente pode gastar menos tokens para acompanhar a mesma interface.

Um teste sintético de três leituras registrou 84,9% menos bytes. A economia de tokens em um desktop real ainda precisa ser medida. A integração cobre leituras pela linha de comando do Agent Desktop; seus resultados via MCP não são compactados. Os detalhes estão no guia da integração.

Economia de tokens: o que os benchmarks demonstraram

No Claude Code, um estudo controlado com 46 execuções em quatro grupos registrou 24,1% menos tokens por execução aceita com roteamento, comparado ao modo nativo opusplan. O grupo roteado passou nos testes em 12 de 12 execuções; o controle, em 10 de 11. As tentativas que falharam entram na conta.

Esse resultado mede roteamento; o compactador estava desligado nos dois grupos comparados. Foram tarefas mecânicas delegadas, com um operador, em 21 de outubro, antes de mudanças posteriores no roteamento. O benchmark completo documenta a versão e o método.

No KiroCrew, um ensaio de uso real registrou até cerca de 53% menos tokens por tarefa, combinando roteamento e compactação. Foram seis tarefas de controle em uma sessão de várias horas: uma evidência preliminar, que não permite atribuir todo o ganho ao roteamento. Veja o registro e suas limitações.

Na compactação, o benchmark de 110 casos sintéticos registrou 67,1% menos bytes, com recuperação da saída completa habilitada. Bytes, tokens e custo são medidas diferentes. Esses percentuais vêm de cenários distintos e não devem ser somados.

Como instalar e testar o Downshift

Siga o guia de instalação e, no seu repositório, execute:

downshift setup
downshift doctor
Enter fullscreen mode Exit fullscreen mode

O setup apresenta as mudanças antes de aplicá-las; o doctor verifica a configuração. Escolha uma tarefa recorrente, como a correção com testes do exemplo, e compare consumo, tempo para concluir e correções manuais com e sem Downshift. Inclua as tentativas que deram errado: o que importa é chegar a uma entrega aceita.

A integração varia entre Claude Code, Codex, OpenCode, Cursor e outros ambientes. Confira a matriz de suporte.

Fiz o Downshift com carinho, partindo de uma dificuldade minha e pensando em quem também passa por isso. Compartilhei o código e os aprendizados para que esse trabalho possa beneficiar outras pessoas também.

Fiquem à vontade para conhecer o projeto, experimentar e contribuir com ideias ou melhorias. Se usarem nos projetos de vocês, compartilhem os resultados: quero saber como ele funciona no dia a dia de cada um. Espero que seja útil para vocês. Façam bom proveito! 💚

Projeto: github.com/tiagovilasboas/downshift-ai

Top comments (0)