Controle de custos
Onde os tokens realmente são consumidos em uma carga de trabalho com agentes e os quatro fatores que alteram a cobrança.
Se você já executou um agente de programação por um dia inteiro de trabalho, já viu a conta. Os ciclos de agentes consomem tokens de uma forma que nunca ocorre em um chat comum: cada arquivo lido, cada resultado de ferramenta e cada diff entram no contexto e são reenviados na próxima interação.
Os tokens de saída são os mais caros
Em todos os modelos de ponta, a saída custa 4–5× o valor da entrada. Um modelo que pensa em voz alta na resposta final gasta dinheiro mais rápido do que um que responde de forma concisa. Limite max_tokens de forma deliberada e prefira modelos concisos para tarefas rotineiras.
| Modelo | $/M de entrada | $/M de saída | Proporção |
|---|---|---|---|
claude-opus-4-8 | $3 | $15 | 5× |
claude-sonnet-4-6 | $0.90 | $4.50 | 5× |
claude-haiku-4-5 | $0.40 | $2 | 5× |
gemini-3-flash | $0.20 | $1.20 | 6× |
As quatro alavancas
- Direcione por tarefa. Classificação, extração e roteamento não precisam do Opus — Haiku realiza essas tarefas por aproximadamente um sétimo do preço. Reserve o modelo principal para trabalhos que exigem muito raciocínio.
- Cache de prompts. Prompts de sistema e definições de ferramentas estáveis são relidos do cache por uma fração do preço de entrada. Para agentes, esta é a maior alavanca — veja Cache de prompts.
- Reduza o contexto a cada interação. Não reenvie uma transcrição inteira; mantenha as interações recentes e um resumo atualizado. O crescimento ilimitado do contexto é o que transforma uma sessão de $2 em uma de $20.
- Limite o ciclo. Defina um limite rígido de etapas para execuções autônomas, para que um agente travado não continue em ciclo indefinidamente.
Estimativa antes da execução
IN_RATE = {class="s">"claude-opus-4-8": 3.0, class="s">"claude-sonnet-4-6": 0.9, class="s">"claude-haiku-4-5": 0.4}
OUT_RATE = {class="s">"claude-opus-4-8": 15.0, class="s">"claude-sonnet-4-6": 4.5, class="s">"claude-haiku-4-5": 2.0}
def cost(model, tok_in, tok_out):
return tok_in / 1e6 * IN_RATE[model] + tok_out / 1e6 * OUT_RATE[model]
print(cost(class="s">"claude-opus-4-8", 20_000, 2_000)) class=class="s">"c"># 0.09
print(cost(class="s">"claude-sonnet-4-6", 20_000, 2_000)) class=class="s">"c"># 0.027
print(cost(class="s">"claude-haiku-4-5", 20_000, 2_000)) class=class="s">"c"># 0.012
A mesma tarefa com 20K de entrada e 2K de saída custa 7.5× mais no Opus do que no Haiku. Se a tarefa for de classificação, esse custo adicional não traz nenhum benefício.
Medição após a execução
Cada resposta contém um usage objeto. Registre-o junto com um ID de solicitação e um tipo de tarefa — sem isso, a otimização de custos é mera suposição. O painel do gateway mostra o uso por modelo, mas somente seus próprios logs sabem *por que* uma solicitação foi feita.