O choque do primeiro mês de produção
Você lança o agente em beta. Tracking inicial: US$0.12 por conversa. "Tranquilo." Duas semanas depois, com 10k usuários ativos, a fatura mensal Anthropic vem US$45.000. Ninguém previu. O CFO te chama.
O cálculo era certo no individual, errado no escalonamento. Tokens crescem com (a) tamanho do prompt × (b) chamadas por turn × (c) turns por conversa × (d) conversas por usuário × (e) usuários. Cada um desses cresce, e a multiplicação fica cruel.
A fórmula do custo real por task
Alavanca #1 — Prompt caching (até 90% off)
Anthropic prompt caching: o prefixo estável do prompt (system + tools + few-shot) é cacheado no servidor por ~5 minutos (ou 1h em extended). Cache hit cobra ~10% do preço normal do input. Cache write custa ~25% acima do normal — pago uma vez, amortiza em ~3 hits.
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
const response = await client.messages.create({
model: 'claude-sonnet-4-5',
max_tokens: 1024,
system: [
{
type: 'text',
text: '<long system prompt with tool definitions + few-shot examples>',
cache_control: { type: 'ephemeral' }, // ← marca o cache point
},
],
messages: [
{ role: 'user', content: 'Última pergunta do usuário (varia)' },
],
});
// usage.cache_creation_input_tokens — primeira chamada (custou 1.25x)
// usage.cache_read_input_tokens — chamadas subsequentes (custaram 0.1x)Para um agente com system prompt de 3000 tokens chamado 1000 vezes/dia: sem cache, US$9/dia em input. Com cache, US$1/dia. Em um ano, US$2.900 economizados de um único cache point.
Alavanca #2 — Cascade routing
async function cascadeAnswer(query: string) {
// Tier 1: rápido e barato
const haiku = await call('claude-haiku-4-5', query);
if (haiku.confidence > 0.85 && validateOutput(haiku)) return haiku;
// Tier 2: maior, ainda barato
const sonnet = await call('claude-sonnet-4-6', query);
if (sonnet.confidence > 0.7 || requiresSimpleReasoning(query)) return sonnet;
// Tier 3: pesado, só quando precisa
return await call('claude-opus-4-7', query);
}Alavanca #3 — Context compression em conversas longas
| Técnica | Custo de implementação | Redução típica |
|---|---|---|
| Rolling window (descartar > N turns) | Trivial | 30-50%, perda de contexto distante |
| Summarização incremental | Médio (chamar LLM extra) | 60-80%, preserva ideia geral |
| Retrieval no histórico (RAG) | Médio-alto | 70-90%, melhor para sessions muito longas |
| Pruning baseado em relevância (importance score) | Alto (avaliar cada turn) | 50-70%, melhor preservação |
| Anthropic compaction nativo | Trivial — params da API | 50%+, sem código |
Alavanca #4 — Reduzir output tokens
Métricas de custo que você DEVE monitorar
O alarme financeiro — antes da fatura
// Middleware que mata loops com gasto desconfortável
const BUDGET_USD_PER_TASK = 0.50;
let taskCost = 0;
for (const step of agentSteps()) {
const result = await runStep(step);
taskCost += estimateCost(result.usage);
if (taskCost > BUDGET_USD_PER_TASK) {
log.warn({ taskId, taskCost }, 'budget exceeded, halting agent');
return { status: 'budget_exceeded', partial: result };
}
}Sem limite por task, um agente em loop infinito pode consumir US$ centenas antes do humano acordar. Budget gating é o cinto de segurança financeiro.
Quando o problema NÃO é custo
Cenário comum: você corta 70% do custo, mas o churn subiu 5% porque o agente está pior. Custo é restrição, não objetivo. Em 2026 a régua é: custo por task × qualidade × latência. Otimizar um sozinho destrói os outros.