Por que tokens importam?
Em soluções com Large Language Models, tokens são simultaneamente a unidade de custo e a principal alavanca de latência. Cada caractere que entra ou sai do modelo tem um preço não sendo equivalentes, tokens de output costumam custar de 3 a 5 vezes mais do que tokens de input. Um agente mal arquitetado pode desperdiçar de 60% a 80% do orçamento reenviando contexto idêntico a cada requisição, sem nenhum ganho de qualidade.
O Amazon Bedrock expõe essa granularidade de forma direta: você paga por token de input e por token de output separadamente, com opções de caching que podem reduzir o custo de contexto fixo em até 90%. Entender como alocar o orçamento de tokens é tão estratégico quanto escolher o modelo certo.
O que consome tokens?
Antes de otimizar, é necessário saber onde o dinheiro vai. Uma requisição típica a um LLM em produção é composta por múltiplos componentes, cada um com peso distinto no total de tokens consumidos:
| Componente | Volume típico | % estimada do input | Observação |
|---|---|---|---|
| System prompt | 500 – 5.000 tokens | 10 – 40% | Candidato ideal ao prompt caching |
| Tool definitions | 500 – 3.000 tokens | 5 – 20% | Cresce com o número de ferramentas |
| Histórico de conversa | 1.000 – 20.000 tokens | 20 – 60% | Principal fator de crescimento em agentes |
| Documentos injetados | 2.000 – 50.000 tokens | 30 – 70% | Substituto preferencial: RAG |
| Output do modelo | 200 – 2.000 tokens | — | Cobrado separadamente, preço 3–5× maior |
Em aplicações com muitas ferramentas e histórico longo, o conteúdo da requisição pode facilmente ultrapassar 30.000 tokens antes de o usuário digitar uma palavra. Identificar qual componente domina o uso é o primeiro passo para qualquer otimização.
Escrever menos, comunicar mais
A otimização começa no próprio texto do prompt, antes de qualquer mudança de arquitetura:
Reutilizar é mais barato que reenviar
O Amazon Bedrock suporta caching de prompt para os modelos Claude: blocos marcados com cache_control são armazenados por até 5 minutos. Leituras subsequentes desse cache custam aproximadamente 10% do preço normal de input, gerando assim uma economia de 90% no conteúdo em cache.
Os candidatos naturais ao caching são componentes estáticos entre requisições: system prompt, tool definitions completas e documentos de referência fixos (manuais, políticas, bases de conhecimento pequenas). O conteúdo dinâmico, como mensagem do usuário ou histórico recente, nunca é cacheado e segue o preço padrão.
| Cenário | Tokens em cache | Volume diário | Sem cache | Com cache | Economia |
|---|---|---|---|---|---|
| System prompt (2k tokens) × 10k req/dia | 2.000 | 20M tokens | ~USD 60 | ~USD 6 | 90% |
| Tool definitions (1,5k tokens) × 8k req/dia | 1.500 | 12M tokens | ~USD 36 | ~USD 3,60 | 90% |
| Documento fixo (10k tokens) × 2k req/dia | 10.000 | 20M tokens | ~USD 60 | ~USD 6 | 90% |
Estimativas baseadas em preço de input de USD 3/MTok para Claude Sonnet no Bedrock. Cache read: USD 0,30/MTok. Valores aproximados para referência.
O ponto crítico é o TTL de 5 minutos: o caching só gera economia quando o mesmo bloco de conteúdo é reutilizado em múltiplas requisições dentro desse janela. Dessa forma, agentes de uso intenso ou com padrões de uso elevados em momentos do dia se beneficiam muito dessa técnica. Por outro lado, agentes com uso intermitente vão ter ganhos marginais para um aumento de complexidade da solução, mesmo que seja um ajuste simples.
Recuperar é melhor que injetar tudo
Context stuffing é a prática de injetar documentos inteiros no prompt para que o modelo encontre a informação relevante. Funciona para documentos pequenos, mas escala mal: uma base de conhecimento de 500 páginas pode consumir centenas de milhares de tokens por requisição.
RAG (Retrieval-Augmented Generation) resolve esse problema recuperando apenas os trechos relevantes via busca semântica antes de construir o prompt. O Amazon Bedrock Knowledge Bases com OpenSearch realiza esse processo de forma gerenciada: o texto é dividido em chunks, vetorizado com embeddings e indexado. Na requisição, apenas os chunks com maior similaridade semântica à pergunta são recuperados e injetados no contexto.
| Métrica | Context Stuffing | RAG |
|---|---|---|
| Tokens por requisição | 10k – 200k | 500 – 5k |
| Custo por requisição | Alto | Baixo |
| Latência | Alta (context window longo) | Média (busca + prompt menor) |
| Escalabilidade da base | Limitada (context window) | Alta (indexação vetorial) |
| Qualidade da resposta | Alta se doc é pequeno | Alta se chunking é bem feito |
| Complexidade de setup | Baixa | Média |
A estratégia de chunking é o fator crítico em RAG: chunks muito pequenos perdem contexto, chunks muito grandes desperdiçam tokens. Para documentos estruturados, chunking semântico por seção supera o chunking por número fixo de tokens.
Para aprofundar a arquitetura de RAG na AWS, leia nosso artigo técnico:
Arquitetura para eficiência
Agentes amplificam tanto a capacidade quanto o custo: cada passo do agente (raciocínio, chamada de ferramenta, resposta) consome tokens. Decisões de arquitetura têm impacto direto no orçamento:
cache_control; a conversa em si não. Separar claramente o que é estático do que é dinâmico maximiza o aproveitamento do caching.O modelo certo para cada tarefa
A escolha do LLM é uma das decisões com maior impacto no custo total de uma solução. Modelos mais capazes são significativamente mais caros e nem toda tarefa precisa deles. A tabela abaixo compara os principais modelos disponíveis no Amazon Bedrock:
| Modelo | Input (por MTok) | Output (por MTok) | Perfil de uso |
|---|---|---|---|
| Amazon Nova Micro | ~USD 0,04 | ~USD 0,14 | Classificação, extração simples, roteamento |
| Amazon Nova Lite | ~USD 0,06 | ~USD 0,24 | Resumos curtos, Q&A direto, triagem |
| Claude Haiku 3.5 | ~USD 0,80 | ~USD 4,00 | Respostas rápidas, tarefas estruturadas |
| Amazon Nova Pro | ~USD 0,80 | ~USD 3,20 | Tarefas multimodais, análise de documentos |
| Claude Sonnet 4 | ~USD 3,00 | ~USD 15,00 | Raciocínio complexo, geração de código, agentes |
| Claude Opus 4 | ~USD 15,00 | ~USD 75,00 | Alta complexidade, pesquisa, planejamento estratégico |
Preços aproximados no Amazon Bedrock. Consulte a página de preços oficial para valores atualizados.
A regra prática é direta: use o modelo mais barato que entregue a qualidade necessária para cada subtarefa. Classificar um documento, extrair um campo estruturado ou fazer triagem de intenção são operações que modelos como o Nova Micro ou Claude Haiku executam com excelência a uma fração do custo de um Sonnet ou Opus. Reservar modelos de alta capacidade apenas para o que realmente exige raciocínio profundo é, muitas vezes, a otimização de maior impacto em uma solução.
Prompt routing no Bedrock AgentCore: em arquiteturas multi-agent, o orquestrador pode rotear cada subtarefa para o modelo mais adequado, delegando raciocínio complexo ao Sonnet ou Opus, e tarefas operacionais ao Haiku ou Nova Lite. O Bedrock AgentCore suporta essa orquestração nativamente: cada agente especializado pode ser configurado com um modelo distinto conforme o perfil da tarefa. O resultado é uma arquitetura onde qualidade e custo são otimizados em conjunto, sem comprometer a capacidade de entrega.
Checklist de otimização
Otimizar tokens não é cortar qualidade, é eliminar desperdício. A maior parte do custo em soluções LLM vem de contexto repetido, documentos injetados em excesso e histórico não gerenciado. As técnicas abaixo podem ser aplicadas de forma incremental, priorizando pelo impacto esperado:
Aplicadas em conjunto, essas práticas costumam reduzir o custo total de soluções com LLMs em 50 a 80% sem perda de qualidade perceptível, e com ganho de latência como bônus.