Kancalar
Hooks, ajan komutları ve olaylarına yanıt olarak eylemleri otomatikleştirmek için genişletilebilir, olay güdümlü bir sistem sağlar. Hooks dizinlerden otomatik olarak keşfedilir ve Skills’in OpenClaw’da çalışmasına benzer şekilde CLI komutlarıyla yönetilebilir.Yön Bulma
Hooks, bir şey olduğunda çalışan küçük betiklerdir. İki tür vardır:- Hooks (bu sayfa):
/new,/reset,/stopgibi ajan olayları veya yaşam döngüsü olayları tetiklendiğinde Gateway içinde çalışır. - Webhooks: Diğer sistemlerin OpenClaw’da iş tetiklemesine olanak tanıyan harici HTTP webhook’larıdır. Webhook Hooks bölümüne bakın veya Gmail yardımcı komutları için
openclaw webhookskullanın.
- Bir oturumu sıfırladığınızda bellek anlık görüntüsünü kaydetmek
- Sorun giderme veya uyumluluk için komutların denetim kaydını tutmak
- Bir oturum başladığında veya bittiğinde takip otomasyonunu tetikleme
- Olaylar tetiklendiğinde ajan çalışma alanına dosya yazmak veya harici API’leri çağırmak
Genel Bakış
Hooks sistemi şunları yapmanıza olanak tanır:/newverildiğinde oturum bağlamını belleğe kaydetmek- Denetim için tüm komutları kaydetmek
- Ajan yaşam döngüsü olaylarında özel otomasyonları tetikleme
- Çekirdek kodu değiştirmeden OpenClaw davranışını genişletmek
Başlarken
Paketli Hooks
OpenClaw, otomatik olarak keşfedilen dört paketli hook ile gelir:- 💾 session-memory:
/newverdiğinizde, oturum bağlamını ajan çalışma alanınıza (varsayılan~/.openclaw/workspace/memory/) kaydeder - 😈 soul-evil: Bir temizleme penceresinde veya rastgele bir olasılıkla enjekte edilen
SOUL.mdiçeriğiniSOUL_EVIL.mdile değiştirir - 📝 command-logger: Tüm komut olaylarını
~/.openclaw/logs/commands.logdosyasına kaydeder - 🚀 boot-md: Gateway başladığında
BOOT.mdçalıştırır (dahili hooks etkin olmalıdır)
Onboarding
Onboarding sırasında (openclaw onboard), önerilen hook’ları etkinleştirmeniz istenir. Sihirbaz, uygun hook’ları otomatik olarak keşfeder ve seçim için sunar.
Hook Keşfi
Hooks, öncelik sırasına göre üç dizinden otomatik olarak keşfedilir:- Çalışma alanı hook’ları:
<workspace>/hooks/(ajan başına, en yüksek öncelik) - Yönetilen hook’lar:
~/.openclaw/hooks/(kullanıcı tarafından yüklenen, çalışma alanları arasında paylaşılan) - Paketli hook’lar:
<openclaw>/dist/hooks/bundled/(OpenClaw ile birlikte gelir)
Hook Paketleri (npm/arşivler)
Hook paketleri,package.json içindeki
openclaw.hooks aracılığıyla bir veya daha fazla hook dışa aktaran standart npm paketleridir. Şu şekilde yükleyin:
package.json:
HOOK.md ve handler.ts (veya index.ts) içeren bir hook dizinine işaret eder.
Hook paketleri bağımlılıklarıyla birlikte gelebilir; bunlar ~/.openclaw/hooks/<id> altında yüklenecektir.
Güvenlik notu: openclaw hooks install, bağımlılıkları npm install --ignore-scripts ile kurar
(yaşam döngüsü betikleri olmadan). Hook paket bağımlılık ağaçlarını “pure JS/TS” olarak tutun ve postinstall derlemelerine dayanan paketlerden kaçının.
Hook Yapısı
HOOK.md Biçimi
HOOK.md dosyası, YAML frontmatter içindeki meta veriler ile Markdown dokümantasyonu içerir:
Meta Veri Alanları
metadata.openclaw nesnesi şunları destekler:
emoji: CLI için görüntü emojisi (örn."💾")events: Dinlenecek olaylar dizisi (örn.["command:new", "command:reset"])export: Kullanılacak adlandırılmış dışa aktarım (varsayılan"default")homepage: Dokümantasyon URL’sirequires: İsteğe bağlı gereksinimlerbins: PATH üzerinde gerekli ikililer (örn.["git", "node"])anyBins: Bu ikililerden en az biri mevcut olmalıdırenv: Gerekli ortam değişkenlericonfig: Gerekli yapılandırma yolları (örn.["workspace.dir"])os: Gerekli platformlar (örn.["darwin", "linux"])
always: Uygunluk denetimlerini atla (boolean)install: Yükleme yöntemleri (paketli hook’lar için:[{"id":"bundled","kind":"bundled"}])
İşleyici (Handler) Uygulaması
handler.ts dosyası bir HookHandler fonksiyonu dışa aktarır:
Olay Bağlamı
Her olay şunları içerir:Olay Türleri
Komut Olayları
Ajan komutları verildiğinde tetiklenir:command: Tüm komut olayları (genel dinleyici)command:new:/newkomutu verildiğindecommand:reset:/resetkomutu verildiğindecommand:stop:/stopkomutu verildiğinde
Ajan Olayları
agent:bootstrap: Çalışma alanı bootstrap dosyaları enjekte edilmeden önce (hook’larcontext.bootstrapFiles’i değiştirebilir)
Gateway Olayları
Gateway başladığında tetiklenir:gateway:startup: Kanallar başladıktan ve hook’lar yüklendikten sonra
Araç Sonucu Hook’ları (Plugin API)
Bu hook’lar olay akışı dinleyicileri değildir; eklentilerin, OpenClaw bunları kalıcı hale getirmeden önce araç sonuçlarını eşzamanlı olarak ayarlamasına olanak tanır.tool_result_persist: Oturum dökümüne yazılmadan önce araç sonuçlarını dönüştürür. Eşzamanlı olmalıdır; güncellenmiş araç sonucu yükünü döndürün veya olduğu gibi bırakmak içinundefineddöndürün. Agent Loop.
Gelecek Olaylar
Planlanan olay türleri:session:start: Yeni bir oturum başladığındasession:end: Bir oturum sona erdiğindeagent:error: Bir ajan hata ile karşılaştığındamessage:sent: Bir mesaj gönderildiğindemessage:received: Bir mesaj alındığında
Özel Hook’lar Oluşturma
1. Konum Seçin
- Çalışma alanı hook’ları (
<workspace>/hooks/): Ajan başına, en yüksek öncelik - Yönetilen hook’lar (
~/.openclaw/hooks/): Çalışma alanları arasında paylaşılan
2. Dizin Yapısını Oluşturun
3. HOOK.md Oluşturun
4. handler.ts Oluşturun
5. Etkinleştirin ve Test Edin
Yapılandırma
Yeni Yapılandırma Biçimi (Önerilen)
Hook Başına Yapılandırma
Hook’ların özel yapılandırması olabilir:Ek Dizinler
Ek dizinlerden hook yükleyin:Eski Yapılandırma Biçimi (Hâlâ Desteklenir)
Geriye dönük uyumluluk için eski yapılandırma biçimi hâlâ çalışır:module, workspace’e göreli bir yol olmalıdır. Mutlak yollar ve workspace dışına geçişler reddedilir.
Geçiş: Yeni hook’lar için keşfe dayalı yeni sistemi kullanın. Eski işleyiciler, dizin tabanlı hook’lardan sonra yüklenir.
CLI Komutları
Hook’ları Listeleme
Hook Bilgisi
Uygunluğu Kontrol Etme
Etkinleştir/Devre Dışı Bırak
Paketlenmiş kanca referansı
session-memory
/new verdiğinizde oturum bağlamını belleğe kaydeder.
Olaylar: command:new
Gereksinimler: workspace.dir yapılandırılmış olmalıdır
Çıktı: <workspace>/memory/YYYY-MM-DD-slug.md (varsayılan ~/.openclaw/workspace)
Ne yapar:
- Doğru dökümü bulmak için sıfırlama öncesi oturum girdisini kullanır
- Konuşmanın son 15 satırını çıkarır
- Tanımlayıcı bir dosya adı slug’ı üretmek için LLM kullanır
- Oturum meta verilerini tarihli bir bellek dosyasına kaydeder
2026-01-16-vendor-pitch.md2026-01-16-api-design.md2026-01-16-1430.md(slug üretimi başarısız olursa yedek zaman damgası)
bootstrap-extra-files
Bir temizleme penceresinde veya rastgele bir olasılıkla enjekte edilenSOUL.md içeriğini SOUL_EVIL.md ile değiştirir.
Olaylar: agent:bootstrap
Hata ayıklama
Çıktı: Dosya yazılmaz; değişimler yalnızca bellek içinde gerçekleşir.
Yapılandırma:
- Yollar workspace’e göreli olarak çözülür.
- Dosyalar workspace içinde kalmalıdır (realpath kontrolü yapılır).
- Yalnızca tanınan bootstrap temel adları yüklenir.
- Subagent allowlist korunur (yalnızca
AGENTS.mdveTOOLS.md).
command-logger
Tüm komut olaylarını merkezi bir denetim dosyasına kaydeder. Olaylar:command
Gereksinimler: Yok
Çıktı: ~/.openclaw/logs/commands.log
Ne yapar:
- Olay ayrıntılarını yakalar (komut eylemi, zaman damgası, oturum anahtarı, gönderen kimliği, kaynak)
- Günlük dosyasına JSONL biçiminde ekler
- Arka planda sessizce çalışır
boot-md
Gateway başladığında (kanallar başladıktan sonra)BOOT.md çalıştırır.
Bunun çalışması için dahili hook’lar etkin olmalıdır.
Olaylar: gateway:startup
Gereksinimler: workspace.dir yapılandırılmış olmalıdır
Ne yapar:
- Çalışma alanınızdan
BOOT.mdokur - Talimatları ajan çalıştırıcısı aracılığıyla yürütür
- İstenen giden mesajları mesaj aracıyla gönderir
En İyi Uygulamalar
İşleyicileri Hızlı Tutun
Hook’lar komut işleme sırasında çalışır. Hafif tutun:Hataları Zarifçe Ele Alın
Riskli işlemleri her zaman sarmalayın:Olayları Erken Filtreleyin
Olay ilgili değilse erken dönün:Belirli Olay Anahtarlarını Kullanın
Mümkün olduğunda meta verilerde tam olayları belirtin:Hata ayıklama
Hook Günlüğünü Etkinleştirin
Gateway, başlangıçta hook yüklemeyi günlüğe alır:Keşfi Kontrol Et
Keşfedilen tüm hook’ları listeleyin:Kayıt (Registration) Kontrolü
İşleyicinizde, çağrıldığında günlüğe kaydedin:Uygunluğu Doğrulayın
Bir hook’un neden uygun olmadığını kontrol edin:Test
Gateway Günlükleri
Hook yürütümünü görmek için gateway günlüklerini izleyin:Hook’ları Doğrudan Test Edin
İşleyicilerinizi yalıtılmış olarak test edin:Mimari
Çekirdek Bileşenler
src/hooks/types.ts: Tür tanımlarısrc/hooks/workspace.ts: Dizin tarama ve yüklemesrc/hooks/frontmatter.ts: HOOK.md meta veri ayrıştırmasrc/hooks/config.ts: Uygunluk denetimisrc/hooks/hooks-status.ts: Durum raporlamasrc/hooks/loader.ts: Dinamik modül yükleyicisrc/cli/hooks-cli.ts: CLI komutlarısrc/gateway/server-startup.ts: Gateway başlangıcında hook’ları yüklersrc/auto-reply/reply/commands-core.ts: Komut olaylarını tetikler
Keşif Akışı
Olay Akışı
Sorun Giderme
Hook Keşfedilmiyor
-
Dizin yapısını kontrol edin:
-
HOOK.md biçimini doğrulayın:
-
Keşfedilen tüm hook’ları listeleyin:
Hook Çalışmıyor
Gereksinimleri kontrol edin:- İkililer (PATH’i kontrol edin)
- Ortam değişkenleri
- Yapılandırma değerleri
- İşletim sistemi uyumluluğu
Hook Uygun Değil
-
Hook’un etkin olduğunu doğrulayın:
- Hook’ların yeniden yüklenmesi için gateway sürecinizi yeniden başlatın.
-
Hatalar için gateway günlüklerini kontrol edin:
İşleyici Hataları
TypeScript/ithalat hatalarını kontrol edin:Geçiş Kılavuzu
Eski Yapılandırmadan Keşfe
Önce:-
Hook dizini oluşturun:
-
HOOK.md oluşturun:
-
Yapılandırmayı güncelleyin:
-
Doğrulayın ve gateway sürecinizi yeniden başlatın:
- Otomatik keşif
- CLI ile yönetim
- Uygunluk denetimi
- Daha iyi dokümantasyon
- Tutarlı yapı