Exec latar belakang OpenClaw dan alat process
Bagaimana perintah berpindah ke latar belakang setelah jeda yield, registri sesi dengan batas output dan masa hidupnya, lingkungan worker yang bertahan melewati satu giliran, dan sembilan aksi process dari poll hingga paste
Pekerjaan yang berjalan lama adalah titik di mana alat shell menjadi berguna atau justru menjadi beban. Jawaban OpenClaw adalah memindahkan perintah ke latar belakang, mengembalikan ID sesi, dan memberi agen alat terpisah untuk melakukan polling, memberi input, dan menghentikannya. Detail yang perlu diketahui adalah yang menentukan apakah output bertahan, apakah prosesnya bertahan, dan apa yang sebaiknya dilakukan agen alih-alih menunggu dengan sleep.
Latar belakang dan retensi
- Eksekusi di latar depan langsung mengembalikan output yang disimpan dan memberi tahu jika output sebelumnya melampaui batas agregat; saat perintah dipindahkan ke latar belakang, secara eksplisit atau karena melewati jeda yield, alat mengembalikan status running, ID sesi, dan potongan akhir yang singkat, dan eksekusi latar belakang tetap mewarisi timeout exec yang dikonfigurasi kecuali pemanggilan memberikan timeout-nya sendiri.
- Mengembalikan ID sesi tidak menghentikan timeout proses: untuk layanan persisten di gateway atau di dalam sandbox, jalankan perintah di latar belakang dengan timeout dinonaktifkan dan hentikan nanti dengan aksi kill, sementara batas siklus hidup host dan worker tetap berlaku.
- Output tetap di memori hingga batas agregat per sesi sampai sesi di-poll atau dibersihkan; sesi yang selesai kedaluwarsa berdasarkan masa hidup yang dihitung sejak selesai, dengan setiap exec merekam pengaturan retensi agennya saat diterima, dan registri menyimpan paling banyak 50 sesi selesai dan dua juta karakter, mengeluarkan yang tertua terlebih dahulu sementara sesi selesai yang terbaru tetap mempertahankan agregatnya yang sudah dibatasi.
- Pengaturannya tersedia sebagai kunci konfigurasi, bukan variabel lingkungan: jeda latar belakang default-nya sepuluh detik, timeout per pemanggilan 1800 detik, masa hidup pembersihan 30 menit, notifikasi saat proses keluar aktif secara default dan memasukkan event sistem ke antrean ditambah permintaan heartbeat, dan pengaturan tambahan juga dapat memberi notifikasi untuk eksekusi berhasil yang tidak menghasilkan output.
Polling untuk status sesuai permintaan, bukan untuk menjadwalkan loop tunggu. Jika pekerjaan harus dilakukan nanti, gunakan cron.
Worker, pembersihan, dan alat process
Pada node yang disandingkan atau worker cloud berbasis node, proses latar belakang menjadi milik lingkungan sesi: menyelesaikan atau membatalkan giliran membiarkan perintah yang sudah di latar belakang tetap berjalan, giliran berikutnya di lingkungan yang sama dapat melakukan polling, memberi input, atau menghentikannya, dan perintah latar depan tetap berhenti saat gilirannya dibatalkan. Worker yang dipertahankan menempati satu slot worker node, menggunakannya kembali tidak memerlukan slot tambahan, dan begitu giliran selesai tanpa perintah latar belakang yang masih hidup, worker akan keluar. Memindahkan atau mempensiunkan lingkungan, mengganti kepemilikannya, atau menghentikan node juga menghentikan prosesnya, dan handle tidak bertahan setelah worker atau node dimulai ulang. Pembersihan juga sengaja dibuat konservatif di bagian lain: untuk grup proses yang dimiliki, OpenClaw menunggu sistem operasi mengonfirmasi bahwa grup tersebut sudah hilang, perintah yang selesai atau pipa output yang tertutup saja tidak membuktikan bahwa proses turunannya sudah berhenti, dan penghentian paksa tanpa pembersihan yang terkonfirmasi tetap dianggap tidak pasti alih-alih dilaporkan sebagai shutdown yang bersih.
Sembilan aksi
- Aksi list menampilkan sesi yang sedang berjalan dan yang sudah selesai dengan nama turunan, poll menguras output baru dan melaporkan status keluar, log membaca output agregat dengan paging berbasis baris dan petunjuk pemulihan input, dan ketiganya menandai sesi sebagai menunggu input hanya jika stdin masih dapat ditulis dan sesi sudah menganggur melewati ambang batas.
- Aksi write mengirim stdin dengan penanda akhir opsional, send-keys mengirim token tombol atau byte eksplisit ke sesi berbasis terminal, submit mengirim carriage return, dan paste mengirim teks literal yang secara default dibungkus bracketed paste; kill menghentikan sesi yang sedang berjalan, clear menghapus sesi yang sudah selesai, dan remove melakukan mana pun yang berlaku.
- Hanya sesi latar belakang yang dicantumkan dan disimpan, di memori dan tidak pernah di disk, sehingga sesi itu hilang saat restart; alat ini dibatasi per agen dan hanya melihat sesi agen tersebut, sesi latar belakang yang masih hidup memblokir suspensi kooperatif dan restart gateway yang aman sampai proses keluarnya terkonfirmasi, dan timeout poll di atas 30 detik akan dipangkas menjadi 30 detik.
Alat exec OpenClaw adalah alat yang memulai sesi-sesi ini, dan tugas latar belakang OpenClaw adalah catatan yang menampilkannya selama berjalan.
Yang sebaiknya dilakukan alih-alih sleep
Dokumentasinya terus terang soal anti-pola ini: jangan meniru pengingat atau tindak lanjut tertunda dengan loop sleep atau polling berulang. Untuk pekerjaan yang dimulai sekarang, jalankan sekali dan andalkan fitur bangun otomatis saat selesai, jika fitur itu diaktifkan dan perintah menghasilkan output atau gagal, lalu gunakan alat process untuk log, status, input, atau intervensi. Untuk pekerjaan yang harus dilakukan nanti atau sesuai jadwal, penjadwal adalah tempat yang tepat. Membaca log sebelum memulihkan perintah interaktif adalah kebiasaan lain yang patut dipertahankan, karena transkrip, status stdin, dan petunjuk menunggu input hanya terlihat bersamaan di sana. Otomatisasi OpenClaw membahas penjadwal, dan penjelasan sandboxing OpenClaw membahas tempat perintah-perintah ini benar-benar berjalan.
Di Diali
Di Diali, asisten berjalan di lingkungan runtime-nya sendiri dengan status yang disimpan di volume persisten, sehingga perintah latar belakang hanya menjadi milik runtime pelanggan tersebut; snapshot harian dan pemulihan sekali klik tersedia melalui add-on Cadangan (sudah termasuk di Max). OpenClaw yang di-hosting di Diali menjelaskan asisten yang di-hosting, dan halaman keamanan Diali menjelaskan batas atas apa yang boleh dijalankannya.
- Setelah jeda yield, perintah mengembalikan ID sesi, bukan tumpukan output.
- Hanya di memori: sesi hilang saat restart, dibatasi, dan kedaluwarsa.
- Bangun otomatis saat selesai lebih baik daripada polling; penjadwal lebih baik daripada sleep.
Berhenti membaca, buat agen Anda sendiri
Siapkan agen, pilih saluran, dan biarkan ia bekerja di dalam aplikasi yang sudah selalu Anda buka.
