Context Engine
Bir bağlam motoru, OpenClaw’ın her çalıştırma için model bağlamını nasıl oluşturduğunu kontrol eder. Hangi mesajların dahil edileceğine, eski geçmişin nasıl özetleneceğine ve alt ajan sınırları boyunca bağlamın nasıl yönetileceğine karar verir. OpenClaw, yerleşik birlegacy motoruyla gelir. Eklentiler,
etkin bağlam motoru yaşam döngüsünün yerini alan alternatif motorlar kaydedebilir.
Hızlı başlangıç
Hangi motorun etkin olduğunu kontrol edin:Bir bağlam motoru eklentisi yükleme
Bağlam motoru eklentileri, diğer tüm OpenClaw eklentileri gibi yüklenir. Önce yükleyin, ardından yuvadaki motoru seçin:contextEngine değerini "legacy" yapın (veya
anahtarı tamamen kaldırın — varsayılan "legacy" değeridir).
Nasıl çalışır
OpenClaw bir model istemi her çalıştırdığında, bağlam motoru dört yaşam döngüsü noktasında devreye girer:- Ingest — oturuma yeni bir mesaj eklendiğinde çağrılır. Motor, mesajı kendi veri deposunda saklayabilir veya indeksleyebilir.
- Assemble — her model çalıştırmasından önce çağrılır. Motor,
belirteç bütçesine sığan sıralı bir mesaj kümesi (ve isteğe bağlı bir
systemPromptAddition) döndürür. - Compact — bağlam penceresi dolduğunda veya kullanıcı
/compactçalıştırdığında çağrılır. Motor, yer açmak için eski geçmişi özetler. - After turn — bir çalıştırma tamamlandıktan sonra çağrılır. Motor durumu kalıcı hale getirebilir, arka plan sıkıştırmasını tetikleyebilir veya indeksleri güncelleyebilir.
Alt ajan yaşam döngüsü (isteğe bağlı)
OpenClaw şu anda bir alt ajan yaşam döngüsü hook’u çağırır:- onSubagentEnded — bir alt ajan oturumu tamamlandığında veya temizlendiğinde temizleme yapar.
prepareSubagentSpawn hook’u gelecekte kullanılmak üzere arayüzün bir parçasıdır, ancak
çalışma zamanı bunu henüz çağırmaz.
Sistem istemi eklemesi
assemble yöntemi bir systemPromptAddition dizgesi döndürebilir. OpenClaw
bunu çalıştırma için sistem isteminin başına ekler. Bu, motorların
statik çalışma alanı dosyaları gerektirmeden dinamik geri çağırma rehberliği,
geri getirme talimatları veya bağlama duyarlı ipuçları eklemesine olanak tanır.
Legacy motoru
Yerleşiklegacy motoru, OpenClaw’ın özgün davranışını korur:
- Ingest: işlem yok (mesaj kalıcılığını doğrudan oturum yöneticisi işler).
- Assemble: olduğu gibi geçirme (çalışma zamanındaki mevcut sanitize → validate → limit işlem hattı bağlam oluşturmayı işler).
- Compact: yerleşik özetleme sıkıştırmasına devreder; bu işlem eski mesajların tek bir özetini oluşturur ve son mesajları olduğu gibi tutar.
- After turn: işlem yok.
systemPromptAddition sağlamaz.
plugins.slots.contextEngine ayarlanmamışsa (veya "legacy" olarak ayarlanmışsa), bu
motor otomatik olarak kullanılır.
Eklenti motorları
Bir eklenti, eklenti API’sini kullanarak bir bağlam motoru kaydedebilir:ContextEngine arayüzü
Gerekli üyeler:| Üye | Tür | Amaç |
|---|---|---|
info | Özellik | Motor kimliği, adı, sürümü ve sıkıştırmanın ona ait olup olmadığı |
ingest(params) | Yöntem | Tek bir mesajı depolama |
assemble(params) | Yöntem | Bir model çalıştırması için bağlam oluşturma (AssembleResult döndürür) |
compact(params) | Yöntem | Bağlamı özetleme/azaltma |
assemble, şu alanları içeren bir AssembleResult döndürür:
messages— modele gönderilecek sıralı mesajlar.estimatedTokens(zorunlu,number) — motorun oluşturulan bağlamdaki toplam belirteç sayısı tahmini. OpenClaw bunu sıkıştırma eşiği kararları ve tanılama raporlaması için kullanır.systemPromptAddition(isteğe bağlı,string) — sistem isteminin başına eklenir.
| Üye | Tür | Amaç |
|---|---|---|
bootstrap(params) | Yöntem | Bir oturum için motor durumunu başlatma. Motor bir oturumu ilk kez gördüğünde bir kez çağrılır (ör. geçmişi içe aktarma). |
ingestBatch(params) | Yöntem | Tamamlanmış bir turu toplu olarak alma. Bir çalıştırma tamamlandıktan sonra, o turdaki tüm mesajlarla tek seferde çağrılır. |
afterTurn(params) | Yöntem | Çalıştırma sonrası yaşam döngüsü işi (durumu kalıcı hale getirme, arka plan sıkıştırmasını tetikleme). |
prepareSubagentSpawn(params) | Yöntem | Bir alt oturum için paylaşılan durumu hazırlama. |
onSubagentEnded(params) | Yöntem | Bir alt ajan sona erdikten sonra temizleme. |
dispose() | Yöntem | Kaynakları serbest bırakma. Gateway kapanışı veya eklenti yeniden yüklemesi sırasında çağrılır — oturum başına değil. |
ownsCompaction
ownsCompaction, Pi’nin yerleşik deneme içi otomatik sıkıştırmasının
çalıştırma için etkin kalıp kalmayacağını kontrol eder:
true— sıkıştırma davranışı motora aittir. OpenClaw, o çalıştırma için Pi’nin yerleşik otomatik sıkıştırmasını devre dışı bırakır ve motoruncompact()uygulaması/compact, taşma kurtarma sıkıştırması veafterTurn()içinde yapmak istediği proaktif sıkıştırmadan sorumlu olur.falseveya ayarlanmamış — Pi’nin yerleşik otomatik sıkıştırması istem yürütme sırasında yine de çalışabilir, ancak etkin motoruncompact()yöntemi/compactve taşma kurtarma için yine çağrılır.
ownsCompaction: false, OpenClaw’ın otomatik olarak
legacy motorunun sıkıştırma yoluna geri düştüğü anlamına gelmez.
Bu, iki geçerli eklenti modeli olduğu anlamına gelir:
- Sahiplenen mod — kendi sıkıştırma algoritmanızı uygulayın ve
ownsCompaction: trueayarlayın. - Devreden mod —
ownsCompaction: falseayarlayın ve OpenClaw’ın yerleşik sıkıştırma davranışını kullanmak içincompact()içindeopenclaw/plugin-sdk/coreiçindendelegateCompactionToRuntime(...)çağırın.
compact(), etkin ve sahiplenmeyen bir motor için güvenli değildir çünkü
o motor yuvası için normal /compact ve taşma kurtarma sıkıştırma yolunu
devre dışı bırakır.
Yapılandırma başvurusu
kind: "context-engine" eklentileri yine de yüklenebilir ve kayıt
kodlarını çalıştırabilir; plugins.slots.contextEngine, yalnızca OpenClaw’ın bir bağlam motoruna ihtiyaç duyduğunda
hangi kayıtlı motor kimliğini çözeceğini seçer.
Sıkıştırma ve bellekle ilişkisi
- Sıkıştırma, bağlam motorunun sorumluluklarından biridir. Legacy motoru OpenClaw’ın yerleşik özetlemesine devreder. Eklenti motorları herhangi bir sıkıştırma stratejisini uygulayabilir (DAG özetleri, vektör geri getirme vb.).
- Bellek eklentileri (
plugins.slots.memory) bağlam motorlarından ayrıdır. Bellek eklentileri arama/geri getirme sağlar; bağlam motorları modelin ne gördüğünü kontrol eder. Birlikte çalışabilirler — bir bağlam motoru oluşturma sırasında bellek eklentisi verilerini kullanabilir. - Oturum budama (bellekte eski araç sonuçlarını kırpma), hangi bağlam motoru etkin olursa olsun yine de çalışır.
İpuçları
- Motorunuzun düzgün yüklendiğini doğrulamak için
openclaw doctorkullanın. - Motor değiştiriyorsanız mevcut oturumlar, geçerli geçmişleriyle devam eder. Yeni motor gelecekteki çalıştırmaları devralır.
- Motor hataları günlüğe kaydedilir ve tanılamalarda gösterilir. Bir eklenti motoru
kaydedilemezse veya seçilen motor kimliği çözülemezse, OpenClaw
otomatik olarak geri dönmez; eklentiyi düzeltene veya
plugins.slots.contextEnginedeğerini yeniden"legacy"olarak değiştirene kadar çalıştırmalar başarısız olur. - Geliştirme için, yerel bir eklenti dizinini kopyalamadan bağlamak üzere
openclaw plugins install -l ./my-enginekullanın.
İlgili
- Context — ajan turları için bağlamın nasıl oluşturulduğu
- Plugin Architecture — bağlam motoru eklentilerini kaydetme
- Compaction — uzun konuşmaları özetleme