Sessions and memory
Alat sesi
OpenClaw memberi agen alat untuk bekerja lintas sesi, memeriksa status, dan mengorkestrasi sub-agen.
Alat yang tersedia
| Alat | Fungsinya |
|---|---|
sessions_list |
Mencantumkan sesi dengan filter opsional (jenis, label, agen, keterkinian, pratinjau) |
sessions_history |
Membaca transkrip sesi tertentu |
sessions_send |
Mengirim pesan ke sesi lain dan secara opsional menunggu |
sessions_spawn |
Memunculkan sesi sub-agen terisolasi untuk pekerjaan latar belakang |
sessions_yield |
Mengakhiri giliran saat ini dan menunggu hasil sub-agen lanjutan |
subagents |
Mencantumkan, mengarahkan, atau mematikan sub-agen yang dimunculkan untuk sesi ini |
session_status |
Menampilkan kartu bergaya /status dan secara opsional menetapkan override model per sesi |
Alat ini tetap tunduk pada profil alat aktif dan kebijakan izinkan/tolak.
tools.profile: "coding" mencakup set lengkap orkestrasi sesi, termasuk
sessions_spawn, sessions_yield, dan subagents.
tools.profile: "messaging" mencakup alat pesan lintas sesi
(sessions_list, sessions_history, sessions_send, session_status) tetapi
tidak mencakup pemunculan sub-agen. Untuk mempertahankan profil pesan dan tetap
mengizinkan delegasi native, tambahkan:
{
tools: {
profile: "messaging",
alsoAllow: ["sessions_spawn", "sessions_yield", "subagents"],
},
}
Kebijakan grup, penyedia, sandbox, dan per-agen masih dapat menghapus alat
tersebut setelah tahap profil. Gunakan /tools dari sesi yang terdampak untuk
memeriksa daftar alat efektif.
Mencantumkan dan membaca sesi
sessions_list mengembalikan sesi beserta key, agentId, jenis, kanal, model,
jumlah token, dan timestamp-nya. Filter berdasarkan jenis (main, group, cron, hook,
node), label persis, agentId persis, teks pencarian, atau keterkinian
(activeMinutes). Saat Anda membutuhkan triase bergaya kotak masuk, alat ini juga dapat meminta
judul turunan yang dicakup visibilitas, cuplikan pratinjau pesan terakhir, atau
pesan terbaru terbatas pada setiap baris. Judul turunan dan pratinjau hanya dibuat untuk
sesi yang sudah dapat dilihat pemanggil berdasarkan kebijakan visibilitas alat sesi
yang dikonfigurasi, sehingga sesi yang tidak terkait tetap tersembunyi.
sessions_history mengambil transkrip percakapan untuk sesi tertentu.
Secara default, hasil alat dikecualikan -- berikan includeTools: true untuk melihatnya.
Tampilan yang dikembalikan sengaja dibatasi dan difilter untuk keamanan:
- teks asisten dinormalisasi sebelum recall:
- tag thinking dihapus
- blok scaffolding
<relevant-memories>/<relevant_memories>dihapus - blok payload XML pemanggilan alat teks polos seperti
<tool_call>...</tool_call>,<function_call>...</function_call>,<tool_calls>...</tool_calls>, dan<function_calls>...</function_calls>dihapus, termasuk payload terpotong yang tidak pernah ditutup dengan bersih - scaffolding pemanggilan/hasil alat yang diturunkan seperti
[Tool Call: ...],[Tool Result ...], dan[Historical context ...]dihapus - token kontrol model yang bocor seperti
<|assistant|>, token ASCII<|...|>lainnya, dan varian lebar penuh<|...|>dihapus - XML pemanggilan alat MiniMax yang salah bentuk seperti
<invoke ...>/</minimax:tool_call>dihapus
- teks yang menyerupai kredensial/token disensor sebelum dikembalikan
- blok teks panjang dipotong
- riwayat yang sangat besar dapat membuang baris lama atau mengganti baris yang terlalu besar dengan
[sessions_history omitted: message too large] - alat melaporkan flag ringkasan seperti
truncated,droppedMessages,contentTruncated,contentRedacted, danbytes
Kedua alat menerima session key (seperti "main") atau session ID
dari pemanggilan daftar sebelumnya.
Jika Anda membutuhkan transkrip persis byte demi byte, periksa file transkrip di
disk alih-alih memperlakukan sessions_history sebagai dump mentah.
Mengirim pesan lintas sesi
sessions_send mengirimkan pesan ke sesi lain dan secara opsional menunggu
respons:
- Kirim lalu lupakan: tetapkan
timeoutSeconds: 0untuk mengantrekan dan kembali segera. - Tunggu balasan: tetapkan batas waktu dan dapatkan respons secara inline.
Sesi chat yang dicakup thread, seperti key Slack atau Discord yang berakhir dengan
:thread:<id>, bukan target sessions_send yang valid. Gunakan key sesi kanal induk
untuk koordinasi antar-agen agar pesan yang dirutekan alat tidak muncul
di dalam thread aktif yang menghadap manusia.
Pesan dan balasan lanjutan A2A ditandai sebagai data antar-sesi dalam prompt
penerima ([Inter-session message ... isUser=false]) dan dalam provenance
transkrip. Agen penerima harus memperlakukannya sebagai data yang dirutekan alat, bukan sebagai
instruksi langsung yang ditulis pengguna akhir.
Setelah target merespons, OpenClaw dapat menjalankan loop balas-kembali tempat
agen bergantian mengirim pesan (hingga 5 giliran). Agen target dapat membalas
REPLY_SKIP untuk berhenti lebih awal.
Pembantu status dan orkestrasi
session_status adalah alat ringan yang setara dengan /status untuk sesi saat ini
atau sesi lain yang terlihat. Alat ini melaporkan penggunaan, waktu, status model/runtime, dan
konteks tugas latar belakang tertaut jika ada. Seperti /status, alat ini dapat mengisi balik
counter token/cache yang jarang dari entri penggunaan transkrip terbaru, dan
model=default menghapus override per sesi. Gunakan sessionKey="current" untuk
sesi pemanggil saat ini; label klien yang terlihat seperti openclaw-tui bukan
session key.
sessions_yield sengaja mengakhiri giliran saat ini sehingga pesan berikutnya dapat menjadi
event lanjutan yang Anda tunggu. Gunakan setelah memunculkan sub-agen saat
Anda ingin hasil penyelesaian tiba sebagai pesan berikutnya alih-alih membuat
loop polling.
subagents adalah pembantu control-plane untuk sub-agen OpenClaw yang sudah
dimunculkan. Ini mendukung:
action: "list"untuk memeriksa run aktif/terbaruaction: "steer"untuk mengirim panduan lanjutan ke child yang sedang berjalanaction: "kill"untuk menghentikan satu child atauall
Memunculkan sub-agen
sessions_spawn membuat sesi terisolasi untuk tugas latar belakang secara default.
Alat ini selalu non-blocking -- langsung kembali dengan runId dan
childSessionKey.
Opsi utama:
runtime: "subagent"(default) atau"acp"untuk agen harness eksternal.- Override
modeldanthinkinguntuk sesi child. thread: trueuntuk mengikat spawn ke thread chat (Discord, Slack, dll.).sandbox: "require"untuk memberlakukan sandboxing pada child.context: "fork"untuk sub-agen native saat child membutuhkan transkrip requester saat ini; hilangkan atau gunakancontext: "isolated"untuk child yang bersih. Sub-agen native yang terikat thread default kecontext: "fork"kecualithreadBindings.defaultSpawnContextmenentukan lain.
Sub-agen leaf default tidak mendapatkan alat sesi. Saat
maxSpawnDepth >= 2, sub-agen orkestrator depth-1 juga menerima
sessions_spawn, subagents, sessions_list, dan sessions_history sehingga mereka
dapat mengelola child mereka sendiri. Run leaf tetap tidak mendapatkan alat
orkestrasi rekursif.
Setelah selesai, langkah announce memposting hasil ke kanal requester.
Pengiriman penyelesaian mempertahankan perutean thread/topik terikat jika tersedia, dan jika
origin penyelesaian hanya mengidentifikasi kanal, OpenClaw masih dapat menggunakan kembali
rute tersimpan sesi requester (lastChannel / lastTo) untuk pengiriman
langsung.
Untuk perilaku khusus ACP, lihat Agen ACP.
Visibilitas
Alat sesi dicakup untuk membatasi apa yang dapat dilihat agen:
| Level | Cakupan |
|---|---|
self |
Hanya sesi saat ini |
tree |
Sesi saat ini + sub-agen yang dimunculkan |
agent |
Semua sesi untuk agen ini |
all |
Semua sesi (lintas agen jika dikonfigurasi) |
Default-nya adalah tree. Sesi bersandbox dibatasi ke tree terlepas dari
konfigurasi.
Bacaan lebih lanjut
- Manajemen Sesi -- perutean, siklus hidup, pemeliharaan
- Agen ACP -- pemunculan harness eksternal
- Multi-agen -- arsitektur multi-agen
- Konfigurasi Gateway -- kenop konfigurasi alat sesi