{"id":737,"date":"2026-09-22T18:34:03","date_gmt":"2026-09-22T21:34:03","guid":{"rendered":"https:\/\/yellowkode.com\/blog\/prompt-caching-gpt-6-funcionamento-praticas-limitacoes\/"},"modified":"2026-09-22T18:34:03","modified_gmt":"2026-09-22T21:34:03","slug":"prompt-caching-gpt-6-funcionamento-praticas-limitacoes","status":"publish","type":"post","link":"https:\/\/yellowkode.com\/blog\/prompt-caching-gpt-6-funcionamento-praticas-limitacoes\/","title":{"rendered":"Prompt Caching no GPT-6: Funcionamento, Pr\u00e1ticas e Limita\u00e7\u00f5es"},"content":{"rendered":"<h2>O que a OpenAI publicou<\/h2>\n<p>Em novembro de 2026, a OpenAI publicou a p\u00e1gina <em>Better prompt caching for GPT-6<\/em> descrevendo mudan\u00e7as na forma como o cache de prompt funciona nos novos modelos da fam\u00edlia GPT-6 (Sol e Luna, lan\u00e7ados no mesmo ciclo). O an\u00fancio veio junto do corte de pre\u00e7os da API, com o GPT-6 Sol e GPT-6 Luna saindo pela metade do pre\u00e7o da gera\u00e7\u00e3o 5.6. Para quem constr\u00f3i agentes, a principal mudan\u00e7a n\u00e3o \u00e9 o pre\u00e7o por token, mas sim o cache.<\/p>\n<p>O n\u00facleo do an\u00fancio incluiu taxas de cache hit mais altas por padr\u00e3o, com desconto de 90% nas leituras de tokens de input cacheados, al\u00e9m de um <em>Prompt Caching Dashboard<\/em> que mostra quanto do input est\u00e1 sendo cacheado ao longo do tempo e uma ferramenta de diagn\u00f3stico que explica oportunidades perdidas de cache e o que corrigir. Al\u00e9m disso, \u00e9 poss\u00edvel alterar o esfor\u00e7o de racioc\u00ednio e a disponibilidade de ferramentas sem invalidar o cache, que era um dos principais motivos de cache miss antes.<\/p>\n<h2>Como o prompt caching funciona por baixo<\/h2>\n<h3>O que o cache est\u00e1 guardando<\/h3>\n<p>Prompt caching n\u00e3o guarda a resposta, mas sim o estado interno j\u00e1 computado para um <em>prefixo<\/em> do prompt. Toda vez que voc\u00ea manda uma requisi\u00e7\u00e3o, o modelo processa os tokens em ordem. Se os primeiros N tokens s\u00e3o id\u00eanticos a uma requisi\u00e7\u00e3o recente, o servi\u00e7o reusa o trabalho j\u00e1 feito para eles e s\u00f3 processa a parte nova.<\/p>\n<p>O cache s\u00f3 serve enquanto o come\u00e7o do pedido \u00e9 literalmente o mesmo. Se voc\u00ea trocar uma v\u00edrgula no meio da parte est\u00e1vel, o prefixo deixa de bater.<\/p>\n<h3>Prefixo, breakpoint e a regra do 1024<\/h3>\n<p>Duas condi\u00e7\u00f5es precisam ser atendidas para haver um cache hit. Primeiro, o prefixo deve ter um tamanho m\u00ednimo: o comprimento m\u00ednimo cache\u00e1vel \u00e9 de 1.024 tokens para GPT-5.6 e modelos posteriores. Segundo, precisa existir um <em>breakpoint<\/em>, um ponto no prompt que marca onde o prefixo reus\u00e1vel termina. O primeiro modo \u00e9 impl\u00edcito, onde o servi\u00e7o escolhe o breakpoint sozinho, e o segundo \u00e9 expl\u00edcito, onde voc\u00ea marca onde ele fica.<\/p>\n<h3>O que invalida o cache<\/h3>\n<p>Reuso exige match exato de prefixo mais compatibilidade de configura\u00e7\u00e3o. O diagn\u00f3stico de cache compara sua requisi\u00e7\u00e3o atual com uma resposta anterior para explicar por que um prefixo esperado n\u00e3o foi reusado. Antes do GPT-6, mudar o esfor\u00e7o de racioc\u00ednio ou ferramentas no meio de uma conversa quebrava o cache, mas agora n\u00e3o quebra mais.<\/p>\n<h3>TTL e reten\u00e7\u00e3o<\/h3>\n<p>O tempo que o prefixo sobrevive no cache \u00e9 regido por TTL. Em modelos GPT-5.6 e posteriores, use <code>prompt_cache_options.ttl<\/code> para definir o tempo m\u00ednimo de vida dos breakpoints escritos pela requisi\u00e7\u00e3o. O \u00fanico valor suportado \u00e9 30 minutos, que tamb\u00e9m \u00e9 o padr\u00e3o.<\/p>\n<h3>O custo de escrever no cache<\/h3>\n<p>Cachear n\u00e3o \u00e9 gr\u00e1tis. Para GPT-5.6 e posteriores, cache writes custam 1,25 vez a taxa padr\u00e3o de input n\u00e3o cacheado. Um \u00fanico reuso j\u00e1 paga o write. Reuso pesado \u00e9 onde o desconto de 90% aparece de verdade.<\/p>\n<h2>O que isso significa na pr\u00e1tica<\/h2>\n<p>A arquitetura de prompt que aproveita cache tem uma forma espec\u00edfica: instru\u00e7\u00f5es e ferramentas est\u00e1veis primeiro, contexto vol\u00e1til depois. Um exemplo com breakpoint expl\u00edcito, adaptado dos formatos que aparecem na documenta\u00e7\u00e3o:<\/p>\n<pre><code>const response = await client.responses.create({\n model: \"gpt-6-sol\",\n prompt_cache_key: \"support-agent:v4\",\n prompt_cache_options: { mode: \"explicit\", ttl: \"30m\" },\n input: [\n {\n role: \"developer\",\n content: [\n { type: \"text\", text: \"politica estavel e instrucoes operacionais...\" },\n { type: \"text\", text: \"\", prompt_cache_breakpoint: true }\n ]\n },\n {\n role: \"user\",\n content: \"por que minha fatura foi duplicada?\"\n }\n ]\n});<\/code><\/pre>\n<p>O <code>prompt_cache_key<\/code> ajuda o servi\u00e7o a agrupar requisi\u00e7\u00f5es que devem compartilhar cache. A pergunta do usu\u00e1rio fica depois do breakpoint, ent\u00e3o varia livremente sem custo de invalida\u00e7\u00e3o.<\/p>\n<h2>Onde quebra<\/h2>\n<h3>Pequenas mudan\u00e7as que invalidam tudo<\/h3>\n<p>Ferramenta reordenada, schema de tool ligeiramente diferente, service tier trocado, ou uma linha de instru\u00e7\u00e3o adicionada no topo em vez de no fim: qualquer uma dessas coisas invalida o prefixo. O diagn\u00f3stico ajuda a identificar, mas a arquitetura deve ser desenhada para n\u00e3o gerar essas varia\u00e7\u00f5es.<\/p>\n<h3>Modo impl\u00edcito ainda tem armadilhas<\/h3>\n<p>No modo impl\u00edcito, se o final da sua mensagem varia muito, voc\u00ea pode perder cache no prefixo que era est\u00e1vel. Modo expl\u00edcito \u00e9 a sa\u00edda.<\/p>\n<h3>Escrever cache tem custo real<\/h3>\n<p>O 1,25x do cache write s\u00f3 compensa se o prefixo for reusado. Aplica\u00e7\u00e3o com muitas conversas \u00fanicas, prefixo enorme e pouco reuso paga cache write repetidas vezes sem colher benef\u00edcio.<\/p>\n<h3>Depende do provedor<\/h3>\n<p>Se voc\u00ea acessa via Azure ou Bedrock, o comportamento pode variar. Cache pode simplesmente n\u00e3o funcionar em combina\u00e7\u00f5es espec\u00edficas de modelo e provedor, e \u00e9 comum descobrir isso apenas quando voc\u00ea mede.<\/p>\n<h2>O que n\u00e3o d\u00e1 para afirmar ainda<\/h2>\n<ul>\n<li>N\u00e3o est\u00e1 claro no an\u00fancio quanto exatamente subiu o hit rate por padr\u00e3o em GPT-6 versus GPT-5.6. Os n\u00fameros p\u00fablicos s\u00e3o casos de cliente, n\u00e3o uma m\u00e9dia divulgada pela OpenAI.<\/li>\n<li>A OpenAI citou dados do GitHub mostrando que melhorias de caching cortaram os tokens de prompt processados em novo em mais de 50% ao longo de bilh\u00f5es de requisi\u00e7\u00f5es, mas o an\u00fancio n\u00e3o separa quanto desse ganho vem especificamente dos novos modelos.<\/li>\n<li>Cache prewarming aparece mencionado em resumos de terceiros, mas os detalhes de API e disponibilidade n\u00e3o est\u00e3o no que confirmei da documenta\u00e7\u00e3o oficial.<\/li>\n<li>N\u00e3o testei pessoalmente os novos endpoints do GPT-6. As afirma\u00e7\u00f5es de mecanismo aqui v\u00eam da documenta\u00e7\u00e3o e do an\u00fancio, n\u00e3o de execu\u00e7\u00e3o minha.<\/li>\n<\/ul>\n<h2>Como testar isso voc\u00ea mesmo<\/h2>\n<p>Um caminho pequeno para experimentar em uma tarde:<\/p>\n<ol>\n<li>Escolha um endpoint que voc\u00ea j\u00e1 usa com prefixo grande e est\u00e1vel.<\/li>\n<li>Fa\u00e7a duas chamadas id\u00eanticas em sequ\u00eancia e olhe <code>prompt_tokens_details.cached_tokens<\/code> na segunda resposta. Se vier zero, voc\u00ea n\u00e3o est\u00e1 batendo o m\u00ednimo de 1024 ou o prefixo n\u00e3o \u00e9 literalmente id\u00eantico.<\/li>\n<li>Migre para Responses API se ainda estiver no Chat Completions, adicione <code>prompt_cache_key<\/code> est\u00e1vel por tipo de agente e <code>prompt_cache_options: { mode: \"explicit\", ttl: \"30m\" }<\/code>.<\/li>\n<li>Coloque um <code>prompt_cache_breakpoint<\/code> no fim da parte est\u00e1vel, antes do conte\u00fado vari\u00e1vel.<\/li>\n<li>Force um miss (mude uma ferramenta, mude o modelo) e leia <code>prompt_cache_diagnostics<\/code> para ver o motivo reportado.<\/li>\n<li>Abra o Prompt Caching Dashboard e compare hit rate antes e depois.<\/li>\n<\/ol>\n<p>Se depois de tudo isso o hit rate n\u00e3o subir, o problema quase sempre \u00e9 serializa\u00e7\u00e3o n\u00e3o determin\u00edstica ou varia\u00e7\u00e3o no topo do prompt que voc\u00ea n\u00e3o estava notando. O diagn\u00f3stico existe para isso.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como o prompt caching do GPT-6 funciona por baixo: breakpoints expl\u00edcitos, diagn\u00f3stico de cache miss, TTL de 30 minutos e o que muda para agentes.<\/p>\n","protected":false},"author":2,"featured_media":736,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts\/737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/comments?post=737"}],"version-history":[{"count":0,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/posts\/737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/media\/736"}],"wp:attachment":[{"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/media?parent=737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/categories?post=737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yellowkode.com\/blog\/wp-json\/wp\/v2\/tags?post=737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}