Mesin Konteks
Mesin konteks mengontrol bagaimana OpenClaw membangun konteks model untuk setiap proses. Mesin ini menentukan pesan mana yang disertakan, bagaimana merangkum riwayat lama, dan bagaimana mengelola konteks melintasi batas subagen. OpenClaw dilengkapi dengan mesinlegacy bawaan. Plugin dapat mendaftarkan
mesin alternatif yang menggantikan siklus hidup context-engine aktif.
Mulai cepat
Periksa mesin mana yang aktif:Menginstal plugin mesin konteks
Plugin mesin konteks diinstal seperti plugin OpenClaw lainnya. Instal terlebih dahulu, lalu pilih mesin di slot:contextEngine ke "legacy" (atau
hapus kuncinya sepenuhnya — "legacy" adalah nilai default).
Cara kerjanya
Setiap kali OpenClaw menjalankan prompt model, mesin konteks berpartisipasi pada empat titik siklus hidup:- Ingest — dipanggil ketika pesan baru ditambahkan ke sesi. Mesin dapat menyimpan atau mengindeks pesan dalam penyimpanan datanya sendiri.
- Assemble — dipanggil sebelum setiap proses model. Mesin mengembalikan
sekumpulan pesan terurut (dan
systemPromptAdditionopsional) yang muat dalam anggaran token. - Compact — dipanggil saat jendela konteks penuh, atau ketika pengguna menjalankan
/compact. Mesin merangkum riwayat lama untuk membebaskan ruang. - After turn — dipanggil setelah sebuah proses selesai. Mesin dapat mempertahankan status, memicu pemadatan latar belakang, atau memperbarui indeks.
Siklus hidup subagen (opsional)
OpenClaw saat ini memanggil satu hook siklus hidup subagen:- onSubagentEnded — bersihkan saat sesi subagen selesai atau disapu.
prepareSubagentSpawn adalah bagian dari antarmuka untuk penggunaan mendatang, tetapi
runtime belum memanggilnya.
Penambahan prompt sistem
Metodeassemble dapat mengembalikan string systemPromptAddition. OpenClaw
menambahkan ini ke awal prompt sistem untuk proses tersebut. Ini memungkinkan mesin menyisipkan
panduan pemanggilan dinamis, instruksi pengambilan, atau petunjuk yang sadar konteks
tanpa memerlukan file workspace statis.
Mesin legacy
Mesinlegacy bawaan mempertahankan perilaku asli OpenClaw:
- Ingest: no-op (manajer sesi menangani persistensi pesan secara langsung).
- Assemble: pass-through (pipeline sanitize → validate → limit yang sudah ada di runtime menangani perakitan konteks).
- Compact: mendelegasikan ke pemadatan peringkasan bawaan, yang membuat satu ringkasan pesan lama dan menjaga pesan terbaru tetap utuh.
- After turn: no-op.
systemPromptAddition.
Saat tidak ada plugins.slots.contextEngine yang disetel (atau disetel ke "legacy"), mesin ini
digunakan secara otomatis.
Mesin plugin
Plugin dapat mendaftarkan mesin konteks menggunakan API plugin:Antarmuka ContextEngine
Anggota yang wajib:| Member | Kind | Purpose |
|---|---|---|
info | Property | ID, nama, versi mesin, dan apakah mesin memiliki pemadatan |
ingest(params) | Method | Menyimpan satu pesan |
assemble(params) | Method | Membangun konteks untuk proses model (mengembalikan AssembleResult) |
compact(params) | Method | Merangkum/mengurangi konteks |
assemble mengembalikan AssembleResult dengan:
messages— pesan terurut yang akan dikirim ke model.estimatedTokens(wajib,number) — perkiraan mesin untuk total token dalam konteks yang dirakit. OpenClaw menggunakan ini untuk ambang pemadatan dan pelaporan diagnostik.systemPromptAddition(opsional,string) — ditambahkan ke awal prompt sistem.
| Member | Kind | Purpose |
|---|---|---|
bootstrap(params) | Method | Menginisialisasi status mesin untuk sebuah sesi. Dipanggil sekali saat mesin pertama kali melihat sebuah sesi (misalnya, mengimpor riwayat). |
ingestBatch(params) | Method | Mengingest satu giliran yang selesai sebagai batch. Dipanggil setelah sebuah proses selesai, dengan semua pesan dari giliran itu sekaligus. |
afterTurn(params) | Method | Pekerjaan siklus hidup setelah proses (mempertahankan status, memicu pemadatan latar belakang). |
prepareSubagentSpawn(params) | Method | Menyiapkan status bersama untuk sesi anak. |
onSubagentEnded(params) | Method | Membersihkan setelah subagen berakhir. |
dispose() | Method | Melepaskan sumber daya. Dipanggil selama shutdown gateway atau pemuatan ulang plugin — bukan per sesi. |
ownsCompaction
ownsCompaction mengontrol apakah auto-compaction bawaan Pi di dalam percobaan tetap
diaktifkan untuk proses tersebut:
true— mesin memiliki perilaku pemadatan. OpenClaw menonaktifkan auto-compaction bawaan Pi untuk proses itu, dan implementasicompact()milik mesin bertanggung jawab atas/compact, pemadatan pemulihan luapan, dan pemadatan proaktif apa pun yang ingin dilakukannya diafterTurn().falseatau tidak disetel — auto-compaction bawaan Pi masih dapat berjalan selama eksekusi prompt, tetapi metodecompact()milik mesin aktif tetap dipanggil untuk/compactdan pemulihan luapan.
ownsCompaction: false tidak berarti OpenClaw secara otomatis kembali ke
jalur pemadatan mesin legacy.
Artinya ada dua pola plugin yang valid:
- Mode owning — implementasikan algoritma pemadatan Anda sendiri dan setel
ownsCompaction: true. - Mode delegating — setel
ownsCompaction: falsedan buatcompact()memanggildelegateCompactionToRuntime(...)dariopenclaw/plugin-sdk/coreuntuk menggunakan perilaku pemadatan bawaan OpenClaw.
compact() no-op tidak aman untuk mesin aktif non-owning karena hal itu
menonaktifkan jalur normal /compact dan pemadatan pemulihan luapan untuk
slot mesin tersebut.
Referensi konfigurasi
kind: "context-engine" tetap dapat dimuat dan menjalankan kode
pendaftarannya; plugins.slots.contextEngine hanya memilih ID mesin terdaftar mana yang
diresolusikan OpenClaw saat membutuhkan mesin konteks.
Hubungan dengan pemadatan dan memori
- Pemadatan adalah salah satu tanggung jawab mesin konteks. Mesin legacy mendelegasikan ke peringkasan bawaan OpenClaw. Mesin plugin dapat mengimplementasikan strategi pemadatan apa pun (ringkasan DAG, pengambilan vektor, dll.).
- Plugin memori (
plugins.slots.memory) terpisah dari mesin konteks. Plugin memori menyediakan pencarian/pengambilan; mesin konteks mengontrol apa yang dilihat model. Keduanya dapat bekerja bersama — mesin konteks mungkin menggunakan data plugin memori selama perakitan. Mesin plugin yang menginginkan jalur prompt memori aktif sebaiknya menggunakanbuildMemorySystemPromptAddition(...)dariopenclaw/plugin-sdk/core, yang mengubah bagian prompt memori aktif menjadisystemPromptAdditionyang siap ditambahkan di awal. Jika sebuah mesin memerlukan kontrol tingkat lebih rendah, mesin itu tetap dapat mengambil baris mentah dariopenclaw/plugin-sdk/memory-host-coremelaluibuildActiveMemoryPromptSection(...). - Pemangkasan sesi (memotong hasil alat lama di memori) tetap berjalan terlepas dari mesin konteks mana yang aktif.
Tips
- Gunakan
openclaw doctoruntuk memverifikasi bahwa mesin Anda dimuat dengan benar. - Jika beralih mesin, sesi yang ada akan tetap menggunakan riwayatnya saat ini. Mesin baru akan mengambil alih untuk proses-proses berikutnya.
- Kesalahan mesin dicatat dalam log dan ditampilkan dalam diagnostik. Jika mesin plugin
gagal didaftarkan atau ID mesin yang dipilih tidak dapat diresolusikan, OpenClaw
tidak secara otomatis melakukan fallback; proses akan gagal sampai Anda memperbaiki plugin atau
mengubah
plugins.slots.contextEnginekembali ke"legacy". - Untuk pengembangan, gunakan
openclaw plugins install -l ./my-engineuntuk menautkan direktori plugin lokal tanpa menyalin.
Terkait
- Konteks — bagaimana konteks dibangun untuk giliran agen
- Arsitektur Plugin — mendaftarkan plugin mesin konteks
- Pemadatan — merangkum percakapan yang panjang