Este tópico descreve como usar o cache explícito e suas melhores práticas. Ao adicionar marcadores de cache às requisições, você garante acertos determinísticos para conteúdos de entrada idênticos, o que reduz significativamente custos e latência.
Quando usar o cache explícito
- Necessidade de acertos garantidos: O cache explícito oferece 100% de acertos determinísticos, independentemente do agendamento de recursos do backend. Se sua aplicação exige reutilização estável de conteúdo, essa é a escolha ideal.
- Reutilização frequente do mesmo prompt: O envio repetido de prompts idênticos ou altamente consistentes reduz drasticamente os custos com o cache explícito. A criação do cache gera apenas uma sobretaxa de 25% sobre o preço padrão de entrada, enquanto cada acerto subsequente economiza 90%. Um único acerto já compensa o investimento inicial.
- Gestão de contextos longos em Agents de produção: Em aplicações de Agent, mecanismos comuns como compressão, resumo e lembretes do sistema alteram o contexto continuamente. O cache explícito permite fixar e reutilizar segmentos-chave, mantendo-os em cache mesmo quando o contexto ao redor evolui.
Ferramentas de Agent e codificação
As ferramentas de Agent e codificação listadas abaixo se conectam ao Alibaba Cloud Model Studio via protocolo Anthropic e suportam nativamente o cache explícito. Configure-as conforme as respectivas documentações para que aproveitem automaticamente o cache explícito na otimização do gerenciamento de contexto.
Os exemplos abaixo usam o endpoint de Singapura. Para outras regiões, substitua a URL base pelo endpoint regional correspondente.
- Claude Code
- Open Code
- OpenClaw
- Hermes
O Claude Code v2.x e versões posteriores incluem automaticamente marcadores Defina o endpoint do protocolo Anthropic:
cache_control nas requisições (system, env e mensagem mais recente do usuário). Nenhuma configuração adicional é necessária após a conexão ao endpoint compatível com Anthropic do Alibaba Cloud Model Studio.ConfiguraçãoCrie ou edite o arquivo ~/.claude/settings.json (Windows: C:\Users<username>.claude\settings.json) com as configurações de plano apropriadas. Alternativamente, conecte-se via variáveis de ambiente:- Token Plan (Team): https://token-plan.ap-southeast-1.maas.aliyuncs.com/apps/anthropic
- Coding Plan: https://coding-intl.dashscope.aliyuncs.com/apps/anthropic
-
Pagamento conforme o uso: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic
Substitua
WorkspaceIdpelo seu ID do Workspace real.
Integração via API
Pontos principais
- Adicione
"cache_control": {"type": "ephemeral"}ao conteúdo da mensagem que deseja armazenar em cache. Todo o conteúdo desde o início do array de mensagens até esse marcador será armazenado em cache como um bloco. - O conteúdo em cache deve ter pelo menos 1.024 tokens.
- Uma única requisição suporta até 4 marcadores de cache.
- O TTL do cache é de 5 minutos, renovado automaticamente a cada acerto.
- As definições de ferramentas fazem parte do prompt do sistema para fins de cache. Se as ferramentas mudarem, não haverá acerto de cache.
Início rápido
O exemplo a seguir demonstra o fluxo de trabalho básico: a primeira requisição cria um cache e a segunda o utiliza.
Verificar status do cache
Verifique o campo usage na resposta para confirmar o comportamento do cache:
cache_creation_input_tokens: Número de tokens para os quais um novo cache foi criado. Um valor maior que 0 indica a criação de um novo bloco de cache.cached_tokens(compatível com OpenAI) oucache_read_input_tokens(compatível com Anthropic): Número de tokens que utilizaram o cache. Um valor maior que 0 significa que o cache foi utilizado com sucesso.
Melhores práticas por cenário
Conversas de múltiplas rodadas
Características:
- Usuários interagem com o modelo em várias rodadas, e cada requisição carrega o histórico completo da conversa.
- Casos de uso típicos: atendimento ao cliente, perguntas e respostas de conhecimento, assistentes de código.
cache_control à última mensagem de cada requisição. Cada rodada utiliza o cache criado pela rodada anterior (o histórico da conversa) e cria um novo cache que inclui a rodada atual para a próxima iteração.
Exemplo:
Agent de produção (múltiplos marcadores de cache)
Características:
- Conversas longas de múltiplas rodadas compreendendo: prompt do sistema + definições de habilidades/ferramentas + contexto do projeto + mensagens do usuário/chamadas de ferramentas.
- Diferentes seções mudam em frequências diferentes.
- Casos de uso típicos: assistentes de codificação IA (Claude Code, OpenClaw), sistemas de perguntas e respostas baseados em RAG.
- Prompt do sistema — um marcador (raramente muda).
- Definições de habilidades/ferramentas — um marcador (pode mudar em combinação).
- Contexto do projeto — um marcador (pode alternar ou comprimir).
- Mensagens do usuário/chamadas de ferramentas — um marcador (cresce a cada rodada).
- Usuário continua perguntando sobre o mesmo produto: Persona, ferramentas e base de conhecimento permanecem inalterados, utilizando o cache no marcador 2 (correspondência de prefixo mais longa) para máxima economia.
- Mais rodadas de conversa: O conteúdo anterior (persona + ferramentas + base de conhecimento + histórico) utiliza o cache da rodada anterior; apenas o novo conteúdo requer um novo cache.
Organize o conteúdo do mais estável para o menos estável: coloque o conteúdo que muda menos no início (por exemplo, persona do sistema) e o conteúdo que muda mais no final (por exemplo, conversa atual) para maximizar as taxas de acerto de cache.
Processamento em lote (conclusão de tarefas)
Características:
- Requisições de rodada única, sem necessidade de memória de contexto.
- Prompt de sistema longo e fixo (instruções de tarefa) + entrada de usuário variável (dados a processar).
- Casos de uso típicos: classificação de texto, reconhecimento de intenção, extração de dados, moderação de conteúdo.
cache_control apenas no prompt do sistema. Todas as requisições subsequentes utilizarão o cache desde que o prompt do sistema permaneça inalterado.
Exemplo:
Function Calling com definições de ferramentas em cache
Características:
- Uso de Function Calling com uma longa lista de definições de ferramentas.
- Definições de ferramentas permanecem inalteradas entre requisições.
tools faz parte do prompt do sistema para fins de cache. Garanta que as definições de ferramentas sejam exatamente idênticas entre requisições (mesma ordem, mesma ordem de campos, mesma estrutura) e adicione um marcador cache_control ao conteúdo da mensagem.
Notas importantes
- Requisito de formato de conteúdo: Ao adicionar
cache_control, o campo de conteúdo deve estar em formato de array. Conteúdo em formato de string não suporta marcadores de cache. - Granularidade do marcador de cache: Modelos Qwen3.5 e posteriores suportam apenas pontos de interrupção de cache no nível da mensagem. Colocar múltiplos marcadores
cache_controldentro do array de conteúdo de uma única mensagem não cria pontos de interrupção separados. O sistema armazena cache apenas na última posição do marcador dentro dessa mensagem e não pode realizar correspondência por truncamento em blocos de conteúdo intermediários. Além disso, múltiplas mensagens de sistema são mescladas internamente em um único segmento e não podem servir como pontos de interrupção separados. Para criar múltiplos pontos de interrupção independentes, distribua marcadorescache_controlentre mensagens com funções diferentes (por exemplo, um no sistema, um no usuário). Modelos anteriores ao Qwen3.5 suportam pontos de interrupção no nível de conteúdo (intramensagem). - Mutuamente exclusivo com cache implícito: Uma requisição pode usar apenas um modo de cache. Se a requisição contiver um marcador
cache_control, o cache explícito será usado; caso contrário, o sistema usará automaticamente o cache implícito.