Skip to content

Impacto no Prompt Cache: Equilibrando Taxa de Acerto e Economia de Tokens ​

O Que Você Vai Aprender ​

  • Entender como funciona o mecanismo de Prompt Caching dos provedores de LLM
  • Saber por que a poda do DCP afeta a taxa de acerto do cache
  • Aprender a equilibrar a perda de cache com a economia de tokens
  • Definir a melhor estratégia conforme o provedor e modelo de cobrança utilizado

Seu Dilema Atual ​

Você ativou o DCP e notou que a taxa de acerto do cache caiu de 85% para 65%, preocupado se isso aumentou os custos? Ou quer entender se usar o DCP em diferentes provedores de LLM (Anthropic, OpenAI, GitHub Copilot) terá impactos diferentes?

A operação de poda do DCP altera o conteúdo das mensagens, o que afeta o Prompt Caching. Mas esse trade-off vale a pena? Vamos analisar em profundidade.

Quando Usar Esta Técnica ​

  • Em sessões longas, quando a expansão do contexto se torna significativa
  • Ao usar provedores com cobrança por requisição (como GitHub Copilot, Google Antigravity)
  • Quando quiser reduzir a poluição do contexto e melhorar a qualidade das respostas
  • Quando a economia de tokens supera a perda na taxa de acerto do cache

Conceito Central ​

O Que é Prompt Caching

Prompt Caching é uma técnica oferecida por provedores de LLM (como Anthropic, OpenAI) para otimizar desempenho e custos. Baseia-se em correspondência exata de prefixo para armazenar em cache prompts já processados, evitando recalcular tokens de prefixos idênticos.

Exemplo do Mecanismo de Cache

Suponha que você tenha o seguinte histórico de conversa:

[Prompt do Sistema]
[Mensagem do Usuário 1]
[Resposta da IA 1 + Chamada de Ferramenta A]
[Mensagem do Usuário 2]
[Resposta da IA 2 + Chamada de Ferramenta A]  ← mesma chamada de ferramenta
[Mensagem do Usuário 3]

Sem cache, cada envio ao LLM requer recalcular todos os tokens. Com cache, no segundo envio, o provedor pode reutilizar os resultados calculados anteriormente, precisando calcular apenas a nova "Mensagem do Usuário 3".

Como o DCP Afeta o Cache

Quando o DCP poda a saída de ferramentas, ele substitui o conteúdo original da saída por um texto placeholder: "[Output removed to save context - information superseded or no longer needed]"

Esta operação altera o conteúdo exato da mensagem (que antes era a saída completa da ferramenta, agora é um placeholder), causando invalidação do cache — o prefixo em cache a partir desse ponto não pode mais ser reutilizado.

Análise do Trade-off

MétricaSem DCPCom DCPImpacto
Taxa de Acerto do Cache~85%~65%⬇️ Redução de 20%
Tamanho do ContextoCrescimento contínuoPoda controlada⬇️ Redução significativa
Economia de Tokens010-40%⬆️ Aumento significativo
Qualidade das RespostasPode diminuirMais estável⬆️ Melhoria (menos poluição de contexto)

Por Que a Queda na Taxa de Acerto Pode Resultar em Custos Menores?

A queda na taxa de acerto do cache não equivale a aumento de custos. Motivos:

  1. Economia de tokens geralmente supera a perda de cache: Em sessões longas, a quantidade de tokens economizada pela poda do DCP (10-40%) frequentemente supera o cálculo extra de tokens causado pela invalidação do cache
  2. Redução da poluição de contexto: Com conteúdo redundante removido, o modelo pode focar melhor na tarefa atual, resultando em respostas de maior qualidade
  3. Taxa de acerto absoluta ainda é alta: Mesmo caindo para 65%, quase 2/3 do conteúdo ainda pode ser cacheado

Dados de teste mostram que, na maioria dos casos, o efeito de economia de tokens do DCP é mais significativo.

Impacto em Diferentes Modelos de Cobrança ​

Cobrança por Requisição (GitHub Copilot, Google Antigravity) ​

Melhor caso de uso, sem impacto negativo.

Esses provedores cobram por número de requisições, não por quantidade de tokens. Portanto:

  • ✅ Tokens economizados pela poda do DCP não afetam diretamente os custos
  • ✅ Reduzir o tamanho do contexto pode melhorar a velocidade de resposta
  • ✅ Invalidação de cache não gera custos adicionais

GitHub Copilot e Google Antigravity

Essas duas plataformas cobram por requisição, tornando o DCP uma otimização de custo zero — mesmo que a taxa de acerto do cache caia, não haverá aumento de custos, e o desempenho ainda melhora.

Cobrança por Token (Anthropic, OpenAI) ​

Requer equilibrar a perda de cache com a economia de tokens.

Exemplo de Cálculo:

Suponha uma sessão longa com 100 mensagens e total de 100K tokens:

CenárioTaxa de AcertoTokens Economizados pelo CacheTokens Economizados pela Poda DCPEconomia Total
Sem DCP85%85K × (1-0.85) = 12.75K012.75K
Com DCP65%100K × (1-0.65) = 35K20K (estimado)35K + 20K - 12.75K = 42.25K

Após a poda do DCP, embora a taxa de acerto do cache diminua, como o contexto foi reduzido em 20K tokens, a economia total real é maior.

Vantagem Evidente em Sessões Longas

Em sessões longas, a vantagem do DCP é mais evidente:

  • Sessões curtas (< 10 mensagens): A invalidação de cache pode predominar, benefícios limitados
  • Sessões longas (> 30 mensagens): Expansão severa do contexto, tokens economizados pela poda do DCP superam em muito a perda de cache

Recomendação: Priorize ativar o DCP em sessões longas; pode desativar em sessões curtas.

Observação e Verificação ​

Passo 1: Observar o Uso de Tokens em Cache ​

Por quê Entender a proporção de tokens em cache no total de tokens, avaliando a importância do cache

bash
# Execute no OpenCode
/dcp context

Você deve ver: Uma análise de tokens similar a esta

╭───────────────────────────────────────────────────────────╮
│                  DCP Context Analysis                     │
╰───────────────────────────────────────────────────────────╯

Session Context Breakdown:
──────────────────────────────────────────────────────────

System         15.2% │████████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│  25.1K tokens
User            5.1% │████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒│   8.4K tokens
Assistant       35.8% │██████████████████████████████████████▒▒▒▒▒▒▒│  59.2K tokens
Tools (45)      43.9% │████████████████████████████████████████████████│  72.6K tokens

──────────────────────────────────────────────────────────

Summary:
  Pruned:          12 tools (~15.2K tokens)
  Current context: ~165.3K tokens
  Without DCP:     ~180.5K tokens

Interpretação das Métricas Principais:

MétricaSignificadoComo Avaliar
PrunedQuantidade de ferramentas podadas e tokensQuanto maior, mais o DCP economiza
Current contextTotal de tokens do contexto atual da sessãoDeve ser significativamente menor que Without DCP
Without DCPTamanho do contexto sem DCP ativadoUsado para comparar o efeito de economia

Passo 2: Comparar Com/Sem DCP ​

Por quê Através da comparação, sentir intuitivamente a diferença entre cache e economia de tokens

bash
# 1. Desativar DCP (definir enabled: false na configuração)
# Ou desativar temporariamente:
/dcp sweep 999  # Podar todas as ferramentas, observar efeito do cache

# 2. Realizar algumas conversas

# 3. Ver estatísticas
/dcp stats

# 4. Reativar DCP
# (modificar configuração ou restaurar valores padrão)

# 5. Continuar conversando, comparar estatísticas
/dcp stats

Você deve ver:

Use /dcp context para observar mudanças nas métricas principais:

MétricaDCP DesativadoDCP AtivadoExplicação
Pruned0 tools5-20 toolsQuantidade de ferramentas podadas pelo DCP
Current contextMaiorMenorContexto significativamente reduzido após DCP
Without DCPIgual ao CurrentMaior que CurrentMostra o potencial de economia do DCP

Sugestões para Testes Práticos

Teste em diferentes tipos de sessão:

  1. Sessões curtas (5-10 mensagens): Observe se o cache é mais importante
  2. Sessões longas (30+ mensagens): Observe se a economia do DCP é mais evidente
  3. Leituras repetidas: Cenários com leitura frequente dos mesmos arquivos

Isso ajuda a fazer a melhor escolha conforme seus hábitos de uso.

Passo 3: Entender o Impacto da Poluição de Contexto ​

Por quê A poda do DCP não apenas economiza tokens, mas também reduz a poluição de contexto, melhorando a qualidade das respostas

O Que é Poluição de Contexto?

Poluição de contexto refere-se a excesso de informações redundantes, irrelevantes ou desatualizadas no histórico da conversa, causando:

  • Dispersão da atenção do modelo, dificuldade em focar na tarefa atual
  • Possível referência a dados antigos (como conteúdo de arquivos já modificados)
  • Queda na qualidade das respostas, necessitando mais tokens para "entender" o contexto

O DCP reduz essa poluição removendo saídas de ferramentas já concluídas, operações de leitura duplicadas, etc.

Comparação de Efeitos Práticos:

CenárioSem DCPCom DCP
Ler o mesmo arquivo 3 vezesMantém 3 saídas completas (redundante)Mantém apenas a mais recente
Reler após escrever arquivoOperação de escrita antiga + nova leituraMantém apenas a nova leitura
Saída de ferramenta com erroMantém entrada de erro completaMantém apenas a mensagem de erro

Com menos poluição de contexto, o modelo pode entender o estado atual com mais precisão, reduzindo "alucinações" ou referências a dados desatualizados.

Recomendações de Melhores Práticas ​

Escolher Estratégia Conforme o Provedor ​

ProvedorModelo de CobrançaRecomendaçãoMotivo
GitHub CopilotPor requisição✅ Sempre ativarOtimização de custo zero, apenas melhora desempenho
Google AntigravityPor requisição✅ Sempre ativarIdem
AnthropicPor token✅ Ativar em sessões longas
⚠️ Opcional em sessões curtas
Equilibrar cache e economia
OpenAIPor token✅ Ativar em sessões longas
⚠️ Opcional em sessões curtas
Idem

Ajustar Configuração Conforme Tipo de Sessão ​

jsonc
// ~/.config/opencode/dcp.jsonc ou configuração do projeto

{
  // Sessões longas (> 30 mensagens): ativar todas as estratégias
  "strategies": {
    "deduplication": { "enabled": true },
    "supersedeWrites": { "enabled": true },  // Recomendado ativar
    "purgeErrors": { "enabled": true }
  },

  // Sessões curtas (< 10 mensagens): ativar apenas deduplicação
  "strategies": {
    "deduplication": { "enabled": true },
    "supersedeWrites": { "enabled": false },
    "purgeErrors": { "enabled": false }
  }
}

Explicação das Estratégias:

  • deduplication (deduplicação): Impacto pequeno, recomendado sempre ativar
  • supersedeWrites (sobrescrever escritas): Impacto médio, recomendado para sessões longas
  • purgeErrors (limpar erros): Impacto pequeno, recomendado ativar

Ajuste Dinâmico de Estratégia ​

Use /dcp context para observar a composição de tokens e o efeito da poda:

bash
# Se o valor de Pruned for alto, significa que o DCP está economizando tokens ativamente
# Compare Current context e Without DCP para avaliar o efeito de economia

/dcp context

Checkpoint ✅ ​

Confirme que você entendeu os seguintes pontos:

  • [ ] Prompt Caching baseia-se em correspondência exata de prefixo; mudanças no conteúdo invalidam o cache
  • [ ] A poda do DCP altera o conteúdo das mensagens, causando queda na taxa de acerto do cache (~20%)
  • [ ] Em sessões longas, a economia de tokens geralmente supera a perda de cache
  • [ ] GitHub Copilot e Google Antigravity cobram por requisição; DCP é otimização de custo zero
  • [ ] Anthropic e OpenAI cobram por token; é necessário equilibrar cache e economia
  • [ ] Use /dcp context para observar composição de tokens e efeito da poda
  • [ ] Ajuste dinamicamente a configuração de estratégia conforme a duração da sessão

Armadilhas Comuns ​

❌ Pensar que Queda na Taxa de Acerto = Aumento de Custos ​

Problema: Ver a taxa de acerto do cache cair de 85% para 65% e pensar que os custos aumentarão

Causa: Focar apenas na taxa de acerto do cache, ignorando a economia de tokens e redução do contexto

Solução: Use /dcp context para ver dados reais, focando em:

  1. Tokens economizados pela poda do DCP (Pruned)
  2. Tamanho atual do contexto (Current context)
  3. Tamanho teórico sem poda (Without DCP)

Comparando Without DCP e Current context, você pode ver a quantidade real de tokens economizada pelo DCP.

❌ Poda Muito Agressiva em Sessões Curtas ​

Problema: Sessões curtas de 5-10 mensagens com todas as estratégias ativadas, invalidação de cache evidente

Causa: Em sessões curtas, a expansão do contexto não é severa; poda agressiva traz poucos benefícios

Solução:

  • Em sessões curtas, ativar apenas deduplication e purgeErrors
  • Desativar estratégia supersedeWrites
  • Ou desativar completamente o DCP (enabled: false)

❌ Ignorar Diferenças de Cobrança Entre Provedores ​

Problema: Preocupar-se com custos de invalidação de cache no GitHub Copilot

Causa: Não perceber que o Copilot cobra por requisição; invalidação de cache não aumenta custos

Solução:

  • Copilot e Antigravity: sempre ativar DCP
  • Anthropic e OpenAI: ajustar estratégia conforme duração da sessão

❌ Tomar Decisões Sem Observar Dados Reais ​

Problema: Decidir por intuição se deve ativar o DCP

Causa: Não usar /dcp context e /dcp stats para observar efeitos reais

Solução:

  • Coletar dados em diferentes sessões
  • Comparar diferenças com/sem DCP
  • Fazer escolhas baseadas em seus hábitos de uso

Resumo da Lição ​

Mecanismo Central do Prompt Caching:

  • Provedores de LLM fazem cache de prompts baseado em correspondência exata de prefixo
  • A poda do DCP altera o conteúdo das mensagens, causando invalidação do cache
  • Taxa de acerto do cache cai (~20%), mas economia de tokens é mais significativa

Matriz de Decisão de Trade-off:

CenárioConfiguração RecomendadaMotivo
GitHub Copilot/Google Antigravity✅ Sempre ativarCobrança por requisição, otimização de custo zero
Anthropic/OpenAI sessões longas✅ Ativar todas as estratégiasEconomia de tokens > perda de cache
Anthropic/OpenAI sessões curtas⚠️ Apenas deduplicação + limpeza de errosCache é mais importante

Pontos-Chave:

  1. Queda na taxa de acerto do cache não equivale a aumento de custos: É preciso ver a economia total de tokens
  2. Modelo de cobrança do provedor afeta a estratégia: Por requisição vs por token
  3. Ajuste dinâmico conforme duração da sessão: Sessões longas se beneficiam mais
  4. Use ferramentas para observar dados: /dcp context e /dcp stats

Resumo das Melhores Práticas:

1. Confirme seu provedor e modelo de cobrança
2. Ajuste configuração de estratégia conforme duração da sessão
3. Use /dcp context regularmente para observar efeitos
4. Em sessões longas, priorize economia de tokens
5. Em sessões curtas, priorize taxa de acerto do cache

Prévia da Próxima Lição ​

Na próxima lição, aprenderemos sobre Tratamento de Subagentes.

Você aprenderá:

  • Como o DCP detecta sessões de subagentes
  • Por que subagentes não participam da poda
  • Como resultados de poda em subagentes são passados ao agente principal

Apêndice: Referência do Código-Fonte ​

Clique para expandir e ver localização do código-fonte

Atualizado em: 2026-01-23

FuncionalidadeCaminho do ArquivoLinha
Explicação do Prompt CachingREADME.md46-52
Cálculo de Tokens (incluindo cache)lib/messages/utils.ts66-78
Comando de Análise de Contextolib/commands/context.ts68-174
Cálculo de Tokens em Cachelib/commands/context.ts106-107
Log de Tokens em Cachelib/logger.ts141
Definição do Placeholder de Podalib/messages/prune.ts6-7
Poda de Saída de Ferramentaslib/messages/prune.ts22-46

Constantes Principais:

  • Nenhuma

Funções Principais:

  • calculateTokens(messages, tokenizer): Calcula número de tokens das mensagens, incluindo cache.read e cache.write
  • buildSessionContext(messages): Constrói análise de contexto da sessão, distinguindo System/User/Assistant/Tools
  • formatContextAnalysis(analysis): Formata saída da análise de contexto

Tipos Principais:

  • TokenCounts: Estrutura de contagem de tokens, contendo input/output/reasoning/cache

Explicação do Mecanismo de Cache (do README):

  • Anthropic e OpenAI fazem cache de prompts baseado em correspondência exata de prefixo
  • A poda do DCP altera o conteúdo das mensagens, causando invalidação do cache
  • Com DCP ativado, taxa de acerto do cache ~65%; sem DCP ~85%
  • Melhor caso de uso: provedores com cobrança por requisição (GitHub Copilot, Google Antigravity) sem impacto negativo