Cron vs Heartbeat: Hangisi Ne Zaman Kullanılmalı
Hem heartbeat’ler hem de cron işleri, görevleri bir zaman çizelgesine göre çalıştırmanıza olanak tanır. Bu rehber, kullanım senaryonuz için doğru mekanizmayı seçmenize yardımcı olur.Hızlı Karar Rehberi
| Kullanım Senaryosu | Önerilen | Neden |
|---|---|---|
| Gelen kutusunu her 30 dakikada kontrol et | Heartbeat | Diğer kontrollerle birlikte, bağlam farkındalıklı gruplar |
| Her gün tam 9:00’da rapor gönder | Cron (isolated) | Kesin zamanlama gerekir |
| Takvimde yaklaşan etkinlikleri izle | Heartbeat | Periyodik farkındalık için doğal uyum |
| Haftalık derin analiz çalıştır | Cron (isolated) | Bağımsız görev, farklı model kullanılabilir |
| 20 dakika sonra hatırlat | Cron (main, --at) | Hassas zamanlamayla tek seferlik |
| Arka plan proje sağlık kontrolü | Heartbeat | Mevcut döngüyü kullanır |
Heartbeat: Periyodik Farkındalık
Heartbeat’ler ana oturumda düzenli bir aralıkla (varsayılan: 30 dk) çalışır. Ajanın durumu kontrol etmesi ve önemli olanları öne çıkarması için tasarlanmıştır.Heartbeat ne zaman kullanılmalı
- Birden fazla periyodik kontrol: Gelen kutusu, takvim, hava durumu, bildirimler ve proje durumunu kontrol eden 5 ayrı cron işi yerine, tek bir heartbeat hepsini gruplayabilir.
- Bağlam farkında kararlar: Ajan, ana oturumun tam bağlamına sahiptir; bu sayede acil olanlarla bekleyebilecekleri akıllıca ayırt edebilir.
- Konuşma sürekliliği: Heartbeat çalışmaları aynı oturumu paylaşır; ajan son konuşmaları hatırlar ve doğal şekilde takip edebilir.
- Düşük ek yükle izleme: Tek bir heartbeat, birçok küçük yoklama görevini değiştirir.
Heartbeat avantajları
- Birden fazla kontrolü grupla: Tek bir ajan turu, gelen kutusu, takvim ve bildirimleri birlikte gözden geçirebilir.
- API çağrılarını azaltır: Tek bir heartbeat, 5 izole cron işinden daha ucuzdur.
- Bağlam farkındalığı: Ajan, üzerinde çalıştıklarınızı bilir ve buna göre önceliklendirebilir.
- Akıllı bastırma: Dikkat gerektiren bir şey yoksa, ajan
HEARTBEAT_OKyanıtını verir ve mesaj teslim edilmez. - Doğal zamanlama: Kuyruk yüküne bağlı olarak hafifçe kayar; çoğu izleme için uygundur.
Heartbeat örneği: HEARTBEAT.md kontrol listesi
Heartbeat yapılandırması
Cron: Kesin Zamanlama
Cron işleri kesin zamanlarda çalışır ve ana bağlamı etkilemeden izole oturumlarda çalışabilir.Cron ne zaman kullanılmalı
- Kesin zamanlama gerektiğinde: “Her Pazartesi sabah 9:00’da gönder” ( “9 civarı” değil).
- Bağımsız görevler: Konuşma bağlamına ihtiyaç duymayan işler.
- Farklı model/düşünme: Daha güçlü bir modeli gerektiren ağır analizler.
- Tek seferlik hatırlatmalar:
--atile “20 dakika sonra hatırlat”. - Gürültülü/sık görevler: Ana oturum geçmişini kalabalıklaştıracak işler.
- Harici tetikleyiciler: Ajanın başka bir şekilde aktif olup olmamasından bağımsız çalışması gereken görevler.
Cron avantajları
- Kesin zamanlama: Zaman dilimi desteği olan 5 alanlı cron ifadeleri.
- Oturum izolasyonu: Ana geçmişi kirletmeden
cron:<jobId>içinde çalışır. - Model geçersiz kılma: İş başına daha ucuz veya daha güçlü bir model kullanın.
- Teslimat denetimi: İzole işler varsayılan olarak
announce(özet) kullanır; gerektiğindenoneseçin. - Anında teslimat: Announce modu, heartbeat’i beklemeden doğrudan gönderir.
- Ajan bağlamı gerekmez: Ana oturum boşta veya sıkıştırılmış olsa bile çalışır.
- Tek seferlik destek: Kesin gelecek zaman damgaları için
--at.
Cron örneği: Günlük sabah brifingi
Cron örneği: Tek seferlik hatırlatma
Karar Akış Şeması
Her İkisini Birlikte Kullanma
En verimli kurulum her ikisini de kullanır:- Heartbeat, rutin izlemeyi (gelen kutusu, takvim, bildirimler) her 30 dakikada tek bir gruplanmış turda ele alır.
- Cron, kesin zamanlamaları (günlük raporlar, haftalık incelemeler) ve tek seferlik hatırlatmaları yönetir.
Örnek: Verimli otomasyon kurulumu
HEARTBEAT.md (her 30 dakikada kontrol edilir):Lobster: Onaylı deterministik iş akışları
Lobster, çok adımlı araç boru hatları için deterministik yürütme ve açık onaylar gerektiren iş akışı çalışma zamanıdır. Görev tek bir ajan turundan fazlaysa ve insan kontrol noktaları olan, devam ettirilebilir bir iş akışı istiyorsanız kullanın.Lobster ne zaman uygundur
- Çok adımlı otomasyon: Tek seferlik bir istem değil, sabit bir araç çağrıları hattına ihtiyaç vardır.
- Onay kapıları: Yan etkiler, siz onaylayana kadar durmalı ve ardından devam etmelidir.
- Devam ettirilebilir çalıştırmalar: Daha önceki adımları yeniden çalıştırmadan duraklatılmış bir iş akışına devam edin.
Heartbeat ve cron ile nasıl eşleşir
- Heartbeat/cron, bir çalıştırmanın ne zaman gerçekleşeceğine karar verir.
- Lobster, çalıştırma başladığında hangi adımların gerçekleşeceğini tanımlar.
Operasyonel notlar (koddaki bilgiler)
- Lobster, araç modunda yerel bir alt süreç (
lobsterCLI) olarak çalışır ve bir JSON zarfı döndürür. - Araç
needs_approvaldöndürürse,resumeTokenveapprovebayrağı ile devam edersiniz. - Araç isteğe bağlı bir eklentidir;
tools.alsoAllow: ["lobster"]ile eklemeli olarak etkinleştirin (önerilir). lobsterPathgeçirirseniz, mutlak bir yol olmalıdır.
Ana Oturum vs İzole Oturum
Hem heartbeat hem de cron ana oturumla etkileşime girebilir, ancak farklı şekillerde:| Heartbeat | Cron (main) | Cron (isolated) | |
|---|---|---|---|
| Oturum | Ana | Ana (sistem olayıyla) | cron:<jobId> |
| Geçmiş | Paylaşılan | Paylaşılan | Her çalıştırmada taze |
| Bağlam | Tam | Tam | Yok (temiz başlar) |
| Model | Ana oturum modeli | Ana oturum modeli | Geçersiz kılabilir |
| Çıktı | HEARTBEAT_OK değilse teslim edilir | Heartbeat istemi + olay | Varsayılan olarak özet duyurusu |
Ana oturum cron ne zaman kullanılmalı
Aşağıdakileri istediğinizde--session main ile --system-event kullanın:
- Hatırlatmanın/olayın ana oturum bağlamında görünmesi
- Bir sonraki kalp atışı sırasında tam bağlamla ele alması için ajan
- Ayrı bir izole çalıştırma olmaması
İzole cron ne zaman kullanılmalı
Aşağıdakileri istediğinizde--session isolated kullanın:
- Önceki bağlam olmadan temiz bir başlangıç
- Farklı model veya düşünme ayarları
- Özetleri doğrudan bir kanala duyurmak
- Ana oturumu kalabalıklaştırmayan geçmiş
Maliyet Hususları
| Mekanizma | Maliyet Profili |
|---|---|
| Heartbeat | Her N dakikada bir tur; HEARTBEAT.md boyutuyla ölçeklenir |
| Cron (main) | Bir sonraki heartbeat’e olay ekler (izole tur yok) |
| Cron (isolated) | İş başına tam ajan turu; daha ucuz model kullanılabilir |
- Token ek yükünü en aza indirmek için
HEARTBEAT.mdküçük tutun. - Birden fazla cron işi yerine benzer kontrolleri heartbeat’te gruplayın.
- Yalnızca dahili işlem istiyorsanız heartbeat’te
target: "none"kullanın. - Rutin görevler için daha ucuz bir modelle izole cron kullanın.