Skip to main content
Bir bağlam motoru, OpenClaw’ın her çalıştırma için model bağlamını nasıl oluşturduğunu denetler: hangi iletilerin dahil edileceği, eski geçmişin nasıl özetleneceği ve alt ajan sınırları arasında bağlamın nasıl yönetileceği. OpenClaw, yerleşik bir legacy motoruyla gelir ve varsayılan olarak bunu kullanır. Yalnızca farklı bir birleştirme, Compaction veya oturumlar arası hatırlama davranışı istendiğinde bir Plugin motoru kurup seçin.

Hızlı başlangıç

1

Hangi motorun etkin olduğunu denetleyin

2

Bir Plugin motoru kurun

Bağlam motoru Pluginleri, diğer tüm OpenClaw Pluginleri gibi kurulur.
3

Motoru etkinleştirip seçin

Kurulum ve yapılandırmadan sonra Gateway’i yeniden başlatın.
4

Eski motora geri dönün (isteğe bağlı)

contextEngine değerini "legacy" olarak ayarlayın (veya anahtarı tamamen kaldırın; varsayılan değer "legacy" değeridir).

Nasıl çalışır?

OpenClaw bir model istemini her çalıştırdığında bağlam motoru, yaşam döngüsünün dört noktasına katılır:
Oturuma yeni bir ileti eklendiğinde çağrılır. Motor, iletiyi kendi veri deposunda saklayabilir veya dizine ekleyebilir.
Her model çalıştırmasından önce çağrılır. Motor, belirteç bütçesine sığan sıralı bir ileti kümesi (ve isteğe bağlı bir systemPromptAddition) döndürür.
Bağlam penceresi dolduğunda veya kullanıcı /compact komutunu çalıştırdığında çağrılır. Motor, alan açmak için eski geçmişi özetler.
Bir çalıştırma tamamlandıktan sonra çağrılır. Motor durumu kalıcı hâle getirebilir, arka planda Compaction tetikleyebilir veya dizinleri güncelleyebilir.
Motorlar ayrıca önyüklemeden, başarılı bir turdan veya Compaction işleminden sonra transkript bakımı (runtimeContext.rewriteTranscriptEntries() aracılığıyla güvenli yeniden yazma) için isteğe bağlı bir maintain() yöntemi uygulayabilir. Yanıtı engellemek yerine ertelenmiş iş olarak çalıştırmak için info.turnMaintenanceMode: "background" değerini ayarlayın. Paketle birlikte gelen ACP dışı Codex koşum takımı için OpenClaw, birleştirilmiş bağlamı Codex geliştirici talimatlarına ve mevcut turun istemine yansıtarak aynı yaşam döngüsünü uygular. Codex, yerel iş parçacığı geçmişini ve yerel Compaction bileşenini yönetmeye devam eder.

Alt ajan yaşam döngüsü (isteğe bağlı)

OpenClaw, isteğe bağlı iki alt ajan yaşam döngüsü kancası çağırır:
method
Alt çalıştırma başlamadan önce paylaşılan bağlam durumunu hazırlar. Kanca; üst/alt oturum anahtarlarını, contextMode (isolated veya fork), kullanılabilir transkript kimliklerini/dosyalarını ve isteğe bağlı TTL değerini alır. Bir geri alma tanıtıcısı döndürürse OpenClaw, hazırlık başarılı olduktan sonra başlatma başarısız olduğunda bunu çağırır. lightContext isteyen ve contextMode="isolated" olarak çözümlenen yerel alt ajan başlatmaları, alt çalıştırmanın bağlam motoru tarafından yönetilen başlatma öncesi durum olmadan hafif önyükleme bağlamından başlaması için bu kancayı kasıtlı olarak atlar.
method
Bir alt ajan oturumu tamamlandığında veya süpürüldüğünde temizleme yapar.

Sistem istemine ekleme

assemble yöntemi bir systemPromptAddition dizesi döndürebilir. OpenClaw bunu çalıştırmanın sistem isteminin başına ekler. Böylece motorlar, statik çalışma alanı dosyaları gerektirmeden dinamik hatırlama yönlendirmeleri, erişim talimatları veya bağlama duyarlı ipuçları ekleyebilir.

Eski motor

Yerleşik legacy motoru, OpenClaw’ın özgün davranışını korur:
  • Alma: işlem yapmaz (ileti kalıcılığını doğrudan oturum yöneticisi işler).
  • Birleştirme: değişiklik yapmadan geçirir (çalışma zamanındaki mevcut temizle → doğrula → sınırla işlem hattı bağlam birleştirmeyi işler).
  • Compaction: eski iletilerin tek bir özetini oluşturan ve son iletileri olduğu gibi koruyan yerleşik özetleme Compaction işlemine devreder.
  • Tur sonrası: işlem yapmaz.
Eski motor araç kaydetmez veya bir systemPromptAddition sağlamaz. Hiçbir plugins.slots.contextEngine ayarlanmadığında (veya "legacy" olarak ayarlandığında) bu motor otomatik olarak kullanılır.

Plugin motorları

Bir Plugin, Plugin API’sini kullanarak bir bağlam motoru kaydedebilir:
ctx fabrikası, Pluginlerin ilk yaşam döngüsü çağrısından önce ajan veya çalışma alanı başına durumu başlatabilmesi için isteğe bağlı config, agentDir ve workspaceDir değerlerini içerir. Eski olmayan bir assemble() çağrısından önce ana makine, kayıtlı eşzamansız bellek istemi hazırlığını tamamlar. Eşzamanlı buildMemorySystemPromptAddition(...) yardımcısı bu değişmez çalıştırma anlık görüntüsünü okur; sağlanan araç, alıntı, ajan ve oturum bağlamını değiştirmeden aktarın. Ardından yapılandırmada etkinleştirin:

ContextEngine arayüzü

Gerekli üyeler: assemble, aşağıdakileri içeren bir AssembleResult döndürür:
Message[]
gerekli
Modele gönderilecek sıralı iletiler.
number
gerekli
Motorun, birleştirilmiş bağlamdaki toplam belirteç sayısına ilişkin tahmini. OpenClaw bunu Compaction eşiği kararları ve tanılama raporlaması için kullanır.
string
Sistem isteminin başına eklenir.
"assembled" | "preassembly_may_overflow"
Çalıştırıcının önleyici taşma ön denetimleri için hangi belirteç tahminini kullanacağını denetler. Varsayılan değer "assembled" değeridir; bu, Compaction’ı yönetmeyen motorlarda yalnızca birleştirilmiş istemin tahmininin denetlendiği anlamına gelir. ownsCompaction: true değerini ayarlayan motorlar kendi istem kabul işlemlerini yönetir; bu nedenle OpenClaw varsayılan olarak genel istem öncesi ön denetimi atlar. Yalnızca birleştirilmiş görünümünüz temel transkriptteki taşma riskini gizleyebiliyorsa "preassembly_may_overflow" değerini ayarlayın; bu durumda çalıştırıcı genel ön denetimi etkin tutar ve önleyici Compaction yapılıp yapılmayacağına karar verirken birleştirilmiş tahmin ile birleştirme öncesi (pencerelenmemiş) oturum geçmişi tahmininden büyük olanını kullanır. Her iki durumda da döndürdüğünüz iletiler modelin gördüğü iletilerdir; promptAuthority yalnızca ön denetimi etkiler.
ContextEngineProjection
Kalıcı arka uç iş parçacıklarına sahip ana makineler (örneğin Codex app-server) için isteğe bağlı yansıtma yaşam döngüsü. Kararlı bir epoch ile mode: "thread_bootstrap", ana makineden birleştirilmiş bağlamı dönem başına bir kez eklemesini ve her turda yeniden yansıtmak yerine dönem değişene kadar arka uç iş parçacığını yeniden kullanmasını ister. Normal tur başına yansıtma için bu alanı dahil etmeyin.
compact, bir CompactResult döndürür. Compaction etkin oturum kimliğini değiştirdiğinde, result.sessionTarget (oturum kimliğini ve depo kapsamını taşıyan türü belirlenmiş bir ContextEngineSessionTarget), sonraki yeniden denemenin veya turun kullanması gereken ardıl oturumu tanımlar; result.sessionId ardıl kimliği yansıtır. İsteğe bağlı üyeler:

Çalışma zamanı ayarları

OpenClaw içinde çalışan yaşam döngüsü kancaları, isteğe bağlı bir runtimeSettings nesnesi alır. Bu, sürümlendirilmiş ve salt okunur bir dahili üretici/tüketici API yüzeyidir: OpenClaw bunu seçilen bağlam motoru için üretir ve bağlam motoru bunu yaşam döngüsü kancaları içinde tüketir. Doğrudan kullanıcılara gösterilmez ve özel bir raporlama yüzeyi oluşturmaz.
  • schemaVersion: şu anda 1
  • runtime: OpenClaw ana bilgisayarı, çalışma zamanı modu (normal, fallback veya degraded) ve isteğe bağlı test donanımı/çalışma zamanı kimlikleri
  • contextEngineSelection: seçilen bağlam motoru kimliği ve seçim kaynağı
  • executionHost: kancayı çağıran yüzeyin ana bilgisayar kimliği ve etiketi
  • model: istenen model, çözümlenen model, sağlayıcı ve isteğe bağlı model ailesi
  • limits: biliniyorsa istem belirteci bütçesi ve maksimum çıktı belirteci sayısı
  • diagnostics: biliniyorsa kapalı geri dönüş ve düşürülmüş çalışma nedeni kodları
Bilinmeyebilen alanlar null olarak gösterilir; çalışma zamanı modu ve seçim kaynağı gibi ayırt edici alanlar null değer kabul etmez. Eski motorlar uyumlu kalır: katı bir eski motor runtimeSettings özelliğini bilinmeyen bir özellik olarak reddederse OpenClaw, motoru karantinaya almak yerine yaşam döngüsü çağrısını bu özellik olmadan yeniden dener.

Ana bilgisayar gereksinimleri

Bağlam motorları, info.hostRequirements üzerinde ana bilgisayar yeteneği gereksinimleri bildirebilir. OpenClaw, işleme başlamadan önce bu gereksinimleri denetler ve seçilen çalışma zamanı bunları karşılayamadığında açıklayıcı bir hatayla kapalı durumda başarısız olur. Motorun gerçek model istemini assemble() aracılığıyla denetlemesi gerektiğinde ajan çalıştırmaları için assemble-before-prompt bildirin:
Yerel Codex ve OpenClaw gömülü ajan çalıştırmaları assemble-before-prompt gereksinimini karşılar. Genel CLI arka uçları bunu karşılamaz; bu nedenle bu yeteneği gerektiren motorlar CLI işlemi başlamadan önce reddedilir.

Hata yalıtımı

OpenClaw, seçilen plugin motorunu çekirdek yanıt yolundan yalıtır. Eski olmayan bir motor eksikse, sözleşme doğrulamasını geçemezse, fabrika oluşturulurken hata fırlatırsa veya bir yaşam döngüsü yönteminden hata fırlatırsa OpenClaw, söz konusu motoru mevcut Gateway işlemi için karantinaya alır ve bağlam motoru işlemlerini yerleşik legacy motoruna düşürür. Hata, başarısız işlemle birlikte günlüğe kaydedilir; böylece operatör, ajan sessiz kalmadan plugin’i onarabilir, güncelleyebilir veya devre dışı bırakabilir. Ana bilgisayar gereksinimi hataları farklıdır: Bir motor, çalışma zamanında gerekli bir yeteneğin bulunmadığını bildirdiğinde OpenClaw, çalıştırmayı başlatmadan önce kapalı durumda başarısız olur. Bu, desteklenmeyen bir ana bilgisayarda çalışmaları hâlinde durumu bozacak motorları korur.

ownsCompaction

ownsCompaction, OpenClaw çalışma zamanının yerleşik deneme içi otomatik Compaction özelliğinin çalıştırma için etkin kalıp kalmayacağını denetler:
Compaction davranışının sahibi motordur. OpenClaw, söz konusu çalıştırma için OpenClaw çalışma zamanının yerleşik otomatik Compaction özelliğini ve istem öncesi genel taşma ön denetimini devre dışı bırakır; motorun compact() uygulaması /compact, sağlayıcı taşması kurtarma Compaction’ı ve afterTurn() içinde gerçekleştirmek istediği tüm proaktif Compaction işlemlerinden sorumludur. Motor, assemble() sonucunda promptAuthority: "preassembly_may_overflow" döndürdüğünde OpenClaw yine de istem öncesi taşma korumasını çalıştırır.
OpenClaw çalışma zamanının yerleşik otomatik Compaction özelliği istem yürütme sırasında çalışmaya devam edebilir; ancak etkin motorun compact() yöntemi /compact ve taşma kurtarma için yine de çağrılır.
ownsCompaction: false, OpenClaw’ın otomatik olarak eski motorun Compaction yoluna geri döneceği anlamına gelmez.
Bu, iki geçerli plugin kalıbı olduğu anlamına gelir:
Kendi Compaction algoritmanızı uygulayın ve ownsCompaction: true değerini ayarlayın.
Hiçbir işlem yapmayan bir compact(), etkin ve sahip olmayan bir motor için güvenli değildir; çünkü söz konusu motor yuvasının normal /compact ve taşma kurtarma Compaction yolunu devre dışı bırakır.

Yapılandırma referansı

Yuva, çalışma zamanında özeldir: Belirli bir çalıştırma veya Compaction işlemi için yalnızca bir kayıtlı bağlam motoru çözümlenir. Etkinleştirilmiş diğer kind: "context-engine" plugin’leri yine de yüklenip kayıt kodlarını çalıştırabilir; plugins.slots.contextEngine, yalnızca OpenClaw bir bağlam motoruna ihtiyaç duyduğunda hangi kayıtlı motor kimliğini çözümleyeceğini seçer.
Plugin’i kaldırma: plugins.slots.contextEngine olarak seçili plugin’i kaldırdığınızda OpenClaw, yuvayı varsayılan değere (legacy) sıfırlar. Aynı sıfırlama davranışı plugins.slots.memory için de geçerlidir. Yapılandırmanın elle düzenlenmesi gerekmez.

Compaction ve bellekle ilişkisi

Compaction, bağlam motorunun sorumluluklarından biridir. Eski motor, işlemi OpenClaw’ın yerleşik özetleme özelliğine devreder. Plugin motorları herhangi bir Compaction stratejisi (DAG özetleri, vektör erişimi vb.) uygulayabilir.
Bellek plugin’leri (plugins.slots.memory) bağlam motorlarından ayrıdır. Bellek plugin’leri arama/erişim sağlar; bağlam motorları ise modelin ne göreceğini denetler. Birlikte çalışabilirler: Bir bağlam motoru, birleştirme sırasında bellek plugini verilerini kullanabilir. Etkin bellek istem yolunu kullanmak isteyen plugin motorları, bellek plugini düzenini açığa çıkarmadan ana bilgisayar tarafından hazırlanmış bellek istemi bölümlerini başa eklenmeye hazır bir systemPromptAddition biçimine dönüştüren openclaw/plugin-sdk/core içindeki buildMemorySystemPromptAddition(...) öğesini kullanmalıdır.
Bellekteki eski araç sonuçlarını kırpma işlemi, hangi bağlam motorunun etkin olduğundan bağımsız olarak çalışmaya devam eder.

İpuçları

  • Motorunuzun doğru şekilde yüklendiğini doğrulamak için openclaw doctor kullanın.
  • Motorlar arasında geçiş yapıldığında mevcut oturumlar geçerli geçmişleriyle devam eder. Yeni motor, gelecekteki çalıştırmaları devralır.
  • Motor hataları günlüğe kaydedilir ve seçilen plugin motoru mevcut Gateway işlemi için karantinaya alınır. Yanıtların devam edebilmesi için OpenClaw, kullanıcı turlarında legacy seçeneğine geri döner; ancak bozuk plugin’i yine de onarmalı, güncellemeli, devre dışı bırakmalı veya kaldırmalısınız.
  • Geliştirme için yerel bir plugin dizinini kopyalamadan bağlamak üzere openclaw plugins install -l ./my-engine kullanın.

İlgili