Background Exec + Tool Process
OpenClaw menjalankan perintah shell melalui toolexec dan menyimpan tugas yang berjalan lama di memori. Tool process mengelola sesi latar belakang tersebut.
Tool exec
Parameter utama:command(wajib)yieldMs(default 10000): otomatis ke latar belakang setelah penundaan inibackground(bool): langsung jalankan di latar belakangtimeout(detik, default 1800): hentikan proses setelah batas waktu inielevated(bool): jalankan di luar sandbox jika mode elevated diaktifkan/diizinkan (gatewaysecara default, ataunodesaat target exec adalahnode)- Butuh TTY nyata? Setel
pty: true. workdir,env
- Eksekusi foreground mengembalikan output secara langsung.
- Saat dijalankan di latar belakang (eksplisit atau karena batas waktu), tool mengembalikan
status: "running"+sessionIddan tail singkat. - Output disimpan di memori sampai sesi dipoll atau dibersihkan.
- Jika tool
processtidak diizinkan,execberjalan sinkron dan mengabaikanyieldMs/background. - Perintah exec yang di-spawn menerima
OPENCLAW_SHELL=execuntuk aturan shell/profile yang sadar konteks. - Untuk pekerjaan berjalan lama yang dimulai sekarang, mulai sekali dan andalkan wake penyelesaian otomatis saat fitur itu diaktifkan dan perintah menghasilkan output atau gagal.
- Jika wake penyelesaian otomatis tidak tersedia, atau Anda memerlukan konfirmasi sukses-senyap untuk perintah yang selesai bersih tanpa output, gunakan
processuntuk mengonfirmasi penyelesaian. - Jangan meniru pengingat atau tindak lanjut tertunda dengan loop
sleepatau polling berulang; gunakan cron untuk pekerjaan di masa mendatang.
Bridging child process
Saat men-spawn child process yang berjalan lama di luar tool exec/process (misalnya respawn CLI atau helper gateway), lampirkan helper bridge child-process agar sinyal penghentian diteruskan dan listener dilepas saat exit/error. Ini menghindari proses yatim di systemd dan menjaga perilaku shutdown tetap konsisten lintas platform. Override environment:PI_BASH_YIELD_MS: yield default (md)PI_BASH_MAX_OUTPUT_CHARS: batas output di memori (karakter)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: batas stdout/stderr tertunda per stream (karakter)PI_BASH_JOB_TTL_MS: TTL untuk sesi selesai (md, dibatasi ke 1m–3j)
tools.exec.backgroundMs(default 10000)tools.exec.timeoutSec(default 1800)tools.exec.cleanupMs(default 1800000)tools.exec.notifyOnExit(default true): antrekan event sistem + minta heartbeat saat exec latar belakang keluar.tools.exec.notifyOnExitEmptySuccess(default false): saat true, juga antrekan event penyelesaian untuk eksekusi latar belakang yang berhasil tanpa menghasilkan output.
Tool process
Aksi:list: sesi yang berjalan + selesaipoll: kuras output baru untuk sebuah sesi (juga melaporkan status keluar)log: baca output teragregasi (mendukungoffset+limit)write: kirim stdin (data, opsionaleof)send-keys: kirim token tombol eksplisit atau byte ke sesi berbasis PTYsubmit: kirim Enter / carriage return ke sesi berbasis PTYpaste: kirim teks literal, opsional dibungkus dalam bracketed paste modekill: hentikan sesi latar belakangclear: hapus sesi selesai dari memoriremove: hentikan jika masih berjalan, jika tidak bersihkan jika sudah selesai
- Hanya sesi yang dijalankan di latar belakang yang dicantumkan/disimpan di memori.
- Sesi hilang saat proses dimulai ulang (tanpa persistensi ke disk).
- Log sesi hanya disimpan ke riwayat chat jika Anda menjalankan
process poll/logdan hasil tool direkam. processdicakup per agen; tool ini hanya melihat sesi yang dimulai oleh agen tersebut.- Gunakan
poll/loguntuk status, log, konfirmasi sukses-senyap, atau konfirmasi penyelesaian saat wake penyelesaian otomatis tidak tersedia. - Gunakan
write/send-keys/submit/paste/killsaat Anda membutuhkan input atau intervensi. process listmenyertakannameturunan (kata kerja perintah + target) untuk pemindaian cepat.process logmenggunakanoffset/limitberbasis baris.- Saat
offsetdanlimitkeduanya dihilangkan, tool mengembalikan 200 baris terakhir dan menyertakan petunjuk paging. - Saat
offsetdiberikan danlimitdihilangkan, tool mengembalikan darioffsetsampai akhir (tidak dibatasi ke 200). - Polling adalah untuk status sesuai permintaan, bukan penjadwalan wait-loop. Jika pekerjaan seharusnya terjadi nanti, gunakan cron.