Economia de Tokens em CLIs de IA: Skills, Dispatch, RTK e Caveman sem Folclore

English summary (PT-BR article): A practical guide to reducing token waste in AI coding CLIs with skills-selector, smart-dispatch, RTK, caveman, and context-mode. It explains the definitions, the architecture, the realistic savings model, example skill files, and the trade-offs that matter in real engineering work.
O desperdício de tokens em um CLI de IA quase nunca parece desperdício no momento em que acontece.
Parece só uma busca grande demais. Um git diff sem filtro. Um log de teste com 800 linhas. Um agente explicando o óbvio em cinco parágrafos antes de tocar no arquivo. Uma skill inteira carregada para uma tarefa que precisava de duas linhas. Um modelo caro respondendo uma tarefa mecânica. Uma sessão longa que se perde porque o contexto ficou cheio de ruído operacional.
Isoladamente, cada evento parece pequeno. Em uma semana de trabalho real, eles viram custo.
O ponto central deste artigo é simples: economia de tokens em CLIs de IA não é uma técnica única. É uma arquitetura de execução.
Você não resolve esse problema apenas escrevendo "seja breve" no final do prompt. Isso ajuda, mas não governa o fluxo inteiro. O ganho aparece quando o stack reduz desperdício em cinco pontos diferentes:
Esse é o papel do stack formado por skills-selector, smart-dispatch, rtk, caveman e context-mode.
Não é mágica. Também não é desculpa para comprimir informação crítica. É engenharia operacional aplicada ao uso diário de Claude Code, Codex CLI, Gemini CLI e ferramentas semelhantes.
Em uma aplicação tradicional de LLM, você costuma pensar em tokens como custo de API: entrada, saída, preço por milhão, latência e limite de contexto.
Em um CLI de IA, tokens têm uma função mais ampla. Eles viram largura de banda operacional.
Cada token usado para carregar uma instrução irrelevante é um token que não pode carregar código importante. Cada token gasto em log repetido reduz espaço para raciocínio sobre o bug. Cada resposta longa demais aumenta latência, custo e risco de a próxima iteração começar com contexto pior.
Em trabalho agentic, token não é só unidade de cobrança. É unidade de atenção.
Um stack eficiente precisa responder quatro perguntas:
Quando essas perguntas ficam implícitas, o modelo decide no improviso. Quando viram stack, o comportamento fica repetível.
| Componente | Definição curta | Principal desperdício que remove |
|---|---|---|
skills-selector | Meta-skill que escolhe quais skills carregar por tarefa | Contexto permanente e skills pesadas sem necessidade |
smart-dispatch | Skill de roteamento para modelo, agente ou provedor adequado | Uso de modelo caro ou lento para tarefa simples |
rtk | Proxy de shell que filtra saída antes de entrar no contexto | Logs, diffs e listagens verbosas |
caveman | Modo de comunicação compacta do assistente | Prosa de status, confirmação e explicação sem valor técnico |
context-mode | Padrão/MCP para manter outputs grandes fora da janela principal | Contexto poluído por artefatos que só precisam ser consultáveis |
A ordem importa:
skills-selector -> smart-dispatch -> rtk -> caveman -> context-mode
Essa ordem não é estética. Ela segue o caminho do desperdício.
Primeiro você evita carregar instrução errada. Depois evita escolher modelo errado. Depois filtra o que ferramentas devolvem. Depois reduz ruído na resposta do agente. Por fim, tira material pesado da janela principal quando ele precisa existir, mas não precisa ser lido inteiro pelo modelo.
Muita gente tenta resolver custo com um comando de estilo:
responda curto
Isso melhora a saída do modelo, mas não resolve:
git status expandido;npm test despejando stack trace duplicado;Economia de tokens séria atua antes, durante e depois da resposta.
Esse diagrama mostra o motivo do ganho composto. Cada componente reduz uma categoria diferente de tokens. Se você usa só um deles, melhora um ponto. Se usa todos com critério, reduz desperdício em várias camadas do workflow.
skills-selector: a skill que impede a biblioteca de skills de virar ruídoskills-selector é uma meta-skill.
O trabalho dela não é resolver a tarefa final. O trabalho dela é decidir qual skill merece entrar no contexto agora.
Isso parece detalhe até você ter 40, 80 ou 120 skills instaladas. Sem curadoria, uma biblioteca de skills vira um novo problema: triggers concorrentes, instruções redundantes, workflows pesados para tarefas pequenas e contexto tomado por material que não participa da decisão.
Uma boa skills-selector faz quatro coisas:
O princípio é: skill só entra quando reduz risco real ou melhora o resultado da tarefa atual.
Exemplo de comportamento esperado:
| Pedido | Decisão econômica |
|---|---|
| "corrige TS2322 nesse arquivo" | usar skill barata de bug ou correção direta |
| "cria um artigo completo e publica no blog" | carregar skill de blog e MCP de publicação |
| "redesenha a landing inteira" | carregar skill de design pesada, porque o domínio exige |
| "qual comando roda os testes?" | não carregar skill; responder inline |
O ganho vem de evitar a falsa sofisticação. Em tarefas simples, o melhor stack é quase nenhum stack.
skills-selector/SKILL.mdO exemplo completo usado como artefato deste artigo está em examples/skills-selector/SKILL.md. Uma versão reduzida:
---
name: skills-selector
description: Meta-skill que roda primeiro em cada nova tarefa para escolher o menor conjunto de skills necessario.
allowed-tools: Read, Grep, Glob
---
# Skills Selector
## Protocolo
1. Classifique a intencao primaria: build-code, fix-bug, review, docs, content, ops ou trivial.
2. Liste skills candidatas apenas quando reduzem risco ou trabalho real.
3. Corte skills pesadas se a tarefa couber em resposta inline ou poucas chamadas de ferramenta.
4. Emita um bloco curto:
```text
SKILLS: [skill-a, skill-b]
INTENT: content
REASON: artigo + publicacao via MCP
BUDGET: medium
NEXT: ler fonte e criar arquivo
```
## Regras
- Nunca selecione a si mesma.
- Prefira skill de dominio a skill generica.
- No maximo duas skills por turno, salvo pedido explicito.
- Se nenhuma skill ajuda, use `SKILLS: []`.
O ponto não é copiar esse arquivo literalmente. O ponto é capturar o papel de um classificador: antes de trabalhar, decidir qual workflow deve governar o trabalho.
smart-dispatch: economia por escolher o executor certosmart-dispatch resolve outra camada do problema.
Mesmo com a skill correta, você ainda pode gastar demais se usar o modelo errado. Nem toda tarefa precisa do modelo mais caro, do maior contexto ou de um subagente autônomo. Também nem toda tarefa deve ser empurrada para um modelo barato.
O objetivo do smart-dispatch é responder:
Esse roteamento reduz custo de duas formas.
Primeiro, evita usar capacidade excessiva para trabalho simples. Segundo, reduz retrabalho causado por escolher um executor fraco demais para uma tarefa complexa.
| Tipo de tarefa | Executor econômico |
|---|---|
| Renomear campo, atualizar i18n, boilerplate | modelo rápido/barato ou execução inline |
| Implementação com lógica moderada | modelo padrão forte |
| Arquitetura, bug ambíguo, decisão com trade-offs | modelo de maior raciocínio |
| Screenshot, layout visual, documento enorme | modelo ou ferramenta com melhor multimodal/contexto |
| Subtarefas independentes | agentes paralelos, se o ambiente permitir |
O erro comum é pensar que economia significa sempre escolher o mais barato. Não significa. Economia significa escolher o menor executor que ainda entrega qualidade suficiente.
smart-dispatch/SKILL.mdO exemplo completo está em examples/smart-dispatch/SKILL.md. Versão reduzida:
---
name: smart-dispatch
description: Roteia tarefas para o modelo, agente ou provedor adequado por custo, capacidade e risco.
---
# Smart Dispatch
## Matriz
| Tarefa | Caminho |
| --- | --- |
| mecanica | inline ou modelo rapido |
| implementacao padrao | modelo padrao de codigo |
| arquitetura | modelo de raciocinio forte |
| imagem ou UI visual | modelo multimodal |
| contexto acima de 100k tokens | modelo/contexto grande |
## Regras
- Use subagente apenas quando trabalho paralelo reduz caminho critico.
- Nao delegue a proxima tarefa bloqueante.
- Prefira executor barato quando risco e ambiguidade forem baixos.
- Prefira executor forte quando erro custar retrabalho.
Uma boa dispatch policy é uma planilha de trade-offs dentro do workflow. Ela transforma "qual modelo eu uso?" em decisão operacional, não preferência pessoal.
rtk: o proxy que impede o terminal de inundar o contextortk significa Rust Token Killer.
Na prática, ele atua como um proxy para comandos de shell. Em vez de deixar o CLI despejar a saída bruta no contexto do agente, o rtk executa o comando e devolve uma versão filtrada, agrupada ou resumida.
Isso importa porque shell é uma das maiores fontes de desperdício em sessões reais:
git status repete instruções humanas irrelevantes;git diff pode trazer contexto demais;Segundo a documentação pública do RTK consultada em 2 de maio de 2026, o projeto declara reduções típicas de 60% a 90% em comandos comuns de desenvolvimento, com estratégias como filtragem, agrupamento, truncamento e deduplicação. Esses números devem ser tratados como estimativas dependentes do projeto, não como garantia universal.
O valor arquitetural do rtk não é só "resumir". É resumir antes de o conteúdo entrar na janela de contexto.
Exemplo:
rtk git status
rtk git diff
rtk pytest
rtk npm test
rtk rg "UserRepository"
rtk gain --history
O comando mais importante para governança é:
rtk gain
Sem medição, economia de tokens vira crença. Com medição, você começa a enxergar quais comandos realmente queimam contexto.

AI Developer
Engenheiro apaixonado por Inteligência Artificial aplicada a produtos reais. Conecto avanços em LLMs e modelos de linguagem com resultados práticos de negócio. Também mentoro desenvolvedores e criadores em programas ao vivo, podcasts e iniciativas de comunidade focadas em tecnologia inclusiva.
Productos gratuitos y de pago para convertir ideas en una base que puedas lanzar.
13 productos disponiblesContinúa explorando temas similares

Um guia prático para transformar skills de IA em loops de feedback incrementais, com regras, evals, auditoria e melhoria contínua do ambiente de execução

Harness virou uma das ideias mais importantes do desenvolvimento com AI em 2026. Este guia mostra o que é um agent harness, por que ele importa, como implementar guardrails e um LLM Evaluation Harness em TypeScript e quando essa abordagem funciona melhor do que um fluxo de Spec-Driven Development rígido.

Fine-tuning learns behavior; RAG provides context. In 2026, the choice isn't binary—it's architectural. Explore deep metrics, PEFT/LoRA code, and hybrid patterns.
Un checklist práctico para validar seguridad, costos, evaluaciones y observabilidad antes de llevar tu app con IA a producción.
Templates probados en producción, usados por desarrolladores. Ahorra semanas de setup en tu próximo proyecto.
caveman: compressão de comunicação, não compressão de verdadecaveman é uma skill/modo de comunicação ultra-compacta.
Ela corta introduções, frases de cortesia, redundância, hedging desnecessário e explicações de processo quando o usuário só precisa de estado, decisão ou próxima ação.
Em sessões de desenvolvimento, isso é valioso porque boa parte da conversa do agente é metacomunicação:
Essas mensagens precisam existir. Mas raramente precisam de cinco frases.
O uso correto de caveman é:
Bug: parser aceita input vazio. Fix: valida tamanho antes do parse. Testes agora.
Em vez de:
Eu identifiquei que o problema parece estar relacionado ao parser aceitar entradas vazias sem validação adequada, então vou ajustar a lógica para adicionar uma checagem antes da etapa de parse e depois executar os testes relevantes para confirmar o comportamento.
A diferença é pequena em uma mensagem. Em cem mensagens, vira contexto.
Mas existe uma fronteira importante: caveman não deve comprimir código, contratos, mensagens de commit, PRs, avisos de segurança, instruções irreversíveis ou explicações que dependem de nuance. O próprio ecossistema público do caveman tem claims agressivos de economia, e também já existem benchmarks independentes mostrando que um simples "be brief" pode empatar em alguns cenários. A conclusão prática é: use caveman como política de comunicação, não como fonte única de verdade sobre economia.
context-mode: tirar material pesado da janela principalcontext-mode é menos uma ferramenta específica e mais um padrão arquitetural.
A ideia é manter outputs grandes em um sandbox, arquivo temporário, recurso MCP ou storage consultável, em vez de colar tudo na conversa principal.
Isso serve para:
O agente precisa saber que o material existe, onde está e como buscar trechos relevantes. Ele não precisa carregar tudo sempre.
Pense nisso como diferença entre biblioteca e mesa de trabalho. A biblioteca pode ser grande. A mesa precisa conter só o material em uso.
Um erro comum é somar promessas:
rtk economiza 80%
caveman economiza 70%
skills-selector economiza 40%
logo vou economizar 190%
Isso é matematicamente absurdo.
O efeito real é composto porque cada componente atua sobre bases diferentes.
| Camada | Base afetada |
|---|---|
skills-selector | tokens de instrução e contexto carregado |
smart-dispatch | custo por token, latência e chance de retrabalho |
rtk | tokens vindos de ferramentas de shell |
caveman | tokens de saída do assistente |
context-mode | tokens de artefatos grandes e persistentes |
Uma sessão típica de desenvolvimento tem vários tipos de token:
tokens totais =
instrucoes permanentes
+ skills carregadas
+ arquivos lidos
+ saida de ferramentas
+ raciocinio/resposta do modelo
+ historico acumulado
+ artefatos grandes
Cada ferramenta corta uma parte. Por isso, o ganho líquido real pode ser alto, mas precisa ser medido por sessão e por tipo de trabalho.
Um modelo conservador:
| Cenário | Sem stack | Com stack disciplinado |
|---|---|---|
| Tarefa pequena | ganho baixo ou neutro | overhead pode não compensar |
| Bug com logs/testes | ganho alto | rtk e context-mode dominam |
| Refactor longo | ganho médio-alto | dispatch e contexto importam |
| Escrita/documentação | ganho médio | caveman ajuda no processo, não no artefato final |
| UI com screenshots | ganho depende da ferramenta multimodal | dispatch importa mais que compressão |
Na prática, a faixa de 65% a 80% de economia líquida descrita no rascunho original é plausível para sessões longas e verbosas, especialmente quando há muito shell output. Mas ela deve ser comunicada como estimativa de uso real, não como SLA.
Se você quer levar economia de tokens a sério, crie um protocolo simples.
Não misture tudo em um número médio. Meça pelo menos:
Faça uma sessão curta com:
rtk;caveman;Anote:
Repita o mesmo tipo de tarefa com:
skills-selector no início;smart-dispatch quando houver decisão de executor;rtk;Economizar token e piorar decisão é prejuízo.
Métricas úteis:
| Métrica | Por que importa |
|---|---|
| tokens por tarefa concluída | mede eficiência final |
| turnos até primeira ação correta | mede foco |
| comandos com output filtrado | mede disciplina de shell |
| retrabalho por contexto perdido | mede qualidade de contexto |
| tempo até validação | mede produtividade real |
| erro ou regressão pós-fix | mede custo escondido |
rtk gain, mas não pare nelertk gain mede a camada de shell. Ele não mede tudo:
Então use rtk gain como recibo de uma camada, não como contador universal do stack.
A lógica do stack é portável. A instalação concreta muda.
| CLI | Arquivo de instrução | Extensão/skill | Observação |
|---|---|---|---|
| Claude Code | CLAUDE.md, skills, plugins, hooks | skills e hooks nativos | melhor suporte para hooks e plugins |
| Codex CLI | AGENTS.md, config, MCP, hooks | skills/plugins conforme ambiente | bom para workflows orientados a repositório |
| Gemini CLI | GEMINI.md, .gemini/settings.json, extensions | extensions e MCP | flexível para contexto e configuração |
Para repositórios compartilhados, AGENTS.md é uma base forte porque funciona como um README para agentes. A documentação pública do formato recomenda guardar ali setup, testes, estilo, segurança e instruções operacionais que seriam ruído no README humano.
O padrão que costumo usar:
AGENTS.md
docs/ai/rules/
01-overview.md
02-content-outputs.md
03-style-and-voice.md
...
.codex/skills/
skills-selector/
smart-dispatch/
caveman/
hooks.json
O AGENTS.md fica como índice. As regras detalhadas vivem em arquivos menores. As skills entram sob demanda. Hooks automatizam o que não deveria depender da memória humana.
Uma política prática:
1. Toda tarefa nova começa com skills-selector.
2. Se houver escolha de executor, smart-dispatch decide.
3. Todo comando de shell passa por rtk, exceto quando output bruto for requisito.
4. Comunicação de status usa caveman ou modo breve.
5. Logs e dumps grandes ficam em context-mode.
6. Artefatos finais não são comprimidos por estilo.
7. Avisos de segurança e ações irreversíveis usam prosa clara.
8. Toda estimativa de economia precisa de recibo ou caveat.
Essa política tem uma intenção: comprimir operação, não comprimir qualidade.
Código, artigo final, PR description, changelog e documentação pública devem ser escritos normalmente. O que precisa ser econômico é o caminho até chegar neles.
O rascunho original estimava:
Esses números podem fazer sentido para um desenvolvedor full-time usando CLIs de IA intensamente, mas dependem de variáveis fortes:
rtk;Uma fórmula melhor:
economia_mensal =
(tokens_baseline - tokens_stack) * preco_medio_por_token
+ horas_recuperadas * custo_hora
- custo_de_setup
- custo_de_manutencao
E uma pergunta mais honesta:
o stack reduziu custo mantendo ou elevando a qualidade final?
Se a resposta for não, você só otimizou a métrica errada.
Nem toda tarefa merece o stack completo.
Se a tarefa é "troque uma palavra no README", carregar meta-skill, dispatch e plano é cerimônia.
Use execução direta.
Se o comando retorna três linhas, rtk é neutro. Não faz mal, mas também não é onde está o ganho.
Em segurança, migração de dados, deleção, deploy ou decisão arquitetural crítica, compressão excessiva cria risco. Seja claro.
caveman é para coordenação. Não é para transformar artigo, código ou documentação pública em fragmentos telegráficos.
Comparar só tokens é raso. Uma resposta pode usar menos tokens porque removeu a parte importante.
| Nível | Comportamento |
|---|---|
| 0 | Usuário pede "seja breve" quando lembra |
| 1 | Usa rtk manualmente em comandos grandes |
| 2 | Usa skills-selector antes de tarefas relevantes |
| 3 | Dispatch decide executor por risco e custo |
| 4 | Hooks automatizam seleção, shell proxy e comunicação |
| 5 | Métricas de economia e qualidade entram no workflow do time |
O nível 5 é onde isso deixa de ser truque individual e vira infraestrutura de produtividade.
Bons times não vão discutir "qual prompt mágico economiza token". Eles vão tratar tokens como tratam CPU, memória, logs e custo de cloud.
Isso significa:
O stack não substitui engenharia. Ele força engenharia onde antes havia improviso.
Economia de tokens em CLIs de IA não é pedir para o modelo falar menos. É fazer o sistema desperdiçar menos.
skills-selector reduz instrução inútil. smart-dispatch reduz executor errado. rtk reduz terminal verboso. caveman reduz coordenação inchada. context-mode reduz contexto ocupado por artefatos grandes.
Separados, eles ajudam. Juntos, formam uma política de execução.
O objetivo não é transformar o agente em algo minimalista por estética. O objetivo é preservar o que importa: código, evidência, decisão, teste, fonte, risco e próxima ação.
Tokens são orçamento de atenção. Gaste onde muda o resultado.