Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Heartbeat mi cron mu? Her birini ne zaman kullanacağınızla ilgili rehberlik için Otomasyon bölümüne bakın.
Hızlı başlangıç (başlangıç düzeyi)
Bir tempo seçin
Heartbeat’leri etkin bırakın (varsayılan
30m veya Claude CLI yeniden kullanımı dahil Anthropic OAuth/token kimlik doğrulaması için 1h) ya da kendi temponuzu ayarlayın.HEARTBEAT.md ekleyin (isteğe bağlı)
Ajan çalışma alanında küçük bir
HEARTBEAT.md kontrol listesi veya tasks: bloğu oluşturun.Heartbeat mesajlarının nereye gitmesi gerektiğine karar verin
target: "none" varsayılandır; son kişiye yönlendirmek için target: "last" ayarlayın.İsteğe bağlı ince ayar
- Şeffaflık için Heartbeat akıl yürütme teslimini etkinleştirin.
- Heartbeat çalıştırmalarının yalnızca
HEARTBEAT.mdgerektirdiği durumlarda hafif bootstrap bağlamı kullanın. - Her Heartbeat’te tam konuşma geçmişini göndermekten kaçınmak için izole oturumları etkinleştirin.
- Heartbeat’leri aktif saatlerle sınırlayın (yerel saat).
Varsayılanlar
- Aralık:
30m(Claude CLI yeniden kullanımı dahil, algılanan kimlik doğrulama modu Anthropic OAuth/token kimlik doğrulaması olduğunda1h).agents.defaults.heartbeat.everyveya ajan başınaagents.list[].heartbeat.everyayarlayın; devre dışı bırakmak için0mkullanın. - İstem gövdesi (
agents.defaults.heartbeat.promptile yapılandırılabilir):Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK. - Heartbeat istemi kullanıcı mesajı olarak aynen gönderilir. Sistem istemi, yalnızca varsayılan ajan için Heartbeat’ler etkinleştirildiğinde bir “Heartbeat” bölümü içerir ve çalıştırma dahili olarak işaretlenir.
- Heartbeat’ler
0mile devre dışı bırakıldığında, normal çalıştırmalar daHEARTBEAT.mddosyasını bootstrap bağlamından çıkarır; böylece model yalnızca Heartbeat’e özel talimatları görmez. - Aktif saatler (
heartbeat.activeHours) yapılandırılan saat diliminde denetlenir. Pencerenin dışında Heartbeat’ler, pencere içindeki bir sonraki tick’e kadar atlanır. - Cron işi aktif veya kuyruktayken Heartbeat’ler otomatik olarak ertelenir. Bir ajanı kendi oturum anahtarlı alt ajan veya iç içe komut şeritlerinde de ertelemek için
heartbeat.skipWhenBusy: trueayarlayın; kardeş ajanlar artık yalnızca başka bir ajanın alt ajan işi devam ediyor diye duraklatılmaz.
Heartbeat istemi ne içindir?
Varsayılan istem kasıtlı olarak geniştir:- Arka plan görevleri: “Consider outstanding tasks”, ajanı takipleri (gelen kutusu, takvim, hatırlatıcılar, kuyruktaki işler) gözden geçirmeye ve acil olan her şeyi öne çıkarmaya yönlendirir.
- İnsan kontrolü: “Checkup sometimes on your human during day time”, ara sıra hafif bir “bir şeye ihtiyacın var mı?” mesajına yönlendirir, ancak yapılandırılmış yerel saat diliminizi kullanarak gece spam’inden kaçınır (bkz. Saat Dilimi).
agents.defaults.heartbeat.prompt (veya agents.list[].heartbeat.prompt) değerini özel bir gövdeye ayarlayın (aynen gönderilir).
Yanıt sözleşmesi
- Dikkat gerektiren bir şey yoksa
HEARTBEAT_OKile yanıt verin. - Araç kullanabilen Heartbeat çalıştırmaları bunun yerine görünür güncelleme olmaması için
notify: falseile veya bir uyarı içinnotify: trueartınotificationTextileheartbeat_respondçağırabilir. Varsa yapılandırılmış araç yanıtı, metin yedeğine göre önceliklidir. - Heartbeat çalıştırmaları sırasında OpenClaw, yanıtın başında veya sonunda göründüğünde
HEARTBEAT_OKdeğerini onay olarak kabul eder. Token çıkarılır ve kalan içerik ≤ackMaxCharsise yanıt düşürülür (varsayılan: 300). HEARTBEAT_OKbir yanıtın ortasında görünürse özel olarak ele alınmaz.- Uyarılar için
HEARTBEAT_OKeklemeyin; yalnızca uyarı metnini döndürün.
HEARTBEAT_OK çıkarılır ve günlüğe kaydedilir; yalnızca HEARTBEAT_OK olan bir mesaj düşürülür.
Yapılandırma
Kapsam ve öncelik
agents.defaults.heartbeatgenel Heartbeat davranışını ayarlar.agents.list[].heartbeatbunun üzerine birleştirilir; herhangi bir ajandaheartbeatbloğu varsa yalnızca bu ajanlar Heartbeat çalıştırır.channels.defaults.heartbeattüm kanallar için görünürlük varsayılanlarını ayarlar.channels.<channel>.heartbeatkanal varsayılanlarını geçersiz kılar.channels.<channel>.accounts.<id>.heartbeat(çok hesaplı kanallar) kanal başına ayarları geçersiz kılar.
Ajan başına Heartbeat’ler
Herhangi biragents.list[] girdisi heartbeat bloğu içeriyorsa yalnızca bu ajanlar Heartbeat çalıştırır. Ajan başına blok, agents.defaults.heartbeat üzerine birleştirilir (böylece paylaşılan varsayılanları bir kez ayarlayıp ajan başına geçersiz kılabilirsiniz).
Örnek: iki ajan, yalnızca ikinci ajan Heartbeat çalıştırır.
Aktif saatler örneği
Heartbeat’leri belirli bir saat dilimindeki mesai saatleriyle sınırlayın:7/24 kurulum
Heartbeat’lerin tüm gün çalışmasını istiyorsanız şu kalıplardan birini kullanın:activeHoursdeğerini tamamen atlayın (zaman penceresi kısıtlaması yoktur; varsayılan davranış budur).- Tam gün penceresi ayarlayın:
activeHours: { start: "00:00", end: "24:00" }.
Çok hesaplı örnek
Telegram gibi çok hesaplı kanallarda belirli bir hesabı hedeflemek içinaccountId kullanın:
Alan notları
Heartbeat aralığı (süre dizesi; varsayılan birim = dakika).
Heartbeat çalıştırmaları için isteğe bağlı model geçersiz kılması (
provider/model).Etkinleştirildiğinde, varsa ayrı
Reasoning: mesajını da teslim eder (/reasoning on ile aynı biçim).True olduğunda Heartbeat çalıştırmaları hafif bootstrap bağlamı kullanır ve çalışma alanı bootstrap dosyalarından yalnızca
HEARTBEAT.md dosyasını tutar.True olduğunda her Heartbeat, önceki konuşma geçmişi olmadan yeni bir oturumda çalışır. Cron
sessionTarget: "isolated" ile aynı izolasyon kalıbını kullanır. Heartbeat başına token maliyetini önemli ölçüde azaltır. En yüksek tasarruf için lightContext: true ile birleştirin. Teslimat yönlendirmesi yine de ana oturum bağlamını kullanır.True olduğunda Heartbeat çalıştırmaları, o ajanın ek meşgul şeritlerinde ertelenir: kendi oturum anahtarlı alt ajanı veya iç içe komut işi. Cron şeritleri bu bayrak olmadan bile Heartbeat’leri her zaman erteler; böylece yerel model barındırıcıları cron ve Heartbeat istemlerini aynı anda çalıştırmaz.
Heartbeat çalıştırmaları için isteğe bağlı oturum anahtarı.
main(varsayılan): ajan ana oturumu.- Açık oturum anahtarı (
openclaw sessions --jsonveya oturumlar CLI üzerinden kopyalayın). - Oturum anahtarı biçimleri: bkz. Oturumlar ve Gruplar.
last: son kullanılan harici kanala teslim et.- açık kanal: yapılandırılmış herhangi bir kanal veya plugin kimliği; örneğin
discord,matrix,telegramveyawhatsapp. none(varsayılan): Heartbeat’i çalıştır ama harici olarak teslim etme.
Doğrudan/DM teslim davranışını kontrol eder.
allow: doğrudan/DM Heartbeat teslimine izin ver. block: doğrudan/DM teslimini bastır (reason=dm-blocked).İsteğe bağlı alıcı geçersiz kılması (kanala özgü kimlik, ör. WhatsApp için E.164 veya Telegram sohbet kimliği). Telegram konuları/iş parçacıkları için
<chatId>:topic:<messageThreadId> kullanın.Çok hesaplı kanallar için isteğe bağlı hesap kimliği.
target: "last" olduğunda hesap kimliği, hesapları destekliyorsa çözümlenen son kanala uygulanır; aksi takdirde yok sayılır. Hesap kimliği çözümlenen kanal için yapılandırılmış bir hesapla eşleşmezse teslimat atlanır.Varsayılan istem gövdesini geçersiz kılar (birleştirilmez).
Teslimattan önce
HEARTBEAT_OK sonrasında izin verilen en fazla karakter sayısı.true olduğunda, heartbeat çalışmaları sırasında araç hatası uyarı yüklerini bastırır.
Heartbeat çalışmalarını bir zaman aralığıyla sınırlar.
start (HH:MM, dahil; gün başlangıcı için 00:00 kullanın), end (HH:MM hariç; gün sonu için 24:00 kullanılabilir) ve isteğe bağlı timezone içeren nesne.- Atlanırsa veya
"user"ise: ayarlanmışsaagents.defaults.userTimezonedeğerinizi kullanır, aksi halde ana makine sistem saat dilimine geri döner. "local": her zaman ana makine sistem saat dilimini kullanır.- Herhangi bir IANA tanımlayıcısı (örn.
America/New_York): doğrudan kullanılır; geçersizse yukarıdaki"user"davranışına geri döner. - Etkin bir pencere için
startveendeşit olmamalıdır; eşit değerler sıfır genişlikte kabul edilir (her zaman pencerenin dışında). - Etkin pencerenin dışında, heartbeat’ler pencere içindeki bir sonraki tik zamanına kadar atlanır.
Teslimat davranışı
Oturum ve hedef yönlendirme
Oturum ve hedef yönlendirme
- Heartbeat’ler varsayılan olarak agent’ın ana oturumunda çalışır (
agent:<id>:<mainKey>) veyasession.scope = "global"olduğundaglobaliçinde çalışır. Belirli bir kanal oturumuna (Discord/WhatsApp/vb.) geçersiz kılmak içinsessionayarlayın. sessionyalnızca çalışma bağlamını etkiler; teslimattargetvetotarafından denetlenir.- Belirli bir kanala/alıcıya teslim etmek için
target+toayarlayın.target: "last"ile teslimat, o oturum için son harici kanalı kullanır. - Heartbeat teslimatları varsayılan olarak doğrudan/DM hedeflerine izin verir. Heartbeat turunu yine çalıştırırken doğrudan hedefe gönderimleri bastırmak için
directPolicy: "block"ayarlayın. - Ana kuyruk, hedef oturum yolu, cron yolu veya etkin bir cron işi meşgulse heartbeat atlanır ve daha sonra yeniden denenir.
skipWhenBusy: trueise bu agent’ın oturum anahtarlı alt agent’ı ve iç içe yolları da heartbeat çalışmalarını erteler. Diğer agent’ların meşgul yolları bu agent’ı ertelemez.targetharici bir hedefe çözümlenmezse çalışma yine gerçekleşir ancak giden mesaj gönderilmez.
Görünürlük ve atlama davranışı
Görünürlük ve atlama davranışı
showOk,showAlertsveuseIndicatorseçeneklerinin tümü devre dışıysa çalışma baştanreason=alerts-disabledolarak atlanır.- Yalnızca uyarı teslimatı devre dışıysa OpenClaw heartbeat’i yine çalıştırabilir, zamanı gelmiş görev zaman damgalarını güncelleyebilir, oturum boşta zaman damgasını geri yükleyebilir ve dışa dönük uyarı yükünü bastırabilir.
- Çözümlenen heartbeat hedefi yazıyor göstergesini destekliyorsa OpenClaw, heartbeat çalışması etkinken yazıyor göstergesini gösterir. Bu, heartbeat’in sohbet çıktısı göndereceği aynı hedefi kullanır ve
typingMode: "never"ile devre dışı bırakılır.
Oturum yaşam döngüsü ve denetim
Oturum yaşam döngüsü ve denetim
- Yalnızca heartbeat yanıtları oturumu canlı tutmaz. Heartbeat metadata’sı oturum satırını güncelleyebilir, ancak boşta sona erme son gerçek kullanıcı/kanal mesajındaki
lastInteractionAtdeğerini, günlük sona erme isesessionStartedAtdeğerini kullanır. - Denetim kullanıcı arayüzü ve WebChat geçmişi heartbeat istemlerini ve yalnızca OK onaylarını gizler. Alttaki oturum transkripti denetim/yeniden oynatma için bu turları yine de içerebilir.
- Ayrılmış arka plan görevleri, ana oturumun bir şeyi hızlıca fark etmesi gerektiğinde bir sistem olayı kuyruğa alabilir ve heartbeat’i uyandırabilir. Bu uyandırma, heartbeat çalışmasını bir arka plan görevi yapmaz.
Görünürlük denetimleri
Varsayılan olarak, uyarı içeriği teslim edilirkenHEARTBEAT_OK onayları bastırılır. Bunu kanal başına veya hesap başına ayarlayabilirsiniz:
Her bayrak ne yapar
showOk: model yalnızca OK yanıtı döndürdüğünde birHEARTBEAT_OKonayı gönderir.showAlerts: model OK olmayan bir yanıt döndürdüğünde uyarı içeriğini gönderir.useIndicator: kullanıcı arayüzü durum yüzeyleri için gösterge olayları yayar.
Kanal başına ve hesap başına örnekler
Yaygın kalıplar
| Amaç | Yapılandırma |
|---|---|
| Varsayılan davranış (sessiz OK’ler, uyarılar açık) | (yapılandırma gerekmez) |
| Tamamen sessiz (mesaj yok, gösterge yok) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: false } |
| Yalnızca gösterge (mesaj yok) | channels.defaults.heartbeat: { showOk: false, showAlerts: false, useIndicator: true } |
| OK’ler yalnızca tek bir kanalda | channels.telegram.heartbeat: { showOk: true } |
HEARTBEAT.md (isteğe bağlı)
Çalışma alanında birHEARTBEAT.md dosyası varsa varsayılan istem agent’a bunu okumasını söyler. Bunu “heartbeat kontrol listeniz” olarak düşünün: küçük, kararlı ve her 30 dakikada bir dahil edilmesi güvenli.
Normal çalışmalarda HEARTBEAT.md yalnızca varsayılan agent için heartbeat rehberliği etkinleştirildiğinde enjekte edilir. Heartbeat ritmini 0m ile devre dışı bırakmak veya includeSystemPromptSection: false ayarlamak, bunu normal başlangıç bağlamından çıkarır.
HEARTBEAT.md varsa ancak fiilen boşsa (yalnızca boş satırlar ve # Heading gibi markdown başlıkları), OpenClaw API çağrılarını azaltmak için heartbeat çalışmasını atlar. Bu atlama reason=empty-heartbeat-file olarak raporlanır. Dosya yoksa heartbeat yine çalışır ve model ne yapılacağına karar verir.
İstem şişmesini önlemek için küçük tutun (kısa kontrol listesi veya hatırlatmalar).
Örnek HEARTBEAT.md:
tasks: blokları
HEARTBEAT.md, heartbeat’in içinde aralık tabanlı kontroller için küçük bir yapılandırılmış tasks: bloğunu da destekler.
Örnek:
Davranış
Davranış
- OpenClaw
tasks:bloğunu ayrıştırır ve her görevi kendiintervaldeğerine göre denetler. - O tik için heartbeat istemine yalnızca zamanı gelmiş görevler dahil edilir.
- Zamanı gelen görev yoksa boşa model çağrısını önlemek için heartbeat tamamen atlanır (
reason=no-tasks-due). HEARTBEAT.mdiçindeki görev dışı içerik korunur ve zamanı gelmiş görev listesinden sonra ek bağlam olarak eklenir.- Görev son çalışma zaman damgaları oturum durumunda (
heartbeatTaskState) saklanır, böylece aralıklar normal yeniden başlatmalardan sonra da korunur. - Görev zaman damgaları yalnızca bir heartbeat çalışması normal yanıt yolunu tamamladıktan sonra ilerletilir. Atlanan
empty-heartbeat-file/no-tasks-dueçalışmaları görevleri tamamlandı olarak işaretlemez.
Agent HEARTBEAT.md dosyasını güncelleyebilir mi?
Evet — siz isterseniz.HEARTBEAT.md, agent çalışma alanındaki normal bir dosyadır; bu yüzden agent’a (normal bir sohbette) şöyle bir şey söyleyebilirsiniz:
- “Günlük takvim kontrolü eklemek için
HEARTBEAT.mddosyasını güncelle.” - “
HEARTBEAT.mddosyasını daha kısa ve gelen kutusu takiplerine odaklı olacak şekilde yeniden yaz.”
Elle uyandırma (isteğe bağlı)
Şununla bir sistem olayını kuyruğa alabilir ve anında heartbeat tetikleyebilirsiniz:heartbeat yapılandırılmışsa elle uyandırma, bu agent heartbeat’lerinin her birini hemen çalıştırır.
Bir sonraki zamanlanmış tiki beklemek için --mode next-heartbeat kullanın.
Akıl yürütme teslimatı (isteğe bağlı)
Varsayılan olarak heartbeat’ler yalnızca son “answer” yükünü teslim eder. Şeffaflık istiyorsanız şunu etkinleştirin:agents.defaults.heartbeat.includeReasoning: true
Reasoning: ön ekli ayrı bir mesaj da teslim eder (/reasoning on ile aynı biçimde). Bu, agent birden fazla oturumu/codex’i yönetirken ve size neden ping atmaya karar verdiğini görmek istediğinizde kullanışlı olabilir; ancak istediğinizden daha fazla iç ayrıntıyı da sızdırabilir. Grup sohbetlerinde kapalı tutmayı tercih edin.
Maliyet farkındalığı
Heartbeat’ler tam agent turları çalıştırır. Daha kısa aralıklar daha fazla token tüketir. Maliyeti azaltmak için:- Tam konuşma geçmişini göndermemek için
isolatedSession: truekullanın (~100K token’dan çalışma başına ~2-5K’ya düşer). - Başlangıç dosyalarını yalnızca
HEARTBEAT.mdile sınırlamak içinlightContext: truekullanın. - Daha ucuz bir
modelayarlayın (örn.ollama/llama3.2:1b). HEARTBEAT.mddosyasını küçük tutun.- Yalnızca dahili durum güncellemeleri istiyorsanız
target: "none"kullanın.
Heartbeat sonrası bağlam taşması
Bir heartbeat daha önce mevcut bir oturumu daha küçük bir yerel modelde bırakmışsa, örneğin 32k pencereli bir Ollama modeli, ve sonraki ana oturum turu bağlam taşması bildirirse oturum çalışma zamanı modelini yapılandırılmış birincil modele geri sıfırlayın. OpenClaw’ın sıfırlama mesajı, son çalışma zamanı modeli yapılandırılmışheartbeat.model ile eşleştiğinde bunu belirtir.
Güncel heartbeat’ler, çalışma tamamlandıktan sonra paylaşılan oturumun mevcut çalışma zamanı modelini korur. Heartbeat’leri yeni bir oturumda çalıştırmak için yine isolatedSession: true kullanabilir, en küçük istem için bunu lightContext: true ile birleştirebilir veya paylaşılan oturum için yeterince büyük bağlam penceresine sahip bir heartbeat modeli seçebilirsiniz.
İlgili
- Otomasyon — tüm otomasyon mekanizmalarına genel bakış
- Arka Plan Görevleri — ayrılmış işlerin nasıl izlendiği
- Saat Dilimi — saat diliminin heartbeat zamanlamasını nasıl etkilediği
- Sorun Giderme — otomasyon sorunlarını ayıklama