Armazenando prefixos longos em cache
Controle custos com o armazenamento de solicitações em cache.
Armazenando prefixos longos em cache é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
Por que Existe o Armazenamento em Cache de Prefixos
Toda solicitação longa paga o custo de pré-preenchimento para codificar seus tokens antes de gerar a resposta. Quando o mesmo prefixo longo se repete em muitas chamadas — uma solicitação do sistema, uma especificação de ferramenta ou um documento de referência extenso — o armazenamento de solicitações em cache permite que o provedor reutilize o estado de atenção já calculado, em vez de recalculá-lo.
- Os acertos do armazenamento em cache reduzem drasticamente a latência e o custo da entrada.
- A economia aumenta conforme o tamanho do prefixo e a frequência de reutilização.
O Armazenamento em Cache se Baseia no Prefixo
O armazenamento em cache usa como chave uma correspondência exata do prefixo de tokens desde o início da solicitação. O trecho armazenado em cache vai do começo até o primeiro ponto de divergência. Altere qualquer coisa no início e todo o conteúdo posterior não aproveitará o cache.
Implicação: a organização que maximiza os acertos coloca primeiro o conteúdo mais estável e deixa o conteúdo mais variável por último.
# Cache reuse covers: [identical prefix .... first difference)
# One early edit invalidates the whole downstream cache.Ordene por Estabilidade
Organize o conteúdo do mais estável para o menos estável: regras imutáveis do sistema e definições de ferramentas, depois material de referência estável e extenso, depois o contexto estável da sessão e, por fim, a entrada variável de cada solicitação e a pergunta.
- Estável → frente (pode ser armazenado em cache).
- Variável → trás (a única parte recalculada).
Esse único princípio de ordenação impulsiona a maioria dos ganhos de armazenamento em cache.
prompt = [
SYSTEM_RULES, # never changes
TOOL_SPECS, # rarely changes
REFERENCE_CORPUS, # stable for the session
USER_TURN # changes every call -> keep last
]Pontos de Corte do Armazenamento em Cache
Alguns provedores permitem marcar pontos de corte explícitos para o armazenamento em cache. Coloque-os no final de cada segmento estável para que o sistema possa armazenar conteúdo em cache até esse ponto. Marque o maior bloco estável — o corpus de referência ou a solicitação longa do sistema — como armazenável em cache.
Sem marcadores explícitos, organize a estrutura segundo a ordem de estabilidade para que a correspondência implícita de prefixos ainda ajude.
blocks = [
{'text': SYSTEM_RULES, 'cache': True},
{'text': REFERENCE_CORPUS, 'cache': True}, # big win
{'text': user_turn} # uncached
]Cuidado com o Desvio Oculto do Prefixo
Mudanças sutis e não intencionais quebram silenciosamente o armazenamento em cache: uma marca temporal na solicitação do sistema, um identificador por solicitação inserido no início, definições de ferramentas reordenadas ou uma ordem não determinística das chaves JSON. Cada uma desloca o prefixo e força um recálculo completo.
Audite seu prefixo em busca de qualquer elemento que varie entre as chamadas e mova-o para depois da região armazenada em cache.
# BAD: dynamic value early -> kills cache
# system = 'Session ' + str(uuid4()) + ' rules: ...'
# GOOD: keep system static; put the id in the tail user turn.TTL e duração do cache
Os caches expiram após um tempo de vida definido pelo provedor, geralmente renovado a cada acerto. As falhas de cache a frio voltam a ocorrer quando as chamadas são muito espaçadas. Para cargas de trabalho em rajadas e de alta frequência, o armazenamento em cache compensa; para chamadas raras e dispersas, o cache pode expirar entre os usos.
Associe seu padrão de tráfego ao TTL e considere enviar sinais periódicos de manutenção da conexão para prefixos importantes.
Modelo de custos do armazenamento em cache
O armazenamento em cache normalmente cobra um pequeno adicional para gravar uma entrada no cache e oferece um grande desconto para lê-la. A economia favorece a reutilização: uma gravação cujo custo é diluído em muitas leituras gera uma grande economia líquida; um uso único que apenas grava pode custar um pouco mais.
- Alta reutilização -> use o cache agressivamente.
- Prefixos usados uma única vez -> o armazenamento em cache pode não compensar.
def worth_caching(prefix_tokens, expected_reuses, write_mult, read_mult):
no_cache = expected_reuses
cached = write_mult + read_mult * (expected_reuses - 1)
return cached < no_cache # in normalized prefix-cost unitsProjetando blocos estáveis do sistema
Torne a instrução do sistema e as especificações das ferramentas determinísticas e fixe suas versões. Ordene as definições das ferramentas de forma canônica, evite incorporar dados dinâmicos e altere-as somente em lançamentos planejados. Um bloco estável do sistema se torna uma entrada de cache duradoura e com alta taxa de acertos, compartilhada por todas as solicitações.
Trate o prefixo armazenado em cache como um artefato com uma versão, não como uma cadeia de caracteres que você ajusta sem critério.
TOOLS = sorted(tool_defs, key=lambda t: t['name']) # canonical order
SYSTEM_VERSION = 'v3' # change deliberately, not per requestArmazenamento em cache em agentes de várias rodadas
Nos ciclos de agentes, a conversa crescente funciona como um cache natural: cada rodada estende um prefixo que a rodada seguinte reutiliza. Acrescente novas rodadas no final e nunca reescreva as rodadas anteriores, para que o cache anterior continue válido.
Quando precisar compactar, faça isso de modo a criar um novo prefixo estável para as rodadas seguintes, em vez de modificar repetidamente os prefixos antigos.
Medindo a eficácia do cache
Instrumente o sistema. A maioria dos provedores informa os tokens de entrada armazenados e não armazenados em cache por chamada. Acompanhe a taxa de acertos e, se ela estiver baixa, examine o prefixo em busca de deriva. Uma regressão na taxa de acertos geralmente aponta para um valor dinâmico introduzido recentemente no início da instrução.
- Registre tokens_em_cache / total_de_tokens_de_entrada.
- Gere um alerta quando a taxa de acertos cair após uma implantação.
hit_rate = usage['cache_read_input_tokens'] / max(1, usage['input_tokens'])
assert hit_rate > 0.6, 'prefix drift suspected'Uma disposição de instrução orientada ao cache
Para controlar o custo de prefixos longos: ordene o conteúdo pela estabilidade, marque o maior bloco estável como um marco do cache, elimine a deriva oculta, fixe e versione os blocos do sistema e das ferramentas, use apenas acréscimos nos ciclos de agentes e monitore a taxa de acertos. O objetivo é ter um grande prefixo reutilizável e uma pequena cauda volátil recalculada a cada chamada.
Verificação rápida
Você reutiliza um corpus de referência de 100 mil tokens em milhares de consultas diárias, mas a taxa de acertos do cache está próxima de zero.
Recapitulação: armazenando prefixos longos em cache
O armazenamento de instruções em cache reutiliza o pré-preenchimento de um prefixo exato e estável, reduzindo drasticamente a latência e o custo de entrada quando a reutilização é frequente. Ordene o conteúdo começando pelo mais estável, marque o grande bloco estável como um marco e empurre toda a volatilidade para a cauda. Elimine a deriva oculta, fixe e versione os blocos do sistema e das ferramentas, use apenas acréscimos nos ciclos de agentes e monitore a taxa de acertos para que uma regressão indique um valor variável introduzido recentemente no início da instrução.
Perguntas Frequentes
A aula “Armazenando prefixos longos em cache” é grátis?
Sim — o texto completo de “Armazenando prefixos longos em cache” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Armazenando prefixos longos em cache”?
Controle custos com o armazenamento de solicitações em cache. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Armazenando prefixos longos em cache”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Janelas de contexto de um milhão de tokens
- Perdido no meio
- Estruturando solicitações enormes
- Armazenando prefixos longos em cache