Início / Documentação / Cache de prompts

Cache de prompts

Releia um prefixo estável por uma fração do preço de entrada — o que armazenar em cache, o que não armazenar e como verificar se funcionou.

O cache de prompts armazena um prefixo da sua solicitação para que chamadas posteriores que o compartilhem sejam cobradas a uma tarifa reduzida de entrada. Para qualquer solicitação com um preâmbulo extenso e estável — um prompt de sistema, esquemas de ferramentas ou um documento sobre o qual se fazem perguntas — essa é a mudança com maior retorno disponível.

O que é um bom candidato para o cache

BomPor quê
Prompts de sistemaIdêntico byte a byte em todas as chamadas de uma sessão
Definições de ferramentas / funçõesEstáveis durante toda a execução de um agente e frequentemente extensas
Um documento sobre o qual se fazem perguntas repetidamenteUm envio, muitas perguntas
Exemplos de few-shotFixo e frequentemente longo
RuimPor quê
A mensagem mais recente do usuárioDiferente a cada vez — nunca há um acerto de cache
Qualquer conteúdo com um timestamp ou ID de solicitação perto do inícioUm único byte alterado no início do prefixo invalida tudo o que vem depois
Prompts curtosAbaixo do comprimento mínimo para armazenamento em cache, portanto não há ganho

Como marcar um prefixo

{
  "model": "claude-sonnet-4-6",
  "max_tokens": 1024,
  "system": [{
    "type": "text",
    "text": "<long stable instructions...>",
    "cache_control": {"type": "ephemeral"}
  }],
  "messages": [{"role": "user", "content": "Question that changes every call"}]
}

Tudo até o bloco marcado, inclusive ele, passa a ser o prefixo armazenado em cache. A ordem importa: coloque o conteúdo estável primeiro e o conteúdo variável por último.

Como verificar se funciona

Confira a usage objeto. Um acerto de cache informa os tokens em leitura de cache, em vez de entrada comum. Se a leitura de cache permanecer em zero ao longo de chamadas repetidas, seu prefixo não é de fato idêntico — uma causa comum é um timestamp, um ID de sessão ou uma ordenação não determinística das chaves de JSON no preâmbulo.

Serialize o conteúdo armazenado em cache de forma determinística. json.dumps(obj) sem sort_keys=True pode reordenar as chaves entre execuções, o que altera os bytes e faz você perder silenciosamente todos os acertos de cache.

Onde faz mais diferença

Ferramentas agênticas reenviam o mesmo prompt de sistema e os mesmos esquemas de ferramentas a cada turno. Em uma sessão de 50 turnos, esse preâmbulo é cobrado 50 vezes sem cache e aproximadamente uma vez com cache.