İstem önbellekleme
İstem önbellekleme, model sağlayıcısının her turda değişmeyen istem öneklerini (genellikle sistem/geliştirici talimatları ve diğer kararlı bağlam) her seferinde yeniden işlemlemek yerine turlar arasında yeniden kullanabilmesi anlamına gelir. OpenClaw, yukarı akış API bu sayaçları doğrudan sunduğunda sağlayıcı kullanımınıcacheRead ve cacheWrite olarak normalize eder.
Canlı oturum anlık görüntüsünde bunlar eksik olduğunda durum yüzeyleri en son transkript kullanım
günlüğünden önbellek sayaçlarını da geri alabilir; böylece /status, oturum meta verilerinin kısmen
kaybolmasından sonra bile bir önbellek satırı göstermeye devam edebilir. Mevcut sıfır olmayan canlı
önbellek değerleri yine de transkript geri dönüş değerlerine göre önceliklidir.
Bunun neden önemli olduğu: daha düşük belirteç maliyeti, daha hızlı yanıtlar ve uzun süre çalışan oturumlar için daha öngörülebilir performans. Önbellekleme olmadan, tekrar eden istemler girdinin büyük kısmı değişmemiş olsa bile her turda tam istem maliyetini öder.
Bu sayfa, istem yeniden kullanımını ve belirteç maliyetini etkileyen tüm önbellekle ilgili ayarları kapsar.
Sağlayıcı başvuruları:
- Anthropic istem önbellekleme: https://platform.claude.com/docs/en/build-with-claude/prompt-caching
- OpenAI istem önbellekleme: https://developers.openai.com/api/docs/guides/prompt-caching
- OpenAI API üstbilgileri ve istek kimlikleri: https://developers.openai.com/api/reference/overview
- Anthropic istek kimlikleri ve hatalar: https://platform.claude.com/docs/en/api/errors
Birincil ayarlar
cacheRetention (genel varsayılan, model ve aracı başına)
Tüm modeller için önbellek saklamayı genel varsayılan olarak ayarlayın:
agents.defaults.params(genel varsayılan — tüm modellere uygulanır)agents.defaults.models["provider/model"].params(model başına geçersiz kılma)agents.list[].params(eşleşen aracı kimliği; anahtara göre geçersiz kılar)
contextPruning.mode: "cache-ttl"
Boşta kalma sonrası isteklerin aşırı büyük geçmişi yeniden önbelleğe almaması için, önbellek TTL pencerelerinden sonra eski araç-sonucu bağlamını budar.
Heartbeat sıcak tutma
Heartbeat, önbellek pencerelerini sıcak tutabilir ve boşta kalma aralıklarından sonra tekrar eden önbellek yazımlarını azaltabilir.agents.list[].heartbeat altında desteklenir.
Sağlayıcı davranışı
Anthropic (doğrudan API)
cacheRetentiondesteklenir.- Anthropic API anahtarı kimlik doğrulama profilleriyle, OpenClaw ayarlanmamış Anthropic model başvuruları için
cacheRetention: "short"ekler. - Anthropic yerel Messages yanıtları hem
cache_read_input_tokenshem decache_creation_input_tokensdeğerlerini sunar; bu nedenle OpenClaw hemcacheReadhem decacheWritegösterebilir. - Yerel Anthropic isteklerinde,
cacheRetention: "short"varsayılan 5 dakikalık geçici önbelleğe eşlenir vecacheRetention: "long"yalnızca doğrudanapi.anthropic.comana bilgisayarlarında 1 saatlik TTL’ye yükseltilir.
OpenAI (doğrudan API)
- İstem önbellekleme desteklenen yeni modellerde otomatiktir. OpenClaw’ın blok düzeyinde önbellek işaretçileri eklemesi gerekmez.
- OpenClaw, turlar arasında önbellek yönlendirmesini kararlı tutmak için
prompt_cache_keykullanır veprompt_cache_retention: "24h"değerini yalnızca doğrudan OpenAI ana bilgisayarlarındacacheRetention: "long"seçildiğinde kullanır. - OpenAI yanıtları, önbelleğe alınmış istem belirteçlerini
usage.prompt_tokens_details.cached_tokensaracılığıyla gösterir (veya Responses API olaylarındainput_tokens_details.cached_tokens). OpenClaw bunucacheReaddeğerine eşler. - OpenAI ayrı bir önbellek-yazma belirteç sayacı sunmaz; bu nedenle sağlayıcı önbelleği ısıtıyor olsa bile OpenAI yollarında
cacheWrite0olarak kalır. - OpenAI,
x-request-id,openai-processing-msvex-ratelimit-*gibi yararlı izleme ve hız sınırı üstbilgileri döndürür, ancak önbellek isabeti hesaplaması üstbilgilerden değil kullanım yükünden alınmalıdır. - Pratikte OpenAI, Anthropic tarzı hareketli tam geçmiş yeniden kullanımı yerine genellikle ilk önek önbelleği gibi davranır. Kararlı uzun önekli metin turları, mevcut canlı problarda
4864önbelleğe alınmış belirteç platosuna yaklaşabilirken, araç ağırlıklı veya MCP tarzı transkriptler tam tekrar durumunda bile genellikle4608önbelleğe alınmış belirteç civarında plato yapar.
Anthropic Vertex
- Vertex AI üzerindeki Anthropic modelleri (
anthropic-vertex/*)cacheRetentionözelliğini doğrudan Anthropic ile aynı şekilde destekler. cacheRetention: "long", Vertex AI uç noktalarında gerçek 1 saatlik istem önbelleği TTL’sine eşlenir.anthropic-vertexiçin varsayılan önbellek saklama, doğrudan Anthropic varsayılanlarıyla aynıdır.- Vertex istekleri, önbellek yeniden kullanımının sağlayıcıların gerçekte aldıklarıyla uyumlu kalması için sınır farkındalıklı önbellek şekillendirme üzerinden yönlendirilir.
Amazon Bedrock
- Anthropic Claude model başvuruları (
amazon-bedrock/*anthropic.claude*) açıkcacheRetentiongeçişini destekler. - Anthropic olmayan Bedrock modelleri çalışma zamanında
cacheRetention: "none"değerine zorlanır.
OpenRouter Anthropic modelleri
openrouter/anthropic/* model başvurularında OpenClaw, istem önbelleği
yeniden kullanımını iyileştirmek için sistem/geliştirici istem bloklarına Anthropic
cache_control enjekte eder; ancak bunu yalnızca istek hâlâ doğrulanmış bir OpenRouter rotasını
hedefliyorsa yapar (openrouter varsayılan uç noktasında veya openrouter.ai
çözümlenen herhangi bir sağlayıcı/base URL üzerinde).
Modeli rastgele bir OpenAI uyumlu proxy URL’sine yeniden yönlendirirseniz, OpenClaw
bu OpenRouter’a özgü Anthropic önbellek işaretçilerini enjekte etmeyi durdurur.
Diğer sağlayıcılar
Sağlayıcı bu önbellek modunu desteklemiyorsacacheRetention etkisizdir.
Google Gemini doğrudan API
- Doğrudan Gemini taşıması (
api: "google-generative-ai"), yukarı akışcachedContentTokenCountaracılığıyla önbellek isabetlerini bildirir; OpenClaw bunucacheReaddeğerine eşler. - Doğrudan bir Gemini modelinde
cacheRetentionayarlandığında OpenClaw, Google AI Studio çalıştırmalarında sistem istemleri içincachedContentskaynaklarını otomatik olarak oluşturur, yeniden kullanır ve yeniler. Bu, artık önceden elle bir cached-content tanıtıcısı oluşturmanız gerekmediği anlamına gelir. - Yine de yapılandırılmış modelde
params.cachedContent(veya eskiparams.cached_content) aracılığıyla önceden var olan bir Gemini cached-content tanıtıcısı geçirebilirsiniz. - Bu, Anthropic/OpenAI istem-önek önbelleklemesinden ayrıdır. Gemini için OpenClaw, isteğe önbellek işaretçileri enjekte etmek yerine sağlayıcıya özgü bir
cachedContentskaynağını yönetir.
Gemini CLI JSON kullanımı
- Gemini CLI JSON çıktısı, önbellek isabetlerini
stats.cachedaracılığıyla da gösterebilir; OpenClaw bunucacheReaddeğerine eşler. - CLI doğrudan bir
stats.inputdeğeri atlıyorsa, OpenClaw giriş belirteçlerinistats.input_tokens - stats.cachedüzerinden türetir. - Bu yalnızca kullanım normalizasyonudur. Bu, OpenClaw’ın Gemini CLI için Anthropic/OpenAI tarzı istem önbelleği işaretçileri oluşturduğu anlamına gelmez.
Sistem istemi önbellek sınırı
OpenClaw, sistem istemini bir iç önbellek öneki sınırıyla ayrılmış kararlı önek ve değişken sonek olarak böler. Sınırın üzerindeki içerik (araç tanımları, Skills meta verileri, çalışma alanı dosyaları ve diğer nispeten statik bağlam) turlar arasında bayt düzeyinde aynı kalacak şekilde sıralanır. Sınırın altındaki içeriğin (örneğinHEARTBEAT.md, çalışma zamanı zaman damgaları ve
tur başına diğer meta veriler) önbelleğe alınmış
öneki geçersiz kılmadan değişmesine izin verilir.
Temel tasarım tercihleri:
- Kararlı çalışma alanı proje-bağlam dosyaları
HEARTBEAT.mddosyasından önce sıralanır; böylece heartbeat kaynaklı değişim kararlı öneki bozmaz. - Sınır, Anthropic ailesi, OpenAI ailesi, Google ve CLI taşıma şekillendirme genelinde uygulanır; böylece desteklenen tüm sağlayıcılar aynı önek kararlılığından yararlanır.
- Codex Responses ve Anthropic Vertex istekleri, önbellek yeniden kullanımının sağlayıcıların gerçekten aldıklarıyla uyumlu kalması için sınır farkındalıklı önbellek şekillendirme üzerinden yönlendirilir.
- Sistem istemi parmak izleri normalize edilir (boşluk, satır sonları, hook ile eklenen bağlam, çalışma zamanı yetenek sıralaması); böylece anlamsal olarak değişmemiş istemler turlar arasında KV/önbelleği paylaşır.
cacheWrite sıçramaları görürseniz,
değişikliğin önbellek sınırının üstüne mi yoksa altına mı geldiğini kontrol edin. Değişken
içeriği sınırın altına taşımak (veya kararlı hâle getirmek) çoğu zaman
sorunu çözer.
OpenClaw önbellek kararlılığı korumaları
OpenClaw ayrıca, istek sağlayıcıya ulaşmadan önce önbelleğe duyarlı çeşitli yük şekillerini belirlenimci tutar:- Paket MCP araç katalogları, araç
kaydından önce belirlenimci biçimde sıralanır; böylece
listTools()sırasındaki değişiklikler araçlar bloğunu değiştirip istem önbelleği öneklerini bozmaz. - Kalıcı görüntü bloklarına sahip eski oturumlar, en son 3 tamamlanmış turu bozulmadan korur; daha eski ve zaten işlenmiş görüntü blokları bir işaretçiyle değiştirilebilir; böylece görüntü ağırlıklı devam turları büyük eski yükleri tekrar tekrar göndermeye devam etmez.
Ayarlama kalıpları
Karışık trafik (önerilen varsayılan)
Ana aracınızda uzun ömürlü bir temel tutun, ani bildirim aracıları için önbellekleme devre dışı bırakın:Önce maliyet temeli
- Temel
cacheRetention: "short"olarak ayarlayın. contextPruning.mode: "cache-ttl"etkinleştirin.- Heartbeat’i yalnızca sıcak önbelleklerden fayda sağlayan aracılar için TTL’nizin altında tutun.
Önbellek tanılamaları
OpenClaw, gömülü aracı çalıştırmaları için özel önbellek izleme tanılamaları sunar. Normal kullanıcıya yönelik tanılamalarda,/status ve diğer kullanım özetleri
canlı oturum girdisinde bu sayaçlar yoksa cacheRead /
cacheWrite için geri dönüş kaynağı olarak en son transkript kullanım girdisini kullanabilir.
Canlı regresyon testleri
OpenClaw; tekrar eden önekler, araç turları, görüntü turları, MCP tarzı araç transkriptleri ve bir Anthropic önbelleksiz kontrolü için tek bir birleşik canlı önbellek regresyon geçidi tutar.src/agents/live-cache-regression.live.test.tssrc/agents/live-cache-regression-baseline.ts
Anthropic canlı beklentileri
cacheWritearacılığıyla açık ısınma yazımları beklenir.- Anthropic önbellek denetimi, önbellek kesme noktasını konuşma boyunca ileri taşıdığı için tekrar eden turlarda neredeyse tam geçmiş yeniden kullanımı beklenir.
- Mevcut canlı doğrulamalar, kararlı, araç ve görüntü yollarında hâlâ yüksek isabet oranı eşiklerini kullanır.
OpenAI canlı beklentileri
- Yalnızca
cacheReadbeklenir.cacheWrite0olarak kalır. - Tekrarlanan tur önbellek yeniden kullanımını, Anthropic tarzı hareketli tam geçmiş yeniden kullanımı olarak değil, sağlayıcıya özgü bir plato olarak değerlendirin.
- Geçerli canlı doğrulamalar,
gpt-5.4-miniüzerindeki gözlemlenen canlı davranıştan türetilmiş ihtiyatlı taban kontrolleri kullanır:- kararlı önek:
cacheRead >= 4608, isabet oranı>= 0.90 - araç transkripti:
cacheRead >= 4096, isabet oranı>= 0.85 - görüntü transkripti:
cacheRead >= 3840, isabet oranı>= 0.82 - MCP tarzı transkript:
cacheRead >= 4096, isabet oranı>= 0.85
- kararlı önek:
- kararlı önek:
cacheRead=4864, isabet oranı0.966 - araç transkripti:
cacheRead=4608, isabet oranı0.896 - görüntü transkripti:
cacheRead=4864, isabet oranı0.954 - MCP tarzı transkript:
cacheRead=4608, isabet oranı0.891
88s idi.
Doğrulamaların neden farklı olduğu:
- Anthropic, açık önbellek kesme noktaları ve hareketli konuşma geçmişi yeniden kullanımı sunar.
- OpenAI istem önbelleklemesi hâlâ tam önek eşleşmesine duyarlıdır, ancak canlı Responses trafiğinde etkili biçimde yeniden kullanılabilen önek, tam istemden daha erken plato yapabilir.
- Bu nedenle Anthropic ve OpenAI’yi sağlayıcılar arası tek bir yüzde eşiğiyle karşılaştırmak yanlış regresyonlar oluşturur.
diagnostics.cacheTrace yapılandırması
filePath:$OPENCLAW_STATE_DIR/logs/cache-trace.jsonlincludeMessages:trueincludePrompt:trueincludeSystem:true
Ortam değişkeni geçişleri (tek seferlik hata ayıklama)
OPENCLAW_CACHE_TRACE=1önbellek izlemesini etkinleştirir.OPENCLAW_CACHE_TRACE_FILE=/path/to/cache-trace.jsonlçıktı yolunu geçersiz kılar.OPENCLAW_CACHE_TRACE_MESSAGES=0|1tam mesaj yükü yakalamayı açıp kapatır.OPENCLAW_CACHE_TRACE_PROMPT=0|1istem metni yakalamayı açıp kapatır.OPENCLAW_CACHE_TRACE_SYSTEM=0|1sistem istemi yakalamayı açıp kapatır.
İncelenecekler
- Önbellek izleme olayları JSONL biçimindedir ve
session:loaded,prompt:before,stream:contextvesession:aftergibi aşamalı anlık görüntüler içerir. - Tur başına önbellek belirteci etkisi, normal kullanım yüzeylerinde
cacheReadvecacheWriteüzerinden görülebilir (örneğin/usage fullve oturum kullanım özetleri). - Anthropic için, önbellekleme etkin olduğunda hem
cacheReadhem decacheWritebekleyin. - OpenAI için, önbellek isabetlerinde
cacheReadbekleyin vecacheWritedeğerinin0olarak kalmasını bekleyin; OpenAI ayrı bir önbellek-yazma belirteci alanı yayınlamaz. - İstek izlemesine ihtiyacınız varsa, istek kimliklerini ve hız sınırı üstbilgilerini önbellek metriklerinden ayrı olarak günlüğe kaydedin. OpenClaw’ın mevcut önbellek izleme çıktısı, ham sağlayıcı yanıt üstbilgilerinden ziyade istem/oturum şekli ve normalize edilmiş belirteç kullanımına odaklanır.
Hızlı sorun giderme
- Çoğu turda yüksek
cacheWrite: değişken sistem istemi girdilerini kontrol edin ve modelin/sağlayıcının önbellek ayarlarınızı desteklediğini doğrulayın. - Anthropic üzerinde yüksek
cacheWrite: genellikle önbellek kesme noktasının her istekte değişen içeriğe denk geldiği anlamına gelir. - Düşük OpenAI
cacheRead: kararlı önekin başta olduğunu, tekrar eden önekin en az 1024 belirteç olduğunu ve aynıprompt_cache_keydeğerinin önbellek paylaşması gereken turlarda yeniden kullanıldığını doğrulayın. cacheRetentionetkisizse: model anahtarınınagents.defaults.models["provider/model"]ile eşleştiğini doğrulayın.- Önbellek ayarlarıyla Bedrock Nova/Mistral istekleri: çalışma zamanında
nonedeğerine zorlanması beklenir.