Hook
Hook menyediakan sistem berbasis kejadian (event-driven) yang dapat diperluas untuk mengotomatiskan tindakan sebagai respons terhadap perintah dan kejadian agen. Hook ditemukan secara otomatis dari direktori dan dapat dikelola melalui perintah CLI, mirip dengan cara kerja skill di OpenClaw.Mengenal Hook
Hook adalah skrip kecil yang berjalan saat sesuatu terjadi. Ada dua jenis:- Hook (halaman ini): berjalan di dalam Gateway saat kejadian agen dipicu, seperti
/new,/reset,/stop, atau kejadian siklus hidup (lifecycle events). - Webhooks: webhook HTTP eksternal yang memungkinkan sistem lain memicu pekerjaan di OpenClaw. Lihat Webhook Hooks.
Kegunaan Umum:
- Menyimpan snapshot memori saat Anda mereset sesi.
- Mencatat jejak audit perintah untuk pemecahan masalah.
- Memicu otomatisasi lanjutan saat sesi dimulai atau berakhir.
- Menulis file ke dalam ruang kerja agen atau memanggil API eksternal.
Memulai
Hook Bawaan (Bundled Hooks)
OpenClaw menyertakan empat hook bawaan yang otomatis ditemukan:- 💾 session-memory: Menyimpan konteks sesi ke ruang kerja agen Anda (default
~/.openclaw/workspace/memory/) saat Anda menjalankan/new. - 📎 bootstrap-extra-files: Menyuntikkan file bootstrap ruang kerja tambahan selama
agent:bootstrap. - 📝 command-logger: Mencatat semua kejadian perintah ke
~/.openclaw/logs/commands.log. - 🚀 boot-md: Menjalankan
BOOT.mdsaat gateway dimulai.
Penemuan Hook (Hook Discovery)
Hook ditemukan secara otomatis dari tiga direktori (berdasarkan urutan prioritas):- Workspace hooks:
<workspace>/hooks/(per-agen, prioritas tertinggi). - Managed hooks:
~/.openclaw/hooks/(terinstal oleh pengguna, dibagikan antar ruang kerja). - Bundled hooks:
<openclaw>/dist/hooks/bundled/(bawaan OpenClaw).
Jenis Kejadian (Event Types)
Kejadian Perintah (Command Events)
Dipicu saat perintah agen dijalankan:command:new: Saat perintah/newdijalankan.command:reset: Saat perintah/resetdijalankan.command:stop: Saat perintah/stopdijalankan.
Kejadian Pesan (Message Events)
Dipicu saat pesan diterima atau dikirim:message:received: Saat pesan masuk diterima dari saluran mana pun.message:sent: Saat pesan keluar berhasil dikirim.
Membuat Hook Kustom
- Pilih Lokasi: Buat folder di
~/.openclaw/hooks/my-hook. - Buat HOOK.md: Isi dengan metadata nama, deskripsi, dan kejadian yang dipantau.
- Buat handler.ts: Tulis fungsi TypeScript untuk menangani kejadian tersebut.
- Aktifkan: Jalankan
openclaw hooks enable my-hook.
Praktik Terbaik
- Jaga agar Handler Cepat: Hook berjalan selama pemrosesan perintah. Pastikan kodenya ringan dan gunakan operasi asinkron jika melakukan tugas berat.
- Tangani Kesalahan dengan Anggun: Selalu gunakan
try/catchagar kesalahan pada satu hook tidak menghentikan jalannya sistem atau hook lainnya. - Filter Kejadian Sejak Awal: Segera kembali (return) jika kejadian yang diterima tidak relevan dengan hook Anda.