Technical reference
İstem önbelleğe alma
İstem önbelleğe alma, model sağlayıcısının değişmeyen istem öneklerini (genellikle sistem/geliştirici talimatları ve diğer kararlı bağlam) her seferinde yeniden işlemek yerine turlar arasında yeniden kullanabilmesi anlamına gelir. OpenClaw, üst API bu sayaçları doğrudan sunduğunda sağlayıcı kullanımını cacheRead ve cacheWrite olarak normalleştirir.
Durum yüzeyleri, canlı oturum anlık görüntüsünde eksik olduklarında en son transkript
kullanım günlüğünden önbellek sayaçlarını da kurtarabilir; böylece /status, kısmi oturum
meta verisi kaybından sonra da bir önbellek satırı göstermeye devam edebilir. Mevcut sıfır olmayan canlı
önbellek değerleri, transkript geri dönüş değerlerine göre yine önceliklidir.
Bunun neden önemli olduğu: daha düşük token maliyeti, daha hızlı yanıtlar ve uzun süre çalışan oturumlar için daha öngörülebilir performans. Önbelleğe alma olmadan, girdinin çoğu değişmese bile tekrarlanan istemler her turda tam istem maliyetini öder.
Aşağıdaki bölümler, istem yeniden kullanımını ve token maliyetini etkileyen önbellekle ilgili her ayarı kapsar.
Sağlayıcı başvuruları:
- Anthropic istem önbelleğe alma: https://platform.claude.com/docs/en/build-with-claude/prompt-caching
- OpenAI istem önbelleğe alma: https://developers.openai.com/api/docs/guides/prompt-caching
- OpenAI API üst bilgileri 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 ajan başına)
Önbellek saklamayı tüm modeller için genel varsayılan olarak ayarlayın:
agents: defaults: params: cacheRetention: "long" # none | short | longModel başına geçersiz kılın:
agents: defaults: models: "anthropic/claude-opus-4-6": params: cacheRetention: "short" # none | short | longAjan başına geçersiz kılma:
agents: list: - id: "alerts" params: cacheRetention: "none"Yapılandırma birleştirme sırası:
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 ajan 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.
agents: defaults: contextPruning: mode: "cache-ttl" ttl: "1h"Tam davranış için Oturum Budama bölümüne bakın.
Heartbeat sıcak tutma
Heartbeat, önbellek pencerelerini sıcak tutabilir ve boşta kalma aralıklarından sonra tekrarlanan önbellek yazmalarını azaltabilir.
agents: defaults: heartbeat: every: "55m"Ajan başına heartbeat agents.list[].heartbeat konumunda desteklenir.
Sağlayıcı davranışı
Anthropic (doğrudan API)
cacheRetentiondesteklenir.- Anthropic API anahtarı kimlik doğrulama profilleriyle, ayarlanmamışsa OpenClaw Anthropic model referansları için
cacheRetention: "short"tohumlar. - 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.comhostlarında 1 saatlik TTL’ye yükseltilir.
OpenAI (doğrudan API)
- İstem önbelleğe alma, desteklenen güncel modellerde otomatiktir. OpenClaw’ın blok düzeyinde önbellek işaretleyicileri enjekte etmesi gerekmez.
- OpenClaw, önbellek yönlendirmesini turlar arasında kararlı tutmak için
prompt_cache_keykullanır. Doğrudan OpenAI hostları,cacheRetention: "long"seçildiğindeprompt_cache_retention: "24h"kullanır. - OpenAI uyumlu Completions sağlayıcıları,
prompt_cache_keydeğerini yalnızca model yapılandırmaları açıkçacompat.supportsPromptCacheKey: trueayarladığında alır. Uzun saklama iletimi ayrı bir yetenektir: açıkcacheRetention: "long",prompt_cache_retention: "24h"değerini yalnızca ilgili uyumluluk girdisi uzun önbellek saklamayı da desteklediğinde gönderir. Mistral gibi sağlayıcılar, uzun saklama alanını bastırmak içincompat.supportsLongCacheRetention: falseayarlarken önbellek anahtarlarına katılabilir.cacheRetention: "none"her iki alanı da bastırır. - OpenAI yanıtları, önbelleğe alınmış istem tokenlarını
usage.prompt_tokens_details.cached_tokensüzerinden (veya Responses API olaylarındainput_tokens_details.cached_tokensüzerinden) sunar. OpenClaw bunucacheReaddeğerine eşler. - GPT-5.6 Responses kullanımı ayrıca
input_tokens_details.cache_write_tokenssunabilir. OpenClaw bunucacheWritedeğerine eşler ve modelin önbellek yazma oranıyla fiyatlandırır; alanı atlayan Responses,cacheWritedeğerini0olarak tutar. - OpenAI,
x-request-id,openai-processing-msvex-ratelimit-*gibi yararlı izleme ve hız sınırı üst bilgileri döndürür; ancak önbellek isabeti muhasebesi üst bilgilerden değil, kullanım yükünden gelmelidir. - Pratikte OpenAI çoğu zaman Anthropic tarzı hareketli tam geçmiş yeniden kullanımı yerine ilk önek önbelleği gibi davranır. Kararlı uzun önekli metin turları mevcut canlı problarda
4864önbelleğe alınmış token platosuna yaklaşabilirken, araç ağırlıklı veya MCP tarzı transkriptler tam tekrarlarda bile genellikle4608önbelleğe alınmış token civarında plato yapar.
Anthropic Vertex
- Vertex AI üzerindeki Anthropic modelleri (
anthropic-vertex/*), doğrudan Anthropic ile aynı şekildecacheRetentiondestekler. 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 eşleşir.- Vertex istekleri, önbellek yeniden kullanımının sağlayıcıların gerçekten aldığı içerikle hizalı kalması için sınır farkındalıklı önbellek şekillendirmesinden geçirilir.
Amazon Bedrock
- Anthropic Claude model referansları (
amazon-bedrock/*anthropic.claude*) açıkcacheRetentioniletimini destekler. - Anthropic olmayan Bedrock modelleri çalışma zamanında
cacheRetention: "none"değerine zorlanır.
OpenRouter modelleri
openrouter/anthropic/* model referansları için OpenClaw, istem önbelleği
yeniden kullanımını iyileştirmek amacıyla sistem/geliştirici istem bloklarına Anthropic
cache_control enjekte eder; bunu yalnızca istek hâlâ doğrulanmış bir OpenRouter rotasını
hedefliyorsa yapar (openrouter varsayılan uç noktasında veya openrouter.ai adresine
çözümlenen herhangi bir sağlayıcı/temel URL).
openrouter/deepseek/*, openrouter/moonshot*/* ve openrouter/zai/*
model referansları için contextPruning.mode: "cache-ttl" izinlidir, çünkü OpenRouter
sağlayıcı tarafı istem önbelleğe almayı otomatik olarak yönetir. OpenClaw bu isteklere
Anthropic cache_control işaretleyicileri enjekte etmez.
DeepSeek önbellek oluşturma en iyi çaba esasına dayanır ve birkaç saniye sürebilir. Anında
gelen takip isteği yine de cached_tokens: 0 gösterebilir; kısa bir gecikmeden sonra
tekrarlanan aynı önekli bir istekle doğrulayın ve önbellek isabeti sinyali olarak
usage.prompt_tokens_details.cached_tokens değerini kullanın.
Modeli rastgele bir OpenAI uyumlu proxy URL’sine yeniden yönlendirirseniz OpenClaw bu OpenRouter’a özgü Anthropic önbellek işaretleyicilerini enjekte etmeyi durdurur.
Diğer sağlayıcılar
Sağlayıcı bu önbellek modunu desteklemiyorsa cacheRetention etkisizdir.
Google Gemini doğrudan API
- Doğrudan Gemini aktarımı (
api: "google-generative-ai"), önbellek isabetlerini üst kaynakcachedContentTokenCountüzerinden bildirir; OpenClaw bunucacheReaddeğerine eşler. - Doğrudan Gemini modelinde
cacheRetentionayarlandığında OpenClaw, Google AI Studio çalıştırmalarındaki sistem istemleri içincachedContentskaynaklarını otomatik olarak oluşturur, yeniden kullanır ve yeniler. Bu, artık önbelleğe alınmış içerik tanıtıcısını elle önceden oluşturmanız gerekmediği anlamına gelir. - Yine de önceden var olan bir Gemini önbelleğe alınmış içerik tanıtıcısını yapılandırılmış
modelde
params.cachedContent(veya eskiparams.cached_content) olarak geçirebilirsiniz. - Bu, Anthropic/OpenAI istem öneki önbelleğe almadan ayrıdır. Gemini için
OpenClaw, isteğe önbellek işaretleyicileri enjekte etmek yerine sağlayıcıya özgü bir
cachedContentskaynağını yönetir.
Gemini CLI kullanımı
- Gemini CLI
stream-jsonçıktısı, önbellek isabetlerinistats.cachedüzerinden gösterebilir; OpenClaw bunucacheReaddeğerine eşler. Eski--output-format jsongeçersiz kılmaları aynı kullanım normalleştirmesini kullanır. - CLI doğrudan bir
stats.inputdeğerini atlıyorsa OpenClaw giriş tokenlarınıstats.input_tokens - stats.cacheddeğerinden türetir. - Bu yalnızca kullanım normalleştirmesidir. OpenClaw’ın Gemini CLI için Anthropic/OpenAI tarzı istem önbelleği işaretleyicileri oluşturduğu anlamına gelmez.
Sistem istemi önbellek sınırı
OpenClaw, sistem istemini dahili bir önbellek öneki sınırıyla ayrılan kararlı önek ve değişken
sonek olarak böler. Sınırın üstündeki içerik (araç tanımları, Skills meta verileri, çalışma alanı dosyaları ve diğer
görece statik bağlam), turlar arasında byte düzeyinde aynı kalacak şekilde sıralanır.
Sınırın altındaki içeriğin (örneğin HEARTBEAT.md, çalışma zamanı zaman damgaları ve
diğer tur başına meta veriler), önbelleğe alınmış öneki geçersiz kılmadan değişmesine izin verilir.
Temel tasarım seçimleri:
- Kararlı çalışma alanı proje bağlamı dosyaları
HEARTBEAT.mdöncesinde sıralanır; böylece heartbeat değişkenliği kararlı öneki bozmaz. - Sınır, Anthropic ailesi, OpenAI ailesi, Google ve CLI aktarım şekillendirmesi 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ığı içerikle hizalı kalması için sınır farkındalıklı önbellek şekillendirmesinden geçirilir.
- Sistem istemi parmak izleri normalleştirilir (boşluk, satır sonları, hook ile eklenen bağlam, çalışma zamanı yetenek sıralaması); böylece anlamsal olarak değişmeyen istemler turlar arasında KV/önbellek paylaşır.
Bir yapılandırma veya çalışma alanı değişikliğinden sonra beklenmeyen cacheWrite sıçramaları görürseniz,
değişikliğin önbellek sınırının üstüne mi altına mı düştüğünü 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ı birkaç yük şeklini deterministik tutar:
- Bundle MCP araç katalogları, araç kaydından önce deterministik olarak sıralanır; böylece
listTools()sıra değişiklikleri araçlar bloğunu değiştirmez ve istem önbelleği öneklerini bozmaz. - Kalıcı görüntü blokları olan eski oturumlar en son tamamlanan 3 turu olduğu gibi tutar; daha eski, zaten işlenmiş görüntü blokları bir işaretleyiciyle değiştirilebilir, böylece görüntü ağırlıklı takip istekleri büyük eski yükleri yeniden göndermeye devam etmez.
Ayarlama örüntüleri
Karma trafik (önerilen varsayılan)
Ana ajanınızda uzun ömürlü bir taban çizgisi tutun, ani bildirim ajanlarında önbelleğe almayı devre dışı bırakın:
agents: defaults: model: primary: "anthropic/claude-opus-4-6" models: "anthropic/claude-opus-4-6": params: cacheRetention: "long" list: - id: "research" default: true heartbeat: every: "55m" - id: "alerts" params: cacheRetention: "none"Önce maliyet taban çizgisi
- Taban çizgisi
cacheRetention: "short"ayarlayın. contextPruning.mode: "cache-ttl"etkinleştirin.- Heartbeat değerini yalnızca sıcak önbelleklerden yararlanan ajanlar için TTL’nizin altında tutun.
Önbellek tanılama
OpenClaw, gömülü ajan çalıştırmaları için özel önbellek izleme tanılamaları sunar.
Normal kullanıcıya dönük tanılamalarda /status ve diğer kullanım özetleri,
canlı oturum girdisinde bu sayaçlar olmadığında cacheRead /
cacheWrite için geri dönüş kaynağı olarak en son transkript kullanım girdisini kullanabilir.
Canlı regresyon testleri
OpenClaw, tekrarlanan önekler, araç turları, görüntü turları, MCP tarzı araç transkriptleri ve Anthropic önbelleksiz kontrol için tek bir birleşik canlı önbellek regresyon kapısı tutar.
src/agents/live-cache-regression.live.test.tssrc/agents/live-cache-regression-baseline.ts
Dar canlı kapıyı şu komutla çalıştırın:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheTemel dosya, en son gözlemlenen canlı sayıları ve test tarafından kullanılan sağlayıcıya özgü regresyon tabanlarını saklar. Çalıştırıcı ayrıca her çalıştırma için yeni oturum kimlikleri ve istem ad alanları kullanır; böylece önceki önbellek durumu geçerli regresyon örneğini kirletmez.
Bu testler, sağlayıcılar arasında kasıtlı olarak aynı başarı ölçütlerini kullanmaz.
Anthropic canlı beklentileri
cacheWriteüzerinden açık ısınma yazmaları bekleyin.- Anthropic önbellek denetimi, önbellek kesme noktasını konuşma boyunca ilerlettiği için tekrarlanan turlarda geçmişin neredeyse tamamının yeniden kullanılmasını bekleyin.
- Geçerli canlı doğrulamalar, kararlı, araç ve görüntü yolları için hâlâ yüksek isabet oranı eşiklerini kullanır.
OpenAI canlı beklentileri
- Yalnızca
cacheReadbekleyin.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 ele alın.
- Geçerli canlı doğrulamalar,
gpt-5.4-miniüzerinde gözlemlenen canlı davranıştan türetilmiş ihtiyatlı taban denetimleri 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:
2026-04-04 tarihinde yapılan yeni birleşik canlı doğrulama şu değerlere ulaştı:
- 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
Birleşik kapı için yakın tarihli yerel duvar saati süresi yaklaşık 88s idi.
Doğrulamaların farklı olmasının nedeni:
- Anthropic, açık önbellek kesme noktalarını ve hareketli konuşma geçmişi yeniden kullanımını sunar.
- OpenAI istem önbelleğe alma hâlâ tam önek duyarlıdır, ancak canlı Responses trafiğinde etkili yeniden kullanılabilir önek, tam istemden daha erken bir platoya ulaşabilir.
- Bu nedenle Anthropic ve OpenAI'yi tek bir sağlayıcılar arası yüzde eşiğiyle karşılaştırmak yanlış regresyonlar oluşturur.
diagnostics.cacheTrace yapılandırması
diagnostics: cacheTrace: enabled: true filePath: "~/.openclaw/logs/cache-trace.jsonl" # optional includeMessages: false # default true includePrompt: false # default true includeSystem: false # default trueVarsayılanlar:
filePath:$OPENCLAW_STATE_DIR/logs/cache-trace.jsonlincludeMessages:trueincludePrompt:trueincludeSystem:true
Ortam geçişleri (tek seferlik hata ayıklama)
OPENCLAW_CACHE_TRACE=1önbellek izlemeyi etkinleştirir.OPENCLAW_CACHE_TRACE_FILE=/path/to/cache-trace.jsonlçıktı yolunu geçersiz kılar.OPENCLAW_CACHE_TRACE_MESSAGES=0|1tam ileti 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.
Neleri incelemeli
- Ö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ünür (örneğin/usage tokens,/status, oturum kullanım özetleri ve özelmessages.usageTemplatedüzenleri). - Anthropic için, önbelleğe alma etkinken hem
cacheReadhem decacheWritebekleyin. - OpenAI için, önbellek isabetlerinde
cacheReadbekleyin. GPT-5.6 Responses, istem segmentleri yazılırkencacheWriteda bildirebilir; yazma sayacını atlayan diğer Responses yükleri bunu0olarak tutar. - İstek izlemeye ihtiyacınız varsa, istek kimliklerini ve hız sınırı başlıklarını önbellek metriklerinden ayrı olarak günlüğe kaydedin. OpenClaw'ın geçerli önbellek izleme çıktısı, ham sağlayıcı yanıt başlıklarından ziyade istem/oturum şekline ve normalleştirilmiş belirteç kullanımına odaklanır.
Hızlı sorun giderme
- Çoğu turda yüksek
cacheWrite: değişken sistem istemi girdilerini denetleyin ve modelin/sağlayıcının önbellek ayarlarınızı desteklediğini doğrulayın. - Anthropic üzerinde yüksek
cacheWrite: çoğu zaman ö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 en başta olduğunu, tekrarlanan önekin en az 1024 belirteç olduğunu ve önbelleği paylaşması gereken turlar için aynıprompt_cache_keydeğerinin yeniden kullanıldığını doğrulayın. cacheRetentionetkisiz: 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ının
nonedeğerine zorlaması beklenir.
İlgili belgeler: