Runtime Eksekusi OpenClaw: Worker, Webhook & Sandboxing
Mengamankan Eksekusi Aksi Dunia Nyata dengan Batasan Izin, Timeout & Audit Log
01. Target Pembelajar & Prasyarat
Backend engineer dan otomator sistem.
02. Kompetensi Konseptual (Level 1ā2)
- āMemahami konsep sandboxing dan isolasi wewenang eksekusi worker agen.
03. Kompetensi Praktis & Artefak Nyata (Level 3ā4)
- āMembangun dispatcher tugas yang mengeksekusi aksi dengan timeout terukur.
04. Aplikasi Nyata & Verifikasi
Penerapan Industri: Infrastruktur runtime backend Z-Automation untuk memproses webhook WhatsApp dan database.
Metode Verifikasi: Menguji eksekusi tugas normal dan memverifikasi pembatalan otomatis saat batas timeout terlampaui.
Mengapa Subjek Ini Krusial dalam Rekayasa Nyata?
Pelajari arsitektur worker OpenClaw untuk mengeksekusi HTTP requests, pemanggilan API, dan manipulasi data secara terisolasi dan aman.
Dalam lingkungan produksi, kegagalan memahami batas-batas arsitektur sistem sering kali menyebabkan bug yang sulit dilacak, pemborosan biaya komputasi, atau antarmuka yang lambat bagi pengguna.
Bagaimana Sistem Sebenarnya Bekerja di Tingkat Protokol
Anatomi Eksekutor OpenClaw
Jika Hermes adalah sang arsitek yang merencanakan tindakan, OpenClaw adalah sang pekerja lapangan yang mengeksekusinya. Worker bertugas menerima nama tugas, memvalidasi kredensial, menjalankan proses dengan batas waktu (timeout), dan mencatat hasil audit log secara terstruktur.
Alur Arsitektur Sistem Otonom & Runtime
Pesan bahasa alami diterima melalui antarmuka web atau webhook chat.
{
"input": "Berapa estimasi biaya pembuatan landing page bisnis?"
}Koreksi Asumsi Umum vs Realitas Rekayasa
āWorker agen boleh memiliki akses root tanpa batasan.ā
Worker harus dibatasi dengan prinsip least privilege (hak akses seminimal mungkin).
Implementasi Langkah-demi-Langkah
Hasil akhir yang diharapkan: Dispatcher worker yang menjalankan tugas aman dan membatalkan tugas lambat via AbortController.
lab-a2-m2/ āāā openclaw-worker.mjs
1Implementasi Sandboxed Worker dengan Timeout
Menjalankan tugas asinkron dengan pengaman AbortSignal.
| 1 | // openclaw-worker.mjs |
| 2 | async function eksekusiDenganTimeout(tugasFn, timeoutMs = 2000) { |
| 3 | const controller = new AbortController(); |
| 4 | const timer = setTimeout(() => controller.abort(), timeoutMs); |
| 5 | |
| 6 | try { |
| 7 | const hasil = await tugasFn(controller.signal); |
| 8 | clearTimeout(timer); |
| 9 | return { sukses: true, data: hasil }; |
| 10 | } catch (err) { |
| 11 | clearTimeout(timer); |
| 12 | return { sukses: false, error: err.name === 'AbortError' ? 'Task Timeout Exceeded' : err.message }; |
| 13 | } |
| 14 | } |
| 15 | |
| 16 | // Simulasi tugas cepat |
| 17 | const tugas1 = async () => 'Data berhasil disimpan ke CRM.'; |
| 18 | // Simulasi tugas macet |
| 19 | const tugasMacet = async (signal) => new Promise((resolve, reject) => { |
| 20 | signal.addEventListener('abort', () => reject(new Error('AbortError'))); |
| 21 | }); |
| 22 | |
| 23 | console.log('Tugas 1:', await eksekusiDenganTimeout(tugas1, 1000)); |
| 24 | console.log('Tugas Macet:', await eksekusiDenganTimeout(tugasMacet, 500)); |
Tugas 1: { sukses: true, ... }
Tugas Macet: { sukses: false, error: 'Task Timeout Exceeded' }Mengantisipasi Masalah Umum & Tantangan Ekstensi
Tambahkan pencatatan audit log berisi timestamp dan durasi eksekusi ke file JSON lokal.
Uji Kompetensi Mandiri & Verifikasi Hasil
Standar kelulusan Z-Automation mewajibkan skor minimum 80 / 100 Poin dengan komponen Implementasi Praktis minimal 21 / 35 Poin (60%). Jawab soal diagnostik dan centang hasil pengujian praktis Anda.
BAGIAN A // PERTANYAAN DIAGNOSTIK KONSEPTUAL & TEKNIS (40 POIN)
01.Mengapa setiap eksekusi fungsi eksternal agen wajib memiliki batas waktu (timeout)?
BAGIAN B // DAFTAR PERIKSA HASIL IMPLEMENTASI PRAKTIS (35 POIN ā MIN. 21 POIN)
Centang item di bawah ini hanya jika Anda telah menjalankan kode di komputer Anda dan mengamati output yang benar: