Playbook de economia — checklist completo

TL;DR

Este é o checklist mestre de economia de tokens — a destilação de todas as técnicas desta trilha em uma sequência operacional. Aplicando o conjunto completo, é possível reduzir custos em 60-85% mantendo (ou melhorando) a qualidade. A ordem importa: monitore primeiro para saber onde está o desperdício, depois aplique as técnicas de maior impacto (caching, pruning, routing), e por fim as de ajuste fino. Nunca otimize sem dados — você provavelmente estará otimizando o lugar errado.

Por que playbook e não só checklist

Uma lista de itens sem ordem ou prioridade cria confusão: o time aplica técnicas de ajuste fino antes de estabelecer monitoramento, ou implementa semantic caching antes de resolver o problema mais óbvio de falta de prompt caching.

Este playbook tem sequência deliberada:

flowchart LR
    A["📊 Fase 0\nMonitorar"] --> B["⚡ Fase 1\nQuick wins"]
    B --> C["🔧 Fase 2\nEstrutural"]
    C --> D["🎯 Fase 3\nAjuste fino"]
    D --> E["🔄 Fase 4\nManutenção"]
    E --> A

    style A fill:#d4edda,stroke:#155724
    style B fill:#fff3cd,stroke:#856404
    style C fill:#cce5ff,stroke:#004085
    style D fill:#f8d7da,stroke:#721c24
    style E fill:#e2e3e5,stroke:#6c757d

Regra de ouro: não avance para a próxima fase sem ter completado pelo menos 70% da anterior. Fase 2 sem dados de baseline (Fase 0) é otimização cega.

Fase 0: Monitoramento (ANTES de otimizar)

O ponto de partida. Sem baseline, você não sabe onde está o custo nem como medir o impacto das otimizações.

  • Instalar monitoramento de consumo: ccusage para Claude Code local, Helicone/Langfuse para sistemas com API
  • Registrar baseline de custo diário/semanal por pelo menos 1 semana antes de otimizar
  • Identificar TOP 3 categorias de gasto (por model, por feature, por tipo de operação)
  • Verificar cache hit rate — se <40%, prompt caching é o primeiro fix
  • Verificar distribuição de modelos — se Opus aparece em tasks simples, routing é o primeiro fix
  • Documentar o baseline: “Custo atual: $X/mês, distribuição: Y% input, Z% output, W% thinking”

Referência: 04 - Monitoramento — ccusage, Langfuse, dashboards

Fase 1: Quick wins (alto impacto, baixo esforço)

Técnicas com impacto imediato e implementação simples. Começar por aqui garante ROI rápido.

1.1 Prompt caching

A única otimização com redução de até 90% em custo de input para conteúdo estático repetido.

  • Identificar conteúdo estático no system prompt (instruções, contexto de projeto, tool definitions)
  • Mover conteúdo estático para o início do prompt (antes de conteúdo dinâmico)
  • Adicionar cache_control: {"type": "ephemeral"} no breakpoint correto
  • Verificar que breakpoint está em posição de >1024 tokens do início
  • Medir cache hit rate antes e depois (meta: >70% em sessões recorrentes)

Referência: 05 - Prompt caching na prática

1.2 Context pruning

Remover o que não é necessário — a técnica mais simples de redução de input.

  • Configurar .cursorignore / .claudeignore para excluir node_modules/, dist/, coverage/, *.lock
  • Excluir arquivos de build e gerados do contexto
  • Usar Read com offset/limit para enviar só as linhas relevantes (não arquivos inteiros)
  • Verificar CLAUDE.md — se passou de 200 linhas, há informação desnecessária

Referência: 06 - Context pruning — o que remover do prompt

1.3 Respostas concisas

Output custa 4-5x mais que input — instruir o modelo a ser conciso tem ROI imediato.

  • Adicionar instrução de concisão no system prompt: “Responda de forma direta e sem preâmbulos”
  • Calibrar max_tokens por tipo de endpoint (não deixar no default)
  • Remover solicitações de explicação excessiva quando só o código é necessário

Referência: 13 - Respostas concisas — controlar output tokens

1.4 Model routing básico

Garantir que tarefas simples não usam modelos caros.

  • Mapear os tipos de tasks mais frequentes
  • Identificar quais tasks podem ir para Haiku/Flash (classificação, formatação, templates)
  • Configurar routing explícito para pelo menos as 3 tasks mais frequentes

Referência: 09 - Model routing — modelo certo para a tarefa

Fase 2: Otimizações estruturais (médio esforço, alto impacto)

Requerem mudanças de código ou configuração, mas impacto é sustentável a longo prazo.

2.1 Compactação de histórico em agentes

  • Configurar rolling summarization em agentes de longa duração
  • Usar /compact proativamente quando o contexto passar de ~100K tokens
  • Implementar anchored state document para agentes com estado complexo
  • Configurar /clear entre tarefas independentes

Referência: 08 - Compactação de histórico em agentes

2.2 Compressão de tool definitions

  • Auditar descriptions de tools — se >85 tokens por tool, comprimir
  • Implementar lazy loading: tools não usadas na sessão não entram no system prompt
  • Considerar tool merging (action parameter) para ferramentas relacionadas
  • Verificar uso real de cada tool nas últimas 20 sessões — remover as não utilizadas

Referência: 07 - Compressão de tool definitions

2.3 Sub-agentes eficientes

  • Delegar buscas e leituras para sub-agente Explore (read-only, sem histórico de tool calls)
  • Usar general-purpose apenas para tasks de escrita ou que exigem múltiplas ferramentas
  • Aplicar heurística dos 5K tokens: se contexto relevante > 5K, sub-agente vale a pena
  • Medir custo por sub-agente separadamente

Referência: 10 - Sub-agentes especializados

2.4 Thinking budget

  • Criar whitelist de task_types que justificam extended thinking
  • Desativar thinking por default — ativar só na whitelist
  • Calibrar budget por tipo de task (ex: 5K para review simples, 30K para debugging complexo)
  • Logar thinking_tokens separadamente de output_tokens no dashboard

Referência: 14 - Thinking budget — controlar reasoning tokens

Fase 3: Ajuste fino (menor esforço incremental, impacto residual)

Técnicas que otimizam os últimos 10-20% do custo — implementar após as fases 1 e 2.

3.1 Batch API

  • Identificar tasks assíncronas de alto volume (relatórios, análise de PR, documentação)
  • Implementar batch processing com 50% de desconto no custo
  • Configurar SLA de até 24h para tasks não urgentes

Referência: 12 - Batch API — economia em volume

3.2 Semantic caching

  • Identificar queries de alta frequência e baixa variação (FAQ, análise de padrões repetidos)
  • Implementar cache semântico com threshold 0.95-0.98
  • Medir cache hit rate e ROI do cache (custo de embedding vs custo de LLM evitado)

Referência: 11 - Semantic caching

3.3 Orçamento e governança

  • Definir budget mensal por projeto/time
  • Configurar alertas a 70% e 90% do budget nos consoles dos providers
  • Implementar hard limits no código (spending limits + kill switches em agentes)

Referência: 15 - Orçamento e hard limits

Fase 4: Manutenção contínua

  • Revisar dashboard de consumo semanalmente (10 min)
  • Auditoria mensal: top 10 sessões mais caras, classificação por padrão de desperdício
  • Ajustar budget e modelo de routing trimestralmente
  • Atualizar tabela de preços quando providers mudam pricing
  • Treinar novos membros do time nas práticas de economia (30 min de onboarding)
  • Revisar ROI semestral: expandir o que funciona, descontinuar o que não funciona

Referência: 16 - Auditoria de consumo | 17 - ROI de IA — quando o agente vale o custo

Diagnóstico rápido: por onde começar?

Antes de seguir o playbook linear, um diagnóstico de 15 minutos pode priorizar a fase mais impactante para o seu contexto específico.

def diagnose_optimization_priority(
    cache_hit_rate_pct: float,
    opus_pct_of_calls: float,
    avg_session_turns: float,
    thinking_pct_of_cost: float,
    output_pct_of_cost: float,
) -> list[str]:
    """
    Retorna lista de técnicas priorizadas por impacto estimado.
    Responda as 5 perguntas com dados do seu dashboard.
    """
    priorities = []
    
    if cache_hit_rate_pct < 40:
        priorities.append("🔴 CRÍTICO: Prompt caching — cache hit rate < 40%")
    
    if opus_pct_of_calls > 30:
        priorities.append("🔴 CRÍTICO: Model routing — Opus em >30% das chamadas")
    
    if avg_session_turns > 20:
        priorities.append("🟡 ALTO: Compactação de histórico — sessões com >20 turnos")
    
    if thinking_pct_of_cost > 20:
        priorities.append("🟡 ALTO: Thinking budget — raciocínio >20% do custo")
    
    if output_pct_of_cost > 50:
        priorities.append("🟡 ALTO: Respostas concisas — output >50% do custo")
    
    if not priorities:
        priorities.append("🟢 OK: Continue com Fase 3 (ajuste fino)")
    
    return priorities
 
# Exemplo de diagnóstico:
result = diagnose_optimization_priority(
    cache_hit_rate_pct=18,    # muito baixo
    opus_pct_of_calls=45,     # alto demais
    avg_session_turns=12,     # ok
    thinking_pct_of_cost=8,   # ok
    output_pct_of_cost=35,    # ok
)
# → ["🔴 CRÍTICO: Prompt caching", "🔴 CRÍTICO: Model routing"]
# Focar Fase 1 antes de qualquer outra técnica

Quick reference: técnica por problema

Tabela de lookup rápido quando você identifica um sintoma específico:

Sintoma observadoTécnicaFaseReferência
Cache hit rate < 40%Prompt caching105 - Prompt caching na prática
Input por turno cresce linearmenteCompactação de histórico208 - Compactação de histórico em agentes
Opus em tasks de classificaçãoModel routing109 - Model routing — modelo certo para a tarefa
Turno único > 20K input tokensContext pruning / tool output truncation106 - Context pruning — o que remover do prompt
Thinking > 5x output por chamadaThinking budget214 - Thinking budget — controlar reasoning tokens
System prompt > 10K tokensTool definition compression207 - Compressão de tool definitions
Mesma query cara repetida muitas vezesSemantic caching311 - Semantic caching
Output muito longo e redundanteRespostas concisas113 - Respostas concisas — controlar output tokens
Tasks assíncronas de volume altoBatch API312 - Batch API — economia em volume
Agente em loop sem pararKill switches15 - Orçamento e hard limits
Custo crescendo sem motivo claroAuditoria de consumo16 - Auditoria de consumo

Impacto acumulado estimado

A aplicação sequencial das técnicas tem impacto composto — cada técnica reduz o custo já reduzido pela anterior.

Técnica aplicadaRedução incrementalCusto resultante
Baseline (sem otimização)$1.000/mês
+ Prompt caching-40%$600/mês
+ Context pruning-20%$480/mês
+ Respostas concisas-15%$408/mês
+ Model routing-25%$306/mês
+ Compactação de histórico-15%$260/mês
+ Thinking budget-10%$234/mês
+ Batch API (tarefas assíncronas)-5% do total$200/mês
Total~80%~$200/mês

Os números são estimativas para um perfil de uso moderado de um time de 3-5 devs com agente ativo. Resultados variam por padrão de uso — perfis com sessões muito longas ganham mais com compactação; perfis com prompts estáticos ganham mais com caching.

Armadilhas comuns

Otimizar antes de medir

O erro mais comum: implementar prompt caching sem saber se o custo está em input ou output. Se 80% do custo é output (respostas longas), caching de input tem impacto mínimo. Sempre Fase 0 primeiro.

Aplicar todas as técnicas de uma vez

Quando múltiplas mudanças são aplicadas simultaneamente, é impossível saber qual teve impacto. Aplicar uma fase por vez, medir entre cada fase, e atribuir o ganho corretamente.

Tratar o playbook como estático

Preços mudam, modelos evoluem, o padrão de uso do time muda. O playbook precisa ser revisado trimestralmente — especialmente as tabelas de custo por modelo e os thresholds de routing.

Ignorar o custo de implementação das otimizações

Cada técnica tem custo de engenharia. Semantic caching requer infraestrutura (Redis + embedding model). Batch API requer arquitetura assíncrona. Calcular o payback antes de implementar, especialmente as técnicas de Fase 3.

Estado da arte — junho 2026

Otimização automatizada com análise de logs: Ferramentas como Helicone Optimize (2026) analisam logs de uso e recomendam automaticamente quais técnicas aplicar, com estimativa de impacto baseada em dados reais do usuário — não apenas benchmarks genéricos. O playbook vira dinâmico.

IA de segunda ordem para otimização de IA: Times avançados em 2026 usam um modelo mais barato (Haiku) para classificar e pré-processar requests antes de decidir qual modelo principal invocar. O classificador custa ~0.15-$1.50 em requests que seriam enviados ao Opus desnecessariamente.

Playbooks por domínio: Em 2026, a otimização de custo tem playbooks específicos por domínio — developer tools, customer support, document processing, code review. As técnicas de maior impacto variam: para customer support, semantic caching tem ROI altíssimo; para code review, context pruning (excluir arquivos irrelevantes do diff) tem maior impacto.

Casos práticos

Caso 1 — Time de 5 devs com redução de 73%: Time aplicou as Fases 1-2 ao longo de 3 sprints. Partindo de 660), context pruning (-18%, 422), compactação de histórico (-17%, $350). Total em 3 meses: -71%. Tempo de implementação: ~30h de engenharia.

Caso 2 — Dev solo com playbook mínimo: Dev solo com 85/mês. Redução de 43% em 4h de trabalho. Concluiu que Fases 2 e 3 não compensavam o esforço para o volume dele.

Caso 3 — Produto B2C com otimização em produção: Startup com LLM em produto: aplicou Fases 0-3 ao longo de 2 meses. De 2.100/mês (-74%). O maior impacto foi na Fase 3 (semantic caching para perguntas frequentes de usuários), que sozinha reduziu 35% — diferente do padrão de ferramentas de dev onde caching de prompt tem maior impacto.

Por que a exceção faz sentido: prompt caching (Fase 1) economiza quando o mesmo prefixo estático se repete entre chamadas — o system prompt de um agente de codificação, por exemplo. Semantic caching (Fase 3) economiza quando a mesma pergunta em palavras diferentes se repete entre usuários distintos — “como cancelo minha assinatura?” e “quero parar de pagar, como faço?” são semanticamente idênticas mas não compartilham prefixo algum. Um produto B2C com milhares de usuários fazendo variações da mesma dúvida tem muito mais desse segundo padrão do que do primeiro; um agente de codificação rodado por um único dev tem o oposto. A pergunta que decide qual técnica prioritizar não é “qual é mais avançada”, mas “meu tráfego repete o prefixo ou repete a intenção?“.

Esse é o motivo pelo qual a tabela de “Quick reference” desta nota separa prompt caching (sintoma: cache hit rate baixo) de semantic caching (sintoma: mesma query cara repetida) — são a mesma ideia (evitar recomputar o que já foi computado), aplicada em duas camadas diferentes da pilha.

Caso 4 — ROI de implementação das fases: Time calculou o custo de implementação de cada fase antes de executar:

  • Fase 0 (monitoramento): 4h de setup, $0 incremental — executar imediatamente
  • Fase 1 (quick wins): 8h total, payback em 2 semanas — executar agora
  • Fase 2 (estrutural): 20h total, payback em 1 mês — executar no próximo sprint
  • Fase 3 (ajuste fino): 40h total, payback em 3 meses — avaliar depois da Fase 2

Por que a ordem das fases não é arbitrária

Pense no playbook como consertar um cano furado numa casa que também tem torneiras pingando. Trocar as torneiras (Fase 3 — ajuste fino) antes de vedar o cano furado (Fase 1 — quick wins) não é errado tecnicamente, mas é onde o esforço deveria ter ido primeiro: o cano furado é responsável pela maior parte da água perdida. É por isso que o playbook começa em “onde está o vazamento maior”, não em “o que é mais fácil de mexer”.

O mecanismo por trás da regra dos 70% (Fase 0 → Fase 1) é simples: sem baseline, qualquer “melhora” observada depois de uma mudança pode ser ruído — variação natural de uso, não efeito da técnica. Um time que implementa prompt caching e vê o custo cair 30% numa semana de baixo uso vai atribuir esse ganho à técnica errada, e vai repetir o erro na próxima rodada de otimização. A Fase 0 existe para que a atribuição de causa seja possível.

Pergunta que todo dev deveria se fazer antes de pular uma fase: “Se essa técnica não funcionar, terei como saber?” Se a resposta for não — porque não há baseline, não há métrica isolada, não há forma de separar o efeito da técnica do ruído — a fase anterior ainda não terminou.

AntipadrãoO que aconteceCorreção
Pular Fase 0 e ir direto para cachingImpossível medir se caching ajudou ou se o mês só teve menos usoRodar 1 semana de baseline antes de qualquer mudança
Aplicar Fases 1 e 2 na mesma semanaGanho agregado sem saber qual técnica pesou maisUma fase por vez, com métrica isolada entre elas
Tratar o playbook como checklist de uma vez sóTécnicas de Fase 3 implementadas sem o alicerce das Fases 1-2 sustentando o ganhoReforçar o ciclo: Fase 4 (manutenção) reabre a Fase 0 a cada trimestre

Essa é a razão de o diagrama de fluxo no topo da nota ser um ciclo (Fase 4 → Fase 0), não uma linha reta: o playbook não termina, porque o padrão de uso do time muda e o baseline de ontem vira o ruído de amanhã.

Adaptando o playbook por perfil de time

O playbook é o mesmo, mas o ritmo de execução varia bastante conforme o tamanho do time e a maturidade do produto. Três perfis comuns:

Dev solo / side project:

  • Pula direto para Fase 1 se o volume de uso for baixo — o payback de monitoramento formal (Fase 0) demora mais que o próprio problema que ele resolveria.
  • ccusage sozinho já cobre o essencial de observabilidade; dashboards como Helicone/Langfuse costumam ser overkill.
  • Fases 2 e 3 raramente compensam — como no Caso 2, o esforço de engenharia excede o ganho absoluto em dólares.

Time pequeno (3-8 devs) com produto interno:

  • Fase 0 vale o esforço porque o custo já é alto o suficiente para o ruído confundir decisões.
  • Fases 1-2 são o alvo principal — o Caso 1 é representativo desse perfil.
  • Fase 3 (semantic caching, batch API) só entra se houver um padrão de uso repetitivo identificável — não é ponto de partida.

Produto B2C em produção com milhares de usuários:

  • Todas as fases valem a pena, incluindo Fase 3 — como no Caso 3, a escala de tráfego muda qual técnica tem maior ROI.
  • Governança (3.3) deixa de ser opcional: sem hard limits, um bug de loop em produção pode gerar uma fatura de 5 dígitos da noite para o dia.
  • A cadência de revisão da Fase 4 precisa ser mais curta (semanal, não mensal) porque o volume de dados torna mudanças de padrão visíveis mais rápido.

O denominador comum entre os três perfis: a sequência de fases não muda, só a decisão de até onde vale a pena ir. Isso é o oposto de “aplicar o playbook inteiro sempre” — a Fase 0 existe justamente para informar essa decisão de parada.

Pergunta prática para decidir onde parar: “o esforço da próxima fase, em horas de engenharia, custa mais do que 3 meses do ganho que ela promete?” Se sim, ainda não é hora de implementá-la — revisitar depois que o volume de uso crescer.

Essa heurística de payback em 3 meses não é arbitrária: é o mesmo horizonte usado no Caso 4 para decidir a ordem de execução das fases, e serve como critério de corte tanto para “que fase implementar agora” quanto para “que fase ainda não vale a pena”.

Em resumo: o playbook não é uma receita única — é um funil de decisão que se adapta ao volume de tráfego e ao tamanho do time, mantendo a mesma ordem de prioridade (medir → quick wins → estrutural → ajuste fino) em qualquer escala.

O que vem a seguir

Com o playbook implementado, os próximos passos são comparar os planos disponíveis para maximizar o budget (19 - Planos e tiers — Max, Pro, API, Enterprise) e entender como o custo vai evoluir à medida que os tokens ficam mais baratos (20 - O futuro — tokens cada vez mais baratos).

Como explicar em inglês

Playbook é o termo direto em inglês. Em contextos de engenharia, o vocabulário de otimização tem termos específicos que vale conhecer.

PortuguêsInglêsContexto de uso
Playbook de economiaCost optimization playbookGuia operacional de redução de custo
Quick winsQuick wins / Low-hanging fruitTécnicas de alto impacto e baixo esforço
Otimização estruturalStructural optimizationMudanças de arquitetura com impacto duradouro
Ajuste finoFine-tuning / Fine-grained optimizationOtimizações residuais de menor impacto
Impacto acumuladoCompounding impactImpacto composto de múltiplas técnicas
Baseline de custoCost baselineMedida de referência pré-otimização
Checklist mestreMaster checklistLista abrangente de verificação
Manutenção contínuaOngoing maintenanceProcesso regular de revisão e ajuste
Custo residualResidual costCusto remanescente após otimizações
Payback de implementaçãoImplementation paybackTempo para recuperar custo de engenharia

Veja: LLM Cost Optimization — From 0 to Production

Canal: Latent Space / AI Engineering | Duração: ~35min | Idioma: EN

Walkthrough completo de otimização de custo com LLMs em produção — cobrindo prompt caching, model routing, e monitoramento. Inclui dados reais de uma startup que reduziu custos em 70% em 2 meses usando as mesmas técnicas deste playbook, com código e dashboards ao vivo.

🎬 Assistir no YouTube

Veja também

Fontes

  • AnthropicPrompt caching (docs.anthropic.com/en/docs/build-with-claude/prompt-caching, 2026). Guia oficial de otimização de tokens — prompt caching, max_tokens, e padrões recomendados.
  • HeliconeCost Tracking & Optimization (docs.helicone.ai/guides/cookbooks/cost-tracking, 2026). Guia prático com dados reais de usuários — quais técnicas têm maior impacto em diferentes cenários de uso.
  • Simon WillisonToken optimization strategies that actually work (simonwillison.net, 2025). URL não confirmada — a busca não localizou um artigo com esse título exato; o mais próximo verificado é a tag “tokenization” do blog, que cobre o tema de forma dispersa em vários posts, não num único artigo.
  • Wilson, AlexThe LLM Cost Optimization Handbook (leanpub.com, 2026). URL não confirmada — busca no catálogo da Leanpub e na web não encontrou esse título nem esse autor; pode ser uma referência genérica/composta, não um livro específico localizável.