İçeriğe geç

Hook'lar

Hook, bee’nin söz alma biçimidir. Ajanın çalışma ortamı tanımlı bir anda bee’yi çağırır, bee söyleyeceğini yazdırır, ve çalışma ortamı bunu modelin bağlamına katar.

Terminal window
bee hook install --harness claude --scope project # ya da codex, ya da hermes

hook install adını verdiğiniz ortam için doğru yapılandırmayı yazar — yanlış yapılması kolay bayraklar dahil; neden farklı olduklarını aşağıdaki tabloda görebilirsiniz.

ne zaman ajanın bağlamına ne ulaşır
oturum başı kim olduğu (SOUL), duran kurallar, son birkaç olgu
her prompt kurallar + az önce sorulanla eşleşen hafızalar
bir dosya yazılırken o dosyayı yöneten kurallar

Tam olarak ne yazdırdıklarını görmek için elle koşturun:

Terminal window
bee hook session-start
echo '{"prompt":"datasource testini düzelt"}' | bee hook prompt
echo '{"file_path":"src/Catalog/Data/ProductDataSource.cs"}' | bee hook pre-tool
ortam oturum başı her prompt yazmadan önce
Claude Code ✅ — --emit claude-pretool gerekir
Codex bağlanmadı
Hermes ilk prompta biner --emit context-json bağlanmadı

Her ✅ gerçek çalışma ortamı bee’nin kendi ürettiği yapılandırmaya karşı koşturularak ve modele “ne aldın, aynen aktar” denerek üretildi. Boşluklar “henüz yapılmadı” değil — her biri o ortamın bir özelliği:

Claude Code yazma öncesi olayda düz stdout’u atar. Yalnızca hookSpecificOutput.additionalContext yükü hayatta kalır. İki yönlü ölçüldü: düz metinle model hiçbir şey almadığını bildirdi; yapılandırılmış yükle kuralı kelimesi kelimesine aktardı.

Codex’in Write aracı yok — dosyaları kabuk komutları koşturarak düzenler, yani yazma öncesi olay bir dosya yolu değil bir komut satırı taşır, ve kuralı arayacak bir şey kalmaz.

Hermes dönen yükü yalnızca tek bir olayda kullanır (pre_llm_call). Diğer ikisi bee’yi koşturur ve çıktıyı atar, yani onları bağlamak bağlanmış gibi görünüp hiçbir şey yapmazdı.

Yazma öncesi hook yazmadan önce koşar, ama bağlamı modele araç sonucuyla birlikte ulaşır — yani ilk yazma kurala uymaz, ve model düzeltir. Her .cs dosyasının bir lisans satırıyla başlaması gerektiğini söyleyen bir kuralla:

1. Write "public class Thing" ← kural henüz gelmemişti
2. Edit "// LICENCE-7" ← gördükten sonra düzeltti

Bir fazladan düzenleme, ve dosya doğru hâline geliyor. Bu bir düzeltme üretir, bir önleme değil. Buna “yazmadan önce” demek fazla iddialı olurdu.