Automation
Zamanlanmış görevler
Cron, Gateway'in yerleşik zamanlayıcısıdır. İşleri kalıcı hale getirir, ajanı doğru zamanda uyandırır ve çıktıyı bir sohbet kanalına veya webhook uç noktasına geri iletebilir.
Hızlı başlangıç
Tek seferlik bir hatırlatıcı ekleyin
openclaw cron add \ --name "Reminder" \ --at "2026-02-01T16:00:00Z" \ --session main \ --system-event "Reminder: check the cron docs draft" \ --wake now \ --delete-after-runİşlerinizi kontrol edin
openclaw cron listopenclaw cron get <job-id>openclaw cron show <job-id>Çalıştırma geçmişini görün
openclaw cron runs --id <job-id>Cron nasıl çalışır?
- Cron, Gateway süreci içinde çalışır (modelin içinde değil).
- İş tanımları
~/.openclaw/cron/jobs.jsonkonumunda kalıcıdır, bu nedenle yeniden başlatmalar zamanlamaları kaybettirmez. - Çalışma zamanı yürütme durumu bunun yanında
~/.openclaw/cron/jobs-state.jsoniçinde kalıcıdır. Cron tanımlarını git içinde takip ediyorsanızjobs.jsondosyasını takip edin vejobs-state.jsondosyasını gitignore'a ekleyin. - Bölünmeden sonra, eski OpenClaw sürümleri
jobs.jsondosyasını okuyabilir ancak çalışma zamanı alanları artıkjobs-state.jsoniçinde yaşadığı için işleri yeniymiş gibi ele alabilir. - Gateway çalışırken veya durmuşken
jobs.jsondüzenlendiğinde, OpenClaw değişen zamanlama alanlarını bekleyen çalışma zamanı slot meta verileriyle karşılaştırır ve eskinextRunAtMsdeğerlerini temizler. Yalnızca biçimlendirme veya yalnızca anahtar sırası yeniden yazımları bekleyen slotu korur. - Tüm Cron yürütmeleri arka plan görevi kayıtları oluşturur.
- Gateway başlangıcında, zamanı geçmiş yalıtılmış ajan-tur işleri hemen yeniden oynatılmak yerine kanal-bağlantı penceresinin dışına yeniden zamanlanır; böylece Discord/Telegram başlangıcı ve yerel-komut kurulumu yeniden başlatmalardan sonra duyarlı kalır.
- Tek seferlik işler (
--at) başarılı olduktan sonra varsayılan olarak otomatik silinir. - Yalıtılmış Cron çalıştırmaları, çalıştırma tamamlandığında
cron:<jobId>oturumları için izlenen tarayıcı sekmelerini/süreçlerini en iyi çabayla kapatır; böylece ayrılmış tarayıcı otomasyonu geride sahipsiz süreçler bırakmaz. - Dar Cron kendi kendini temizleme yetkisi alan yalıtılmış Cron çalıştırmaları yine de zamanlayıcı durumunu, mevcut işlerinin kendi kendine filtrelenmiş listesini ve o işin çalıştırma geçmişini okuyabilir; böylece durum/Heartbeat kontrolleri daha geniş Cron değiştirme erişimi kazanmadan kendi zamanlamalarını inceleyebilir.
- Yalıtılmış Cron çalıştırmaları eski onay yanıtlarına karşı da koruma sağlar. İlk sonuç yalnızca geçici bir durum güncellemesiyse (
on it,pulling everything togetherve benzeri ipuçları) ve hiçbir alt alt ajan çalıştırması nihai yanıttan hâlâ sorumlu değilse, OpenClaw teslimattan önce gerçek sonuç için bir kez yeniden istem gönderir. - Yalıtılmış Cron çalıştırmaları önce gömülü çalıştırmadan gelen yapılandırılmış yürütme-reddi meta verilerini tercih eder, ardından
SYSTEM_RUN_DENIEDveINVALID_REQUESTgibi bilinen nihai özet/çıktı işaretlerine geri döner; böylece engellenen bir komut başarılı çalıştırma olarak bildirilmez. - Yalıtılmış Cron çalıştırmaları, yanıt yükü üretilmediğinde bile çalıştırma düzeyi ajan hatalarını iş hatası olarak ele alır; böylece model/sağlayıcı hataları hata sayaçlarını artırır ve işi başarılı olarak temizlemek yerine hata bildirimlerini tetikler.
- Yalıtılmış bir ajan-tur işi
timeoutSecondsdeğerine ulaştığında, Cron alttaki ajan çalıştırmasını iptal eder ve kısa bir temizlik penceresi tanır. Çalıştırma boşalmazsa, Gateway'e ait temizlik, Cron zaman aşımını kaydetmeden önce o çalıştırmanın oturum sahipliğini zorla temizler; böylece kuyruğa alınmış sohbet işi eski bir işleniyor oturumunun arkasında bırakılmaz. - Yalıtılmış bir ajan-tur, çalıştırıcı başlamadan önce veya ilk model çağrısından önce takılırsa, Cron
setup timed out before runner startveyastalled before first model call (last phase: context-engine)gibi aşamaya özel bir zaman aşımı kaydeder. Bu izleme mekanizmaları, harici CLI süreçleri gerçekten başlatılmadan önce gömülü sağlayıcıları ve CLI destekli sağlayıcıları kapsar ve uzuntimeoutSecondsdeğerlerinden bağımsız olarak sınırlandırılır; böylece soğuk başlatma/kimlik doğrulama/bağlam hataları tam iş bütçesini beklemek yerine hızlıca görünür olur.
Zamanlama türleri
| Tür | CLI bayrağı | Açıklama |
|---|---|---|
at |
--at |
Tek seferlik zaman damgası (ISO 8601 veya 20m gibi göreli) |
every |
--every |
Sabit aralık |
cron |
--cron |
İsteğe bağlı --tz ile 5 alanlı veya 6 alanlı Cron ifadesi |
Saat dilimi olmayan zaman damgaları UTC olarak ele alınır. Yerel duvar saati zamanlaması için --tz America/New_York ekleyin.
Saat başı yinelenen ifadeler, yük sıçramalarını azaltmak için otomatik olarak en fazla 5 dakika kaydırılır. Kesin zamanlamayı zorlamak için --exact veya açık bir pencere için --stagger 30s kullanın.
Ay günü ve hafta günü OR mantığı kullanır
Cron ifadeleri croner tarafından ayrıştırılır. Hem ay günü hem de hafta günü alanları joker karakter değilse, croner her iki alan da eşleştiğinde değil, herhangi biri eşleştiğinde eşleştirir. Bu standart Vixie Cron davranışıdır.
# Intended: "9 AM on the 15th, only if it's a Monday"# Actual: "9 AM on every 15th, AND 9 AM on every Monday"0 9 15 * 1Bu, ayda 0-1 kez yerine ayda yaklaşık 5-6 kez tetiklenir. OpenClaw burada Croner'ın varsayılan OR davranışını kullanır. Her iki koşulu da gerektirmek için Croner'ın + hafta günü değiştiricisini (0 9 15 * +1) kullanın veya bir alanda zamanlayıp diğerini işinizin isteminde veya komutunda denetleyin.
Yürütme biçimleri
| Biçim | --session değeri |
Şurada çalışır | En uygun kullanım |
|---|---|---|---|
| Ana oturum | main |
Sonraki Heartbeat turu | Hatırlatıcılar, sistem olayları |
| Yalıtılmış | isolated |
Ayrılmış cron:<jobId> |
Raporlar, arka plan işleri |
| Geçerli oturum | current |
Oluşturma anında bağlanır | Bağlama duyarlı yinelenen işler |
| Özel oturum | session:custom-id |
Kalıcı adlandırılmış oturum | Geçmiş üzerine kurulan iş akışları |
Ana oturum, yalıtılmış ve özel karşılaştırması
Ana oturum işleri bir sistem olayı kuyruğa alır ve isteğe bağlı olarak Heartbeat'i uyandırır (--wake now veya --wake next-heartbeat). Bu sistem olayları hedef oturum için günlük/boşta sıfırlama tazeliğini uzatmaz. Yalıtılmış işler, yeni bir oturumla ayrılmış bir ajan turu çalıştırır. Özel oturumlar (session:xxx) bağlamı çalıştırmalar arasında kalıcı tutarak önceki özetler üzerine kurulan günlük standup'lar gibi iş akışlarını mümkün kılar.
Yalıtılmış işler için 'yeni oturum' ne anlama gelir?
Yalıtılmış işler için "yeni oturum", her çalıştırma için yeni bir transkript/oturum kimliği anlamına gelir. OpenClaw düşünme/hızlı/ayrıntılı ayarlar, etiketler ve açıkça kullanıcı tarafından seçilmiş model/kimlik doğrulama geçersiz kılmaları gibi güvenli tercihleri taşıyabilir; ancak eski bir Cron satırından ortam konuşma bağlamını devralmaz: kanal/grup yönlendirme, gönderme veya kuyruğa alma ilkesi, yükseltme, kaynak ya da ACP çalışma zamanı bağlaması. Yinelenen bir işin bilerek aynı konuşma bağlamı üzerine kurulması gerektiğinde current veya session:<id> kullanın.
Çalışma zamanı temizliği
Yalıtılmış işler için çalışma zamanı sonlandırması artık o Cron oturumu için en iyi çabayla tarayıcı temizliğini içerir. Temizlik hataları yok sayılır, böylece asıl Cron sonucu geçerli olmaya devam eder.
Yalıtılmış Cron çalıştırmaları ayrıca iş için oluşturulan tüm paketlenmiş MCP çalışma zamanı örneklerini paylaşılan çalışma zamanı temizliği yolu üzerinden imha eder. Bu, ana oturum ve özel oturum MCP istemcilerinin sonlandırılma biçimiyle eşleşir; böylece yalıtılmış Cron işleri çalıştırmalar arasında stdio alt süreçleri veya uzun ömürlü MCP bağlantıları sızdırmaz.
Alt ajan ve Discord teslimatı
Yalıtılmış Cron çalıştırmaları alt ajanları yönettiğinde, teslimat da eski üst geçici metin yerine nihai alt çıktı tercih eder. Alt ajanlar hâlâ çalışıyorsa, OpenClaw bu kısmi üst güncellemeyi duyurmak yerine bastırır.
Yalnızca metin içeren Discord duyuru hedefleri için OpenClaw, hem akışlı/ara metin yüklerini hem de nihai yanıtı yeniden oynatmak yerine kanonik nihai asistan metnini bir kez gönderir. Medya ve yapılandırılmış Discord yükleri, eklerin ve bileşenlerin düşürülmemesi için hâlâ ayrı yükler olarak teslim edilir.
Yalıtılmış işler için yük seçenekleri
--messagestringrequiredİstem metni (yalıtılmış için gerekli).
--modelstringModel geçersiz kılması; iş için seçilen izin verilen modeli kullanır.
--thinkingstringDüşünme düzeyi geçersiz kılması.
--light-contextbooleanÇalışma alanı bootstrap dosya enjeksiyonunu atla.
--toolsstringİşin hangi araçları kullanabileceğini kısıtla, örneğin --tools exec,read.
--model, seçilen izin verilen modeli o işin birincil modeli olarak kullanır. Bu, sohbet oturumu /model geçersiz kılmasıyla aynı değildir: yapılandırılmış geri dönüş zincirleri iş birincili başarısız olduğunda hâlâ uygulanır. İstenen modele izin verilmiyorsa veya model çözümlenemiyorsa, Cron işin ajan/varsayılan model seçimine sessizce geri dönmek yerine çalıştırmayı açık bir doğrulama hatasıyla başarısız kılar.
Cron işleri ayrıca yük düzeyinde fallbacks taşıyabilir. Varsa, bu liste iş için yapılandırılmış geri dönüş zincirinin yerini alır. Yalnızca seçilen modeli deneyen katı bir Cron çalıştırması istediğinizde iş yükünde/API'de fallbacks: [] kullanın. Bir işte --model varsa ancak ne yükte ne de yapılandırmada geri dönüşler varsa, OpenClaw ajan birincilinin gizli ek yeniden deneme hedefi olarak eklenmemesi için açık bir boş geri dönüş geçersiz kılması geçirir.
Yalıtılmış işler için model seçimi önceliği şöyledir:
- Gmail hook model geçersiz kılması (çalıştırma Gmail'den geldiyse ve bu geçersiz kılmaya izin veriliyorsa)
- İş başına yük
model - Kullanıcı tarafından seçilmiş saklı Cron oturumu model geçersiz kılması
- Ajan/varsayılan model seçimi
Hızlı mod da çözümlenen canlı seçimi izler. Seçilen model yapılandırmasında params.fastMode varsa, yalıtılmış Cron varsayılan olarak bunu kullanır. Saklı bir oturum fastMode geçersiz kılması her iki yönde de yapılandırmaya üstün gelir.
Yalıtılmış bir çalıştırma canlı model-değiştirme devrine takılırsa, Cron değiştirilen sağlayıcı/model ile yeniden dener ve yeniden denemeden önce etkin çalıştırma için bu canlı seçimi kalıcı hale getirir. Değişiklik yeni bir kimlik doğrulama profili de taşıyorsa, Cron etkin çalıştırma için bu kimlik doğrulama profili geçersiz kılmasını da kalıcı hale getirir. Yeniden denemeler sınırlıdır: ilk deneme artı 2 değiştirme yeniden denemesinden sonra Cron sonsuza kadar döngüye girmek yerine iptal eder.
Yalıtılmış bir Cron çalışması ajan çalıştırıcısına girmeden önce OpenClaw, baseUrl değeri loopback, özel ağ veya .local olan yapılandırılmış api: "ollama" ve api: "openai-completions" sağlayıcıları için erişilebilir yerel sağlayıcı uç noktalarını denetler. Bu uç nokta kapalıysa çalışma, bir model çağrısı başlatmak yerine net bir sağlayıcı/model hatasıyla skipped olarak kaydedilir. Uç nokta sonucu 5 dakika önbelleğe alınır; böylece aynı kapalı yerel Ollama, vLLM, SGLang veya LM Studio sunucusunu kullanan birçok zamanı gelmiş iş, bir istek fırtınası oluşturmak yerine tek küçük probu paylaşır. Atlanan sağlayıcı ön denetim çalışmaları yürütme hatası geri çekilmesini artırmaz; tekrarlanan atlama bildirimleri istediğinizde failureAlert.includeSkipped ayarını etkinleştirin.
Teslim ve çıktı
| Mod | Ne olur |
|---|---|
announce |
Ajan göndermediyse son metni hedefe yedek olarak teslim et |
webhook |
Tamamlanan olay yükünü bir URL'ye POST eder |
none |
Çalıştırıcı yedek teslimi yapmaz |
Kanal teslimi için --announce --channel telegram --to "-1001234567890" kullanın. Telegram forum konuları için -1001234567890:topic:123 kullanın; doğrudan RPC/yapılandırma çağıranlar delivery.threadId değerini dize veya sayı olarak da geçirebilir. Slack/Discord/Mattermost hedefleri açık önekler kullanmalıdır (channel:<id>, user:<id>). Matrix oda kimlikleri büyük/küçük harfe duyarlıdır; Matrix'ten alınan tam oda kimliğini veya room:!room:server biçimini kullanın.
Duyuru teslimi channel: "last" kullandığında veya channel atlandığında, telegram:123 gibi sağlayıcı önekli bir hedef, Cron oturum geçmişine veya tek yapılandırılmış kanala geri düşmeden önce kanalı seçebilir. Yalnızca yüklenen Plugin tarafından duyurulan önekler sağlayıcı seçicileridir. delivery.channel açıksa, hedef öneki aynı sağlayıcıyı adlandırmalıdır; örneğin channel: "whatsapp" ile to: "telegram:123", WhatsApp'ın Telegram kimliğini telefon numarası olarak yorumlamasına izin vermek yerine reddedilir. channel:<id>, user:<id>, imessage:<handle> ve sms:<number> gibi hedef türü ve hizmet önekleri sağlayıcı seçicileri değil, kanalın sahip olduğu hedef söz dizimi olarak kalır.
Yalıtılmış işler için sohbet teslimi paylaşılır. Bir sohbet rotası varsa, iş --no-deliver kullansa bile ajan message aracını kullanabilir. Ajan yapılandırılmış/geçerli hedefe gönderirse OpenClaw yedek duyuruyu atlar. Aksi halde announce, webhook ve none, yalnızca ajan turundan sonra çalıştırıcının son yanıtla ne yapacağını denetler.
Bir ajan etkin bir sohbetten yalıtılmış bir anımsatıcı oluşturduğunda OpenClaw, yedek duyuru rotası için korunmuş canlı teslim hedefini saklar. Dahili oturum anahtarları küçük harfli olabilir; geçerli sohbet bağlamı mevcut olduğunda sağlayıcı teslim hedefleri bu anahtarlardan yeniden oluşturulmaz.
Örtük duyuru teslimi, eskimiş hedefleri doğrulamak ve yeniden yönlendirmek için yapılandırılmış kanal izin listelerini kullanır. DM eşleştirme deposu onayları yedek otomasyon alıcıları değildir; zamanlanmış bir işin proaktif olarak bir DM'ye göndermesi gerekiyorsa delivery.to ayarını belirleyin veya kanal allowFrom girdisini yapılandırın.
Hata bildirimleri ayrı bir hedef yolunu izler:
cron.failureDestination, hata bildirimleri için genel bir varsayılan belirler.job.delivery.failureDestination, bunu iş bazında geçersiz kılar.- Hiçbiri ayarlanmadıysa ve iş zaten
announceile teslim ediyorsa hata bildirimleri artık o birincil duyuru hedefine geri düşer. - Birincil teslim modu
webhookolmadığı sürecedelivery.failureDestinationyalnızcasessionTarget="isolated"işlerinde desteklenir. failureAlert.includeSkipped: true, bir işi veya genel Cron uyarı politikasını tekrarlanan atlanmış çalışma uyarılarına dahil eder. Atlanmış çalışmalar ayrı bir ardışık atlama sayacı tutar; bu nedenle yürütme hatası geri çekilmesini etkilemez.
CLI örnekleri
Tek seferlik anımsatıcı
openclaw cron add \ --name "Calendar check" \ --at "20m" \ --session main \ --system-event "Next heartbeat: check calendar." \ --wake nowYinelenen yalıtılmış iş
openclaw cron add \ --name "Morning brief" \ --cron "0 7 * * *" \ --tz "America/Los_Angeles" \ --session isolated \ --message "Summarize overnight updates." \ --announce \ --channel slack \ --to "channel:C1234567890"Model ve düşünme geçersiz kılması
openclaw cron add \ --name "Deep analysis" \ --cron "0 6 * * 1" \ --tz "America/Los_Angeles" \ --session isolated \ --message "Weekly deep analysis of project progress." \ --model "opus" \ --thinking high \ --announceWebhook'lar
Gateway, harici tetikleyiciler için HTTP Webhook uç noktaları sunabilir. Yapılandırmada etkinleştirin:
{ hooks: { enabled: true, token: "shared-secret", path: "/hooks", },}Kimlik doğrulama
Her istek, hook token'ını başlık aracılığıyla içermelidir:
Authorization: Bearer <token>(önerilir)x-openclaw-token: <token>
Sorgu dizesi token'ları reddedilir.
POST /hooks/wake
Ana oturum için bir sistem olayı kuyruğa alın:
curl -X POST http://127.0.0.1:18789/hooks/wake \ -H 'Authorization: Bearer SECRET' \ -H 'Content-Type: application/json' \ -d '{"text":"New email received","mode":"now"}'textstringrequiredOlay açıklaması.
modestringdefault: nownow veya next-heartbeat.
POST /hooks/agent
Yalıtılmış bir ajan turu çalıştırın:
curl -X POST http://127.0.0.1:18789/hooks/agent \ -H 'Authorization: Bearer SECRET' \ -H 'Content-Type: application/json' \ -d '{"message":"Summarize inbox","name":"Email","model":"openai/gpt-5.4"}'Alanlar: message (zorunlu), name, agentId, wakeMode, deliver, channel, to, model, fallbacks, thinking, timeoutSeconds.
OPENCLAW_DOCS_MARKER:accordionOpen:IHRpdGxlPSJFxZ9sZW5tacWfIGhvb2snbGFyIChQT1NUIC9ob29rcy88bmFtZQ
)">
Özel hook adları yapılandırmadaki hooks.mappings aracılığıyla çözümlenir. Eşlemeler, rastgele yükleri şablonlar veya kod dönüşümleriyle wake ya da agent eylemlerine dönüştürebilir.
Gmail PubSub entegrasyonu
Google PubSub aracılığıyla Gmail gelen kutusu tetikleyicilerini OpenClaw'a bağlayın.
Sihirbaz kurulumu (önerilir)
openclaw webhooks gmail setup --account [email protected]Bu, hooks.gmail yapılandırmasını yazar, Gmail ön ayarını etkinleştirir ve push uç noktası için Tailscale Funnel kullanır.
Gateway otomatik başlatma
hooks.enabled=true ve hooks.gmail.account ayarlandığında Gateway, önyüklemede gog gmail watch serve başlatır ve izlemeyi otomatik yeniler. Devre dışı bırakmak için OPENCLAW_SKIP_GMAIL_WATCHER=1 ayarını belirleyin.
Manuel tek seferlik kurulum
GCP projesini seçin
gog tarafından kullanılan OAuth istemcisinin sahibi olan GCP projesini seçin:
gcloud auth logingcloud config set project <project-id>gcloud services enable gmail.googleapis.com pubsub.googleapis.comKonu oluşturun ve Gmail push erişimi verin
gcloud pubsub topics create gog-gmail-watchgcloud pubsub topics add-iam-policy-binding gog-gmail-watch \ --member=serviceAccount:[email protected] \ --role=roles/pubsub.publisherİzlemeyi başlatın
gog gmail watch start \ --account [email protected] \ --label INBOX \ --topic projects/<project-id>/topics/gog-gmail-watchGmail model geçersiz kılması
{ hooks: { gmail: { model: "openrouter/meta-llama/llama-3.3-70b-instruct:free", thinking: "off", }, },}İşleri yönetme
# Tüm işleri listeleopenclaw cron list # Saklanan bir işi JSON olarak alopenclaw cron get <jobId> # Çözümlenen teslim rotası dahil bir işi gösteropenclaw cron show <jobId> # Bir işi düzenleopenclaw cron edit <jobId> --message "Updated prompt" --model "opus" # Bir işi şimdi zorla çalıştıropenclaw cron run <jobId> # Yalnızca zamanı geldiyse çalıştıropenclaw cron run <jobId> --due # Çalışma geçmişini görüntüleopenclaw cron runs --id <jobId> --limit 50 # Bir işi silopenclaw cron remove <jobId> # Ajan seçimi (çok ajanlı kurulumlar)openclaw cron add --name "Ops sweep" --cron "0 6 * * *" --session isolated --message "Check ops queue" --agent opsopenclaw cron edit <jobId> --clear-agentYapılandırma
{ cron: { enabled: true, store: "~/.openclaw/cron/jobs.json", maxConcurrentRuns: 1, retry: { maxAttempts: 3, backoffMs: [60000, 120000, 300000], retryOn: ["rate_limit", "overloaded", "network", "server_error"], }, webhookToken: "replace-with-dedicated-webhook-token", sessionRetention: "24h", runLog: { maxBytes: "2mb", keepLines: 2000 }, },}maxConcurrentRuns, hem zamanlanmış Cron dağıtımını hem de yalıtılmış ajan turu yürütmesini sınırlar. Yalıtılmış Cron ajan turları dahili olarak kuyruğun ayrılmış cron-nested yürütme hattını kullanır; bu nedenle bu değeri artırmak, bağımsız Cron LLM çalışmalarının yalnızca dış Cron sarmalayıcılarını başlatmak yerine paralel ilerlemesini sağlar. Paylaşılan Cron dışı nested hattı bu ayarla genişletilmez.
Çalışma zamanı durumu yan dosyası cron.store değerinden türetilir: ~/clawd/cron/jobs.json gibi bir .json deposu ~/clawd/cron/jobs-state.json kullanırken, .json soneki olmayan bir depo yolu -state.json ekler.
jobs.json dosyasını elle düzenlerseniz jobs-state.json dosyasını kaynak denetimi dışında bırakın. OpenClaw bu yan dosyayı bekleyen yuvalar, etkin işaretleyiciler, son çalışma meta verileri ve dışarıdan düzenlenen bir işin yeni bir nextRunAtMs değerine ne zaman gereksinimi olduğunu zamanlayıcıya söyleyen zamanlama kimliği için kullanır.
Cron'u devre dışı bırakın: cron.enabled: false veya OPENCLAW_SKIP_CRON=1.
Yeniden deneme davranışı
Tek seferlik yeniden deneme: geçici hatalar (hız sınırı, aşırı yük, ağ, sunucu hatası) üstel geri çekilme ile en fazla 3 kez yeniden denenir. Kalıcı hatalar hemen devre dışı bırakır.
Yinelenen yeniden deneme: yeniden denemeler arasında üstel geri çekilme (30 sn ile 60 dk arası). Geri çekilme bir sonraki başarılı çalışmadan sonra sıfırlanır.
Bakım
cron.sessionRetention (varsayılan 24h) yalıtılmış çalıştırma oturumu girdilerini budar. cron.runLog.maxBytes / cron.runLog.keepLines çalıştırma günlüğü dosyalarını otomatik olarak budar.
Sorun giderme
Komut sıralaması
openclaw statusopenclaw gateway statusopenclaw cron statusopenclaw cron listopenclaw cron runs --id <jobId> --limit 20openclaw system heartbeat lastopenclaw logs --followopenclaw doctorCron tetiklenmiyor
cron.enabledveOPENCLAW_SKIP_CRONenv var değerini kontrol edin.- Gateway'in kesintisiz çalıştığını doğrulayın.
cronzamanlamaları için saat dilimini (--tz) ana makine saat dilimiyle karşılaştırarak doğrulayın.- Çalıştırma çıktısındaki
reason: not-due, elle çalıştırmanınopenclaw cron run <jobId> --dueile kontrol edildiği ve işin henüz zamanı gelmediği anlamına gelir.
Cron tetiklendi ama teslimat yok
- Teslim modu
none, çalıştırıcı geri dönüş gönderimi beklenmediği anlamına gelir. Bir sohbet rotası kullanılabilir olduğunda aracı yine demessagearacıyla doğrudan gönderebilir. - Teslim hedefinin eksik/geçersiz olması (
channel/to), giden iletinin atlandığı anlamına gelir. - Matrix için, küçük harfe dönüştürülmüş
delivery.tooda kimliklerine sahip kopyalanmış veya eski işler başarısız olabilir, çünkü Matrix oda kimlikleri büyük/küçük harfe duyarlıdır. İşi Matrix'ten alınan tam!room:serverveyaroom:!room:serverdeğerine göre düzenleyin. - Kanal kimlik doğrulama hataları (
unauthorized,Forbidden), teslimatın kimlik bilgileri tarafından engellendiği anlamına gelir. - Yalıtılmış çalıştırma yalnızca sessiz token'ı (
NO_REPLY/no_reply) döndürürse, OpenClaw doğrudan giden teslimatı ve geri dönüş kuyruğa alınmış özet yolunu da bastırır; bu nedenle sohbete hiçbir şey geri gönderilmez. - Aracının kullanıcıya kendisinin mesaj göndermesi gerekiyorsa, işin kullanılabilir bir rotası olduğunu kontrol edin (
channel: "last"ile önceki bir sohbet ya da açık bir kanal/hedef).
Cron veya Heartbeat /new-style rollover işlemini engelliyor gibi görünüyor
- Günlük ve boşta sıfırlama güncelliği
updatedAtdeğerine dayanmaz; bkz. Oturum yönetimi. - Cron uyandırmaları, Heartbeat çalıştırmaları, exec bildirimleri ve Gateway kayıt işlemleri, yönlendirme/durum için oturum satırını güncelleyebilir; ancak
sessionStartedAtveyalastInteractionAtdeğerini uzatmaz. - Bu alanlar mevcut olmadan önce oluşturulmuş eski satırlar için OpenClaw, dosya hâlâ kullanılabilir olduğunda transcript JSONL oturum başlığından
sessionStartedAtdeğerini kurtarabilir.lastInteractionAtolmayan eski boşta satırlar, kurtarılan bu başlangıç zamanını boşta kalma temel değeri olarak kullanır.
Saat dilimi tuzakları
--tzolmadan Cron, gateway ana makine saat dilimini kullanır.- Saat dilimi olmayan
atzamanlamaları UTC olarak değerlendirilir. - Heartbeat
activeHours, yapılandırılmış saat dilimi çözümlemesini kullanır.
İlgili
- Otomasyon — tüm otomasyon mekanizmalarına genel bakış
- Arka Plan Görevleri — cron yürütmeleri için görev defteri
- Heartbeat — dönemsel ana oturum turları
- Saat Dilimi — saat dilimi yapılandırması