Memori Aktif
Memori aktif adalah sub-agen memori pemblokir opsional milik plugin yang berjalan sebelum balasan utama untuk sesi percakapan yang memenuhi syarat. Fitur ini ada karena sebagian besar sistem memori mampu tetapi reaktif. Mereka bergantung pada agen utama untuk memutuskan kapan mencari memori, atau pada pengguna untuk mengatakan hal-hal seperti “ingat ini” atau “cari memori.” Pada saat itu, momen ketika memori akan membuat balasan terasa alami sudah terlewat. Memori aktif memberi sistem satu kesempatan terbatas untuk memunculkan memori yang relevan sebelum balasan utama dibuat.Tempelkan Ini Ke Dalam Agen Anda
Tempelkan ini ke dalam agen Anda jika Anda ingin mengaktifkan Memori Aktif dengan pengaturan mandiri dan aman sebagai default:main, membuatnya tetap terbatas pada sesi
bergaya pesan langsung secara default, memungkinkannya mewarisi model sesi saat ini terlebih dahulu, dan
tetap mengizinkan fallback jarak jauh bawaan jika tidak ada model eksplisit atau turunan yang tersedia.
Setelah itu, mulai ulang gateway:
Aktifkan memori aktif
Pengaturan yang paling aman adalah:- aktifkan plugin
- targetkan satu agen percakapan
- biarkan logging tetap aktif hanya saat menyesuaikan
openclaw.json:
plugins.entries.active-memory.enabled: truemengaktifkan pluginconfig.agents: ["main"]hanya mengikutsertakan agenmainke dalam memori aktifconfig.allowedChatTypes: ["direct"]membuat memori aktif tetap aktif hanya untuk sesi bergaya pesan langsung secara default- jika
config.modeltidak disetel, memori aktif mewarisi model sesi saat ini terlebih dahulu config.modelFallbackPolicy: "default-remote"mempertahankan fallback jarak jauh bawaan sebagai default saat tidak ada model eksplisit atau turunan yang tersediaconfig.promptStyle: "balanced"menggunakan gaya prompt default serba guna untuk moderecent- memori aktif tetap hanya berjalan pada sesi chat interaktif persisten yang memenuhi syarat
Cara melihatnya
Memori aktif menyuntikkan konteks sistem tersembunyi untuk model. Fitur ini tidak mengekspos tag mentah<active_memory_plugin>...</active_memory_plugin> kepada klien.
Toggle sesi
Gunakan perintah plugin saat Anda ingin menjeda atau melanjutkan memori aktif untuk sesi chat saat ini tanpa mengedit konfigurasi:plugins.entries.active-memory.enabled, penargetan agen, atau konfigurasi
global lainnya.
Jika Anda ingin perintah tersebut menulis konfigurasi dan menjeda atau melanjutkan memori aktif untuk
semua sesi, gunakan bentuk global eksplisit:
plugins.entries.active-memory.config.enabled. Bentuk ini membiarkan
plugins.entries.active-memory.enabled tetap aktif agar perintah tetap tersedia untuk
mengaktifkan kembali memori aktif nanti.
Jika Anda ingin melihat apa yang dilakukan memori aktif dalam sesi langsung, aktifkan mode verbose
untuk sesi tersebut:
- baris status memori aktif seperti
Active Memory: ok 842ms recent 34 chars - ringkasan debug yang mudah dibaca seperti
Active Memory Debug: Lemon pepper wings with blue cheese.
Kapan fitur ini berjalan
Memori aktif menggunakan dua gerbang:- Opt-in konfigurasi
Plugin harus diaktifkan, dan id agen saat ini harus muncul di
plugins.entries.active-memory.config.agents. - Kelayakan runtime yang ketat Bahkan saat diaktifkan dan ditargetkan, memori aktif hanya berjalan untuk sesi chat interaktif persisten yang memenuhi syarat.
Jenis sesi
config.allowedChatTypes mengontrol jenis percakapan mana yang boleh menjalankan Memori
Aktif sama sekali.
Default-nya adalah:
Di mana fitur ini berjalan
Memori aktif adalah fitur pengayaan percakapan, bukan fitur inferensi di seluruh platform.| Surface | Menjalankan memori aktif? |
|---|---|
| Sesi persisten Control UI / chat web | Ya, jika plugin diaktifkan dan agen ditargetkan |
| Sesi kanal interaktif lain pada jalur chat persisten yang sama | Ya, jika plugin diaktifkan dan agen ditargetkan |
| Proses sekali jalan headless | Tidak |
| Proses heartbeat/latar belakang | Tidak |
Jalur internal agent-command generik | Tidak |
| Eksekusi sub-agen/helper internal | Tidak |
Mengapa menggunakannya
Gunakan memori aktif ketika:- sesi bersifat persisten dan menghadap pengguna
- agen memiliki memori jangka panjang yang bermakna untuk dicari
- kontinuitas dan personalisasi lebih penting daripada determinisme prompt mentah
- preferensi yang stabil
- kebiasaan yang berulang
- konteks pengguna jangka panjang yang seharusnya muncul secara alami
- otomasi
- worker internal
- tugas API sekali jalan
- tempat di mana personalisasi tersembunyi akan terasa mengejutkan
Cara kerjanya
Bentuk runtime-nya adalah: Sub-agen memori pemblokir hanya dapat menggunakan:memory_searchmemory_get
NONE.
Mode kueri
config.queryMode mengontrol seberapa banyak percakapan yang dilihat oleh sub-agen memori pemblokir.
Gaya prompt
config.promptStyle mengontrol seberapa agresif atau ketat sub-agen memori pemblokir
saat memutuskan apakah akan mengembalikan memori.
Gaya yang tersedia:
balanced: default serba guna untuk moderecentstrict: paling tidak agresif; terbaik saat Anda ingin sangat sedikit kebocoran dari konteks di sekitarcontextual: paling ramah kontinuitas; terbaik saat riwayat percakapan harus lebih diperhatikanrecall-heavy: lebih bersedia memunculkan memori pada kecocokan yang lebih lemah tetapi masih masuk akalprecision-heavy: secara agresif lebih memilihNONEkecuali kecocokannya jelaspreference-only: dioptimalkan untuk favorit, kebiasaan, rutinitas, selera, dan fakta pribadi yang berulang
config.promptStyle tidak disetel:
config.promptStyle secara eksplisit, override tersebut yang berlaku.
Contoh:
Kebijakan fallback model
Jikaconfig.model tidak disetel, Memori Aktif mencoba menyelesaikan model dalam urutan ini:
config.modelFallbackPolicy mengontrol langkah terakhir.
Default:
resolved-only jika Anda ingin Memori Aktif melewati recall alih-alih melakukan
fallback ke default jarak jauh bawaan saat tidak ada model eksplisit atau turunan
yang tersedia.
Jalur keluar lanjutan
Opsi-opsi ini sengaja tidak menjadi bagian dari pengaturan yang direkomendasikan.config.thinking dapat menimpa level thinking sub-agen memori pemblokir:
config.promptAppend menambahkan instruksi operator tambahan setelah prompt default Memori
Aktif dan sebelum konteks percakapan:
config.promptOverride menggantikan prompt default Memori Aktif. OpenClaw
tetap menambahkan konteks percakapan setelahnya:
NONE
atau konteks fakta pengguna yang ringkas untuk model utama.
message
Hanya pesan pengguna terbaru yang dikirim.
- Anda menginginkan perilaku tercepat
- Anda menginginkan bias terkuat terhadap recall preferensi yang stabil
- giliran tindak lanjut tidak memerlukan konteks percakapan
- mulai sekitar
3000hingga5000md
recent
Pesan pengguna terbaru plus sedikit ekor percakapan terbaru dikirim.
- Anda menginginkan keseimbangan yang lebih baik antara kecepatan dan landasan percakapan
- pertanyaan tindak lanjut sering bergantung pada beberapa giliran terakhir
- mulai sekitar
15000md
full
Percakapan lengkap dikirim ke sub-agen memori pemblokir.
- kualitas recall terkuat lebih penting daripada latensi
- percakapan berisi penyiapan penting yang jauh di belakang dalam utas
- tingkatkan secara signifikan dibandingkan
messageataurecent - mulai sekitar
15000md atau lebih tinggi tergantung ukuran utas
Persistensi transkrip
Proses sub-agen memori pemblokir Memori Aktif membuat transkripsession.jsonl nyata
selama panggilan sub-agen memori pemblokir.
Secara default, transkrip tersebut bersifat sementara:
- ditulis ke direktori sementara
- hanya digunakan untuk proses sub-agen memori pemblokir
- langsung dihapus setelah proses selesai
config.transcriptDir.
Gunakan ini dengan hati-hati:
- transkrip sub-agen memori pemblokir dapat cepat menumpuk pada sesi yang sibuk
- mode kueri
fulldapat menduplikasi banyak konteks percakapan - transkrip ini berisi konteks prompt tersembunyi dan memori yang dipanggil kembali
Konfigurasi
Semua konfigurasi memori aktif berada di bawah:| Key | Type | Arti |
|---|---|---|
enabled | boolean | Mengaktifkan plugin itu sendiri |
config.agents | string[] | Id agen yang dapat menggunakan memori aktif |
config.model | string | Referensi model sub-agen memori pemblokir opsional; jika tidak disetel, memori aktif menggunakan model sesi saat ini |
config.queryMode | "message" | "recent" | "full" | Mengontrol seberapa banyak percakapan yang dilihat sub-agen memori pemblokir |
config.promptStyle | "balanced" | "strict" | "contextual" | "recall-heavy" | "precision-heavy" | "preference-only" | Mengontrol seberapa agresif atau ketat sub-agen memori pemblokir saat memutuskan apakah akan mengembalikan memori |
config.thinking | "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive" | Override thinking lanjutan untuk sub-agen memori pemblokir; default off untuk kecepatan |
config.promptOverride | string | Penggantian prompt penuh lanjutan; tidak direkomendasikan untuk penggunaan normal |
config.promptAppend | string | Instruksi tambahan lanjutan yang ditambahkan ke prompt default atau prompt yang dioverride |
config.timeoutMs | number | Timeout keras untuk sub-agen memori pemblokir |
config.maxSummaryChars | number | Jumlah total karakter maksimum yang diizinkan dalam ringkasan active-memory |
config.logging | boolean | Mengeluarkan log memori aktif saat penyesuaian |
config.persistTranscripts | boolean | Menyimpan transkrip sub-agen memori pemblokir di disk alih-alih menghapus file sementara |
config.transcriptDir | string | Direktori relatif transkrip sub-agen memori pemblokir di bawah folder sesi agen |
| Key | Type | Arti |
|---|---|---|
config.maxSummaryChars | number | Jumlah total karakter maksimum yang diizinkan dalam ringkasan active-memory |
config.recentUserTurns | number | Giliran pengguna sebelumnya yang disertakan saat queryMode adalah recent |
config.recentAssistantTurns | number | Giliran asisten sebelumnya yang disertakan saat queryMode adalah recent |
config.recentUserChars | number | Karakter maksimum per giliran pengguna terbaru |
config.recentAssistantChars | number | Karakter maksimum per giliran asisten terbaru |
config.cacheTtlMs | number | Penggunaan ulang cache untuk kueri identik yang berulang |
Pengaturan yang direkomendasikan
Mulailah denganrecent.
/verbose on di
sesi tersebut alih-alih mencari perintah debug active-memory terpisah.
Lalu beralih ke:
messagejika Anda menginginkan latensi yang lebih rendahfulljika Anda memutuskan bahwa konteks tambahan sepadan dengan sub-agen memori pemblokir yang lebih lambat
Debugging
Jika memori aktif tidak muncul di tempat yang Anda harapkan:- Pastikan plugin diaktifkan di bawah
plugins.entries.active-memory.enabled. - Pastikan id agen saat ini tercantum dalam
config.agents. - Pastikan Anda menguji melalui sesi chat interaktif persisten.
- Aktifkan
config.logging: truedan pantau log gateway. - Verifikasi bahwa pencarian memori itu sendiri berfungsi dengan
openclaw memory status --deep.
maxSummaryChars
- turunkan
queryMode - turunkan
timeoutMs - kurangi jumlah giliran terbaru
- kurangi batas karakter per giliran