0Pricing
AI Prompt Engineering · Aula

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 units

Projetando 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 request

Armazenamento 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

  1. Janelas de contexto de um milhão de tokens
  2. Perdido no meio
  3. Estruturando solicitações enormes
  4. Armazenando prefixos longos em cache
← Voltar para AI Prompt Engineering