Ana içeriğe atla

Etkin Bellek

Etkin bellek, uygun konuşma oturumları için ana yanıttan önce çalışan, eklentiye ait isteğe bağlı engelleyici bir bellek alt aracısıdır. Bu özellik vardır çünkü çoğu bellek sistemi yeteneklidir ama tepkiseldir. Belleği ne zaman arayacağına karar vermek için ana aracıya ya da kullanıcının “bunu hatırla” veya “bellekte ara” gibi şeyler söylemesine dayanırlar. O noktada, belleğin yanıtı doğal hissettireceği an çoktan geçmiş olur. Etkin bellek, ana yanıt oluşturulmadan önce sistemin ilgili belleği öne çıkarması için tek ve sınırlı bir fırsat verir.

Bunu Aracınıza Yapıştırın

Etkin Bellek’i kendi kendine yeterli ve güvenli varsayılanlara sahip bir kurulumla etkinleştirmesini istiyorsanız bunu aracınıza yapıştırın:
{
  plugins: {
    entries: {
      "active-memory": {
        enabled: true,
        config: {
          enabled: true,
          agents: ["main"],
          allowedChatTypes: ["direct"],
          modelFallbackPolicy: "default-remote",
          queryMode: "recent",
          promptStyle: "balanced",
          timeoutMs: 15000,
          maxSummaryChars: 220,
          persistTranscripts: false,
          logging: true,
        },
      },
    },
  },
}
Bu, eklentiyi main aracısı için açar, varsayılan olarak yalnızca doğrudan mesaj tarzı oturumlarla sınırlı tutar, önce geçerli oturum modelini devralmasına izin verir ve açık veya devralınmış bir model yoksa yerleşik uzak yedeğe yine de izin verir. Ardından ağ geçidini yeniden başlatın:
node scripts/run-node.mjs gateway --profile dev
Bunu bir konuşmada canlı olarak incelemek için:
/verbose on

Etkin belleği açın

En güvenli kurulum şudur:
  1. eklentiyi etkinleştirin
  2. bir konuşma aracısını hedefleyin
  3. ayarlama yaparken günlüğü açık tutun
openclaw.json içinde şununla başlayın:
{
  plugins: {
    entries: {
      "active-memory": {
        enabled: true,
        config: {
          agents: ["main"],
          allowedChatTypes: ["direct"],
          modelFallbackPolicy: "default-remote",
          queryMode: "recent",
          promptStyle: "balanced",
          timeoutMs: 15000,
          maxSummaryChars: 220,
          persistTranscripts: false,
          logging: true,
        },
      },
    },
  },
}
Ardından ağ geçidini yeniden başlatın:
node scripts/run-node.mjs gateway --profile dev
Bunun anlamı:
  • plugins.entries.active-memory.enabled: true eklentiyi açar
  • config.agents: ["main"] yalnızca main aracısını etkin belleğe dahil eder
  • config.allowedChatTypes: ["direct"] etkin belleği varsayılan olarak yalnızca doğrudan mesaj tarzı oturumlarda açık tutar
  • config.model ayarlanmamışsa, etkin bellek önce geçerli oturum modelini devralır
  • config.modelFallbackPolicy: "default-remote" açık veya devralınmış bir model yoksa yerleşik uzak yedeği varsayılan olarak korur
  • config.promptStyle: "balanced" recent modu için varsayılan genel amaçlı istem stilini kullanır
  • etkin bellek yine de yalnızca uygun etkileşimli kalıcı sohbet oturumlarında çalışır

Nasıl görebilirsiniz

Etkin bellek, model için gizli sistem bağlamı enjekte eder. Ham <active_memory_plugin>...</active_memory_plugin> etiketlerini istemciye göstermez.

Oturum geçişi

Yapılandırmayı düzenlemeden geçerli sohbet oturumu için etkin belleği duraklatmak veya sürdürmek istediğinizde eklenti komutunu kullanın:
/active-memory status
/active-memory off
/active-memory on
Bu, oturum kapsamındadır. plugins.entries.active-memory.enabled, aracı hedefleme veya diğer genel yapılandırmaları değiştirmez. Komutun yapılandırmaya yazmasını ve tüm oturumlar için etkin belleği duraklatmasını veya sürdürmesini istiyorsanız açık genel biçimi kullanın:
/active-memory status --global
/active-memory off --global
/active-memory on --global
Genel biçim plugins.entries.active-memory.config.enabled değerini yazar. Etkin belleği daha sonra yeniden açmak için komut kullanılabilir kalsın diye plugins.entries.active-memory.enabled değerini açık bırakır. Canlı bir oturumda etkin belleğin ne yaptığını görmek istiyorsanız, o oturum için ayrıntılı modu açın:
/verbose on
Ayrıntılı mod etkinken OpenClaw şunları gösterebilir:
  • Active Memory: ok 842ms recent 34 chars gibi bir etkin bellek durum satırı
  • Active Memory Debug: Lemon pepper wings with blue cheese. gibi okunabilir bir hata ayıklama özeti
Bu satırlar, gizli sistem bağlamını besleyen aynı etkin bellek geçişinden türetilir, ancak ham istem işaretlemesini göstermek yerine insanlar için biçimlendirilir. Varsayılan olarak engelleyici bellek alt aracısı dökümü geçicidir ve çalışma tamamlandıktan sonra silinir. Örnek akış:
/verbose on
hangi tavuk kanadını sipariş etmeliyim?
Beklenen görünür yanıt biçimi:
...normal assistant reply...

🧩 Active Memory: ok 842ms recent 34 chars
🔎 Active Memory Debug: Lemon pepper wings with blue cheese.

Ne zaman çalışır

Etkin bellek iki geçit kullanır:
  1. Yapılandırma ile dahil etme Eklenti etkinleştirilmiş olmalıdır ve geçerli aracı kimliği plugins.entries.active-memory.config.agents içinde görünmelidir.
  2. Sıkı çalışma zamanı uygunluğu Etkinleştirilmiş ve hedeflenmiş olsa bile etkin bellek yalnızca uygun etkileşimli kalıcı sohbet oturumlarında çalışır.
Asıl kural şöyledir:
plugin enabled
+
agent id targeted
+
allowed chat type
+
eligible interactive persistent chat session
=
active memory runs
Bunlardan biri başarısız olursa etkin bellek çalışmaz.

Oturum türleri

config.allowedChatTypes, hangi konuşma türlerinin Etkin Bellek’i hiç çalıştırabileceğini kontrol eder. Varsayılan değer şöyledir:
allowedChatTypes: ["direct"]
Bu, Etkin Bellek’in varsayılan olarak doğrudan mesaj tarzı oturumlarda çalıştığı, ancak siz açıkça dahil etmedikçe grup veya kanal oturumlarında çalışmadığı anlamına gelir. Örnekler:
allowedChatTypes: ["direct"]
allowedChatTypes: ["direct", "group"]
allowedChatTypes: ["direct", "group", "channel"]

Nerede çalışır

Etkin bellek, platform genelinde bir çıkarım özelliği değil, konuşmayı zenginleştirme özelliğidir.
YüzeyEtkin bellek çalışır mı?
Control UI / web sohbeti kalıcı oturumlarıEvet, eklenti etkinse ve aracı hedeflenmişse
Aynı kalıcı sohbet yolu üzerindeki diğer etkileşimli kanal oturumlarıEvet, eklenti etkinse ve aracı hedeflenmişse
Başsız tek seferlik çalıştırmalarHayır
Heartbeat/arka plan çalıştırmalarıHayır
Genel dahili agent-command yollarıHayır
Alt aracı/dahili yardımcı yürütmesiHayır

Neden kullanılır

Etkin belleği şu durumlarda kullanın:
  • oturum kalıcı ve kullanıcıya dönükse
  • aracının aranacak anlamlı uzun vadeli belleği varsa
  • süreklilik ve kişiselleştirme, ham istem belirlenimliliğinden daha önemliyse
Özellikle şunlar için iyi çalışır:
  • kalıcı tercihler
  • tekrarlayan alışkanlıklar
  • doğal biçimde öne çıkması gereken uzun vadeli kullanıcı bağlamı
Şunlar için uygun değildir:
  • otomasyon
  • dahili çalışanlar
  • tek seferlik API görevleri
  • gizli kişiselleştirmenin şaşırtıcı olacağı yerler

Nasıl çalışır

Çalışma zamanı biçimi şöyledir: Engelleyici bellek alt aracısı yalnızca şunları kullanabilir:
  • memory_search
  • memory_get
Bağlantı zayıfsa NONE döndürmelidir.

Sorgu modları

config.queryMode, engelleyici bellek alt aracısının konuşmanın ne kadarını göreceğini kontrol eder.

İstem stilleri

config.promptStyle, engelleyici bellek alt aracısının belleği döndürüp döndürmemeye karar verirken ne kadar istekli veya katı olacağını kontrol eder. Kullanılabilir stiller:
  • balanced: recent modu için genel amaçlı varsayılan
  • strict: en az istekli; yakındaki bağlamdan çok az sızıntı istediğinizde en iyisi
  • contextual: sürekliliğe en uygun; konuşma geçmişi daha önemli olduğunda en iyisi
  • recall-heavy: daha yumuşak ama yine de makul eşleşmelerde belleği öne çıkarmaya daha istekli
  • precision-heavy: eşleşme bariz değilse agresif biçimde NONE tercih eder
  • preference-only: favoriler, alışkanlıklar, rutinler, zevkler ve tekrarlayan kişisel olgular için optimize edilmiştir
config.promptStyle ayarlanmamışsa varsayılan eşleme:
message -> strict
recent -> balanced
full -> contextual
config.promptStyle değerini açıkça ayarlarsanız, bu geçersiz kılma kazanır. Örnek:
promptStyle: "preference-only"

Model yedek ilkesi

config.model ayarlanmamışsa Etkin Bellek bir modeli şu sırayla çözmeye çalışır:
explicit plugin model
-> current session model
-> agent primary model
-> optional built-in remote fallback
config.modelFallbackPolicy son adımı kontrol eder. Varsayılan:
modelFallbackPolicy: "default-remote"
Diğer seçenek:
modelFallbackPolicy: "resolved-only"
Açık veya devralınmış bir model yoksa, yerleşik uzak varsayılanına dönmek yerine Etkin Bellek’in hatırlamayı atlamasını istiyorsanız resolved-only kullanın.

Gelişmiş kaçış kapıları

Bu seçenekler bilerek önerilen kurulumun bir parçası değildir. config.thinking, engelleyici bellek alt aracısının düşünme düzeyini geçersiz kılabilir:
thinking: "medium"
Varsayılan:
thinking: "off"
Bunu varsayılan olarak etkinleştirmeyin. Etkin Bellek yanıt yolunda çalışır, bu nedenle ek düşünme süresi doğrudan kullanıcının gördüğü gecikmeyi artırır. config.promptAppend, varsayılan Etkin Bellek isteminden sonra ve konuşma bağlamından önce ek işletmen yönergeleri ekler:
promptAppend: "Tek seferlik olaylar yerine kalıcı uzun vadeli tercihleri tercih et."
config.promptOverride, varsayılan Etkin Bellek isteminin yerine geçer. OpenClaw yine de ardından konuşma bağlamını ekler:
promptOverride: "Bir bellek arama aracısısın. NONE veya tek bir kısa kullanıcı olgusu döndür."
Farklı bir hatırlama sözleşmesini kasıtlı olarak test etmiyorsanız istem özelleştirmesi önerilmez. Varsayılan istem, ana model için ya NONE ya da kısa kullanıcı-olgusu bağlamı döndürecek şekilde ayarlanmıştır.

message

Yalnızca en son kullanıcı mesajı gönderilir.
Latest user message only
Bunu şu durumlarda kullanın:
  • en hızlı davranışı istiyorsanız
  • kalıcı tercihlerin hatırlanmasına en güçlü önyargıyı istiyorsanız
  • takip eden turların konuşma bağlamına ihtiyacı yoksa
Önerilen zaman aşımı:
  • yaklaşık 3000 ile 5000 ms arasında başlayın

recent

En son kullanıcı mesajı ile birlikte son konuşmalardan küçük bir kuyruk gönderilir.
Recent conversation tail:
user: ...
assistant: ...
user: ...

Latest user message:
...
Bunu şu durumlarda kullanın:
  • hız ile konuşma temellendirmesi arasında daha iyi bir denge istiyorsanız
  • takip soruları çoğu zaman son birkaç tura bağlıysa
Önerilen zaman aşımı:
  • yaklaşık 15000 ms civarında başlayın

full

Tüm konuşma, engelleyici bellek alt aracısına gönderilir.
Full conversation context:
user: ...
assistant: ...
user: ...
...
Bunu şu durumlarda kullanın:
  • en güçlü hatırlama kalitesi gecikmeden daha önemliyse
  • konuşma, dizinin çok gerisinde önemli bir hazırlık içeriyorsa
Önerilen zaman aşımı:
  • message veya recent ile karşılaştırıldığında önemli ölçüde artırın
  • dizinin boyutuna bağlı olarak yaklaşık 15000 ms veya daha yüksek bir değerle başlayın
Genel olarak, bağlam boyutu arttıkça zaman aşımı da artmalıdır:
message < recent < full

Döküm kalıcılığı

Engelleyici bellek alt aracısı çalıştırmaları, engelleyici bellek alt aracısı çağrısı sırasında gerçek bir session.jsonl dökümü oluşturur. Varsayılan olarak bu döküm geçicidir:
  • geçici bir dizine yazılır
  • yalnızca engelleyici bellek alt aracısı çalıştırması için kullanılır
  • çalışma biter bitmez hemen silinir
Hata ayıklama veya inceleme için bu engelleyici bellek alt aracısı dökümlerini diskte tutmak istiyorsanız, kalıcılığı açıkça etkinleştirin:
{
  plugins: {
    entries: {
      "active-memory": {
        enabled: true,
        config: {
          agents: ["main"],
          persistTranscripts: true,
          transcriptDir: "active-memory",
        },
      },
    },
  },
}
Etkinleştirildiğinde, etkin bellek dökümleri ana kullanıcı konuşması dökümü yolunda değil, hedef aracının oturumlar klasörü altında ayrı bir dizinde saklar. Varsayılan düzen kavramsal olarak şöyledir:
agents/<agent>/sessions/active-memory/<blocking-memory-sub-agent-session-id>.jsonl
Göreli alt dizini config.transcriptDir ile değiştirebilirsiniz. Bunu dikkatli kullanın:
  • engelleyici bellek alt aracısı dökümleri yoğun oturumlarda hızla birikebilir
  • full sorgu modu çok fazla konuşma bağlamını çoğaltabilir
  • bu dökümler gizli istem bağlamı ve hatırlanan anıları içerir

Yapılandırma

Tüm etkin bellek yapılandırması şunun altında bulunur:
plugins.entries.active-memory
En önemli alanlar şunlardır:
AnahtarTürAnlam
enabledbooleanEklentinin kendisini etkinleştirir
config.agentsstring[]Etkin belleği kullanabilecek aracı kimlikleri
config.modelstringİsteğe bağlı engelleyici bellek alt aracısı model başvurusu; ayarlanmamışsa etkin bellek geçerli oturum modelini kullanır
config.queryMode"message" | "recent" | "full"Engelleyici bellek alt aracısının konuşmanın ne kadarını göreceğini kontrol eder
config.promptStyle"balanced" | "strict" | "contextual" | "recall-heavy" | "precision-heavy" | "preference-only"Belleği döndürüp döndürmemeye karar verirken engelleyici bellek alt aracısının ne kadar istekli veya katı olacağını kontrol eder
config.thinking"off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive"Engelleyici bellek alt aracısı için gelişmiş düşünme geçersiz kılması; hız için varsayılan off
config.promptOverridestringGelişmiş tam istem değiştirme; normal kullanım için önerilmez
config.promptAppendstringVarsayılan veya geçersiz kılınmış isteme eklenen gelişmiş ek yönergeler
config.timeoutMsnumberEngelleyici bellek alt aracısı için katı zaman aşımı
config.maxSummaryCharsnumberEtkin bellek özeti içinde izin verilen en fazla toplam karakter
config.loggingbooleanAyarlama sırasında etkin bellek günlüklerini yayar
config.persistTranscriptsbooleanGeçici dosyaları silmek yerine engelleyici bellek alt aracısı dökümlerini diskte tutar
config.transcriptDirstringAracı oturumlar klasörü altındaki göreli engelleyici bellek alt aracısı döküm dizini
Yararlı ayarlama alanları:
AnahtarTürAnlam
config.maxSummaryCharsnumberEtkin bellek özetinde izin verilen en fazla toplam karakter
config.recentUserTurnsnumberqueryMode değeri recent olduğunda eklenecek önceki kullanıcı turları
config.recentAssistantTurnsnumberqueryMode değeri recent olduğunda eklenecek önceki asistan turları
config.recentUserCharsnumberSon kullanıcı turu başına en fazla karakter
config.recentAssistantCharsnumberSon asistan turu başına en fazla karakter
config.cacheTtlMsnumberTekrarlanan aynı sorgular için önbellek yeniden kullanımı

Önerilen kurulum

recent ile başlayın.
{
  plugins: {
    entries: {
      "active-memory": {
        enabled: true,
        config: {
          agents: ["main"],
          queryMode: "recent",
          promptStyle: "balanced",
          timeoutMs: 15000,
          maxSummaryChars: 220,
          logging: true,
        },
      },
    },
  },
}
Ayarlama sırasında canlı davranışı incelemek istiyorsanız, ayrı bir active-memory hata ayıklama komutu aramak yerine oturumda /verbose on kullanın. Ardından şunlara geçin:
  • daha düşük gecikme istiyorsanız message
  • ek bağlamın daha yavaş engelleyici bellek alt aracısına değdiğine karar verirseniz full

Hata ayıklama

Etkin bellek beklediğiniz yerde görünmüyorsa:
  1. Eklentinin plugins.entries.active-memory.enabled altında etkin olduğunu doğrulayın.
  2. Geçerli aracı kimliğinin config.agents içinde listelendiğini doğrulayın.
  3. Etkileşimli kalıcı bir sohbet oturumu üzerinden test yaptığınızı doğrulayın.
  4. config.logging: true özelliğini açın ve ağ geçidi günlüklerini izleyin.
  5. Bellek aramasının kendisinin openclaw memory status --deep ile çalıştığını doğrulayın.
Bellek eşleşmeleri gürültülüyse, şunu sıkılaştırın:
  • maxSummaryChars
Etkin bellek çok yavaşsa:
  • queryMode değerini düşürün
  • timeoutMs değerini düşürün
  • son tur sayılarını azaltın
  • tur başına karakter sınırlarını azaltın

İlgili sayfalar