Início / Documentação / Controle de custos

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ídaProporção
claude-opus-4-8$3$155×
claude-sonnet-4-6$0.90$4.505×
claude-haiku-4-5$0.40$25×
gemini-3-flash$0.20$1.206×

As quatro alavancas

  1. 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.
  2. 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.
  3. 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.
  4. 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.

O erro caro mais comum não é a escolha do modelo — é reenviar uma transcrição cada vez maior a cada interação de uma longa sessão de agente. Corrija primeiro o crescimento do contexto e depois ajuste os modelos.