exec dan menyimpan tugas berjalan lama di memori. Alat process mengelola sesi latar belakang tersebut.
alat exec
Parameter utama:command(wajib)yieldMs(default 10000): otomatis berjalan di latar belakang setelah penundaan inibackground(bool): langsung berjalan di latar belakangtimeout(detik, defaulttools.exec.timeoutSec): hentikan proses setelah batas waktu ini; aturtimeout: 0hanya untuk menonaktifkan batas waktu proses exec untuk panggilan tersebutelevated(bool): jalankan di luar sandbox jika mode elevated diaktifkan/diizinkan (gatewaysecara default, ataunodeketika target exec adalahnode)- Perlu TTY sungguhan? Atur
pty: true. workdir,env
- Proses foreground mengembalikan output secara langsung.
- Saat dijalankan di latar belakang (eksplisit atau karena batas waktu), alat mengembalikan
status: "running"+sessionIddan tail singkat. - Proses latar belakang dan proses
yieldMsmewarisitools.exec.timeoutSeckecuali panggilan menyediakantimeouteksplisit. - Output disimpan di memori sampai sesi di-poll atau dibersihkan.
- Jika alat
processtidak diizinkan,execberjalan sinkron dan mengabaikanyieldMs/background. - Perintah exec yang dibuat menerima
OPENCLAW_SHELL=execuntuk aturan shell/profil yang sadar konteks. - Untuk pekerjaan berjalan lama yang dimulai sekarang, mulai sekali dan andalkan pemicu bangun penyelesaian otomatis saat diaktifkan dan perintah mengeluarkan output atau gagal.
- Jika pemicu bangun penyelesaian otomatis tidak tersedia, atau Anda memerlukan
konfirmasi keberhasilan 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 mendatang.
Penjembatanan proses anak
Saat membuat proses anak berjalan lama di luar alat exec/process (misalnya, respawn CLI atau helper gateway), pasang helper jembatan proses anak agar sinyal terminasi diteruskan dan listener dilepas saat keluar/error. Ini menghindari proses yatim pada systemd dan menjaga perilaku shutdown tetap konsisten lintas platform. Override lingkungan:OPENCLAW_BASH_YIELD_MS: yield default (md)OPENCLAW_BASH_MAX_OUTPUT_CHARS: batas output dalam memori (karakter)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: batas stdout/stderr tertunda per stream (karakter)OPENCLAW_BASH_JOB_TTL_MS: TTL untuk sesi yang selesai (md, dibatasi 1m–3j)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: ambang output idle sebelum sesi latar belakang yang dapat ditulis ditandai kemungkinan menunggu input (default 15000 md)
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): ketika true, juga antrekan event penyelesaian untuk proses latar belakang yang berhasil tetapi tidak menghasilkan output.
alat process
Tindakan:list: sesi berjalan + selesaipoll: kuras output baru untuk sebuah sesi (juga melaporkan status keluar)log: baca output agregat dan tampilkan petunjuk pemulihan input (mendukungoffset+limit)write: kirim stdin (data,eofopsional)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 mode paste bertanda kurungkill: hentikan sesi latar belakangclear: hapus sesi selesai dari memoriremove: hentikan jika sedang berjalan, jika tidak bersihkan jika selesai
- Hanya sesi latar belakang yang dicantumkan/disimpan di memori.
- Sesi hilang saat proses dimulai ulang (tidak ada persistensi disk).
- Log sesi hanya disimpan ke riwayat chat jika Anda menjalankan
process poll/logdan hasil alat direkam. processtercakup per agent; alat ini hanya melihat sesi yang dimulai oleh agent tersebut.- Gunakan
poll/loguntuk status, log, konfirmasi keberhasilan senyap, atau konfirmasi penyelesaian saat pemicu bangun penyelesaian otomatis tidak tersedia. - Gunakan
logsebelum memulihkan CLI interaktif agar transkrip saat ini, status stdin, dan petunjuk tunggu-input terlihat bersama. - Gunakan
write/send-keys/submit/paste/killsaat Anda memerlukan input atau intervensi. process listmenyertakannameturunan (kata kerja perintah + target) untuk pemindaian cepat.process list,poll, danlogmelaporkanwaitingForInputhanya saat sesi masih memiliki stdin yang dapat ditulis dan telah idle lebih lama dari ambang tunggu-input.process logmenggunakanoffset/limitberbasis baris.- Ketika
offsetdanlimitsama-sama dihilangkan, alat mengembalikan 200 baris terakhir dan menyertakan petunjuk paging. - Ketika
offsetdiberikan danlimitdihilangkan, alat mengembalikan darioffsethingga akhir (tidak dibatasi 200). - Polling digunakan untuk status sesuai permintaan, bukan penjadwalan loop tunggu. Jika pekerjaan harus terjadi nanti, gunakan cron sebagai gantinya.