Automation and tasks
Zamanlanmış görevler
Cron, Gateway'in yerleşik zamanlayıcısıdır. İşleri kalıcı hale getirir, aracıyı 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 anımsatı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 list
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 işleminin içinde çalışır (modelin içinde değil).
- İş tanımları
~/.openclaw/cron/jobs.jsoniçinde kalıcı hale getirilir, böylece yeniden başlatmalar zamanlamaları kaybettirmez. - Çalışma zamanı yürütme durumu bunun yanında
~/.openclaw/cron/jobs-state.jsoniçinde kalıcı hale getirilir. Cron tanımlarını git içinde izliyorsanızjobs.jsondosyasını izleyin vejobs-state.jsondosyasını gitignore'a ekleyin. - Ayrımdan 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 değerlendirebilir. - Gateway çalışırken veya durdurulmuşken
jobs.jsondüzenlendiğinde OpenClaw, değişen zamanlama alanlarını bekleyen çalışma zamanı yuvası meta verileriyle karşılaştırır ve eskinextRunAtMsdeğerlerini temizler. Yalnızca biçimlendirme veya yalnızca anahtar sırası değişiklikleri bekleyen yuvayı korur. - Tüm Cron yürütmeleri arka plan görevi kayıtları oluşturur.
- Gateway başlatıldığında, süresi geçmiş izole aracı turu işleri hemen yeniden oynatılmak yerine kanal bağlanma 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) varsayılan olarak başarıdan sonra otomatik silinir. - İzole Cron çalıştırmaları, çalışma tamamlandığında
cron:<jobId>oturumları için izlenen tarayıcı sekmelerini/işlemlerini en iyi çabayla kapatır; böylece ayrılmış tarayıcı otomasyonu arkada yetim işlemler bırakmaz. - Dar Cron kendi kendini temizleme yetkisini alan izole Cron çalıştırmaları yine de zamanlayıcı durumunu ve geçerli işlerinin kendi kendine filtrelenmiş listesini okuyabilir; böylece durum/Heartbeat denetimleri daha geniş Cron değiştirme erişimi kazanmadan kendi zamanlamalarını inceleyebilir.
- İzole 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 nihai yanıttan hâlâ hiçbir alt aracı çalıştırması sorumlu değilse OpenClaw, teslimden önce gerçek sonucu almak için bir kez yeniden istem gönderir. - İzole Cron çalıştırmaları önce gömülü çalıştırmadan 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 engellenmiş bir komut başarılı çalıştırma olarak raporlanmaz. - İzole Cron çalıştırmaları, yanıt yükü üretilmediğinde bile çalıştırma düzeyindeki aracı hatalarını iş hatası olarak değerlendirir; böylece model/sağlayıcı hataları, işi başarılı sayarak temizlemek yerine hata sayaçlarını artırır ve hata bildirimlerini tetikler.
- İzole bir aracı turu işi
timeoutSecondsdeğerine ulaştığında Cron alttaki aracı çalıştırmasını iptal eder ve ona kısa bir temizleme penceresi verir. Çalıştırma boşalmazsa Gateway sahipli temizleme, 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şleme oturumunun arkasında kalmaz.
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 değerlendirilir. Yerel duvar saati zamanlaması için --tz America/New_York ekleyin.
Saat başında yinelenen ifadeler, yük sıçramalarını azaltmak için otomatik olarak 5 dakikaya kadar kademelendirilir. Kesin zamanlamayı zorlamak için --exact, açık bir pencere için --stagger 30s kullanın.
Ayın günü ve haftanın günü OR mantığını kullanır
Cron ifadeleri croner tarafından ayrıştırılır. Hem ayın günü hem de haftanın günü alanları joker değilse croner, alanlardan herhangi biri eşleştiğinde eşleşir — ikisi birden değil. 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 * 1
Bu, ayda 0-1 kez yerine yaklaşık 5-6 kez tetiklenir. OpenClaw burada Croner'ın varsayılan OR davranışını kullanır. Her iki koşulu da zorunlu kılmak için Croner'ın + haftanın günü değiştiricisini (0 9 15 * +1) kullanın veya bir alana göre zamanlayıp diğerini işinizin isteminde ya da komutunda denetleyin.
Yürütme stilleri
| Stil | --session değeri |
Şurada çalışır | En uygun olduğu işler |
|---|---|---|---|
| Ana oturum | main |
Sonraki Heartbeat turu | Anımsatıcılar, sistem olayları |
| İzole | isolated |
Ayrılmış cron:<jobId> |
Raporlar, arka plan işleri |
| Geçerli oturum | current |
Oluşturma anında bağlanır | Bağlam duyarlı yinelenen işler |
| Özel oturum | session:custom-id |
Kalıcı adlandırılmış oturum | Geçmiş üzerine kurulan iş akışları |
Ana oturum, izole 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. İzole işler, taze bir oturumla ayrılmış bir aracı turu çalıştırır. Özel oturumlar (session:xxx) bağlamı çalıştırmalar arasında kalıcı hale getirerek önceki özetlerin üzerine kurulan günlük toplantılar gibi iş akışlarını mümkün kılar.
İzole işler için 'taze oturum' ne anlama gelir?
İzole işler için "taze oturum", her çalıştırma için yeni bir transcript/oturum kimliği anlamına gelir. OpenClaw düşünme/hızlı/ayrıntılı ayarları, etiketler ve kullanıcı tarafından açıkça seçilmiş model/auth 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önlendirmesi, gönderme veya kuyruğa alma ilkesi, yükseltme, köken ya da ACP çalışma zamanı bağlaması. Yinelenen bir işin bilinçli olarak aynı konuşma bağlamı üzerine kurulması gerektiğinde current veya session:<id> kullanın.
Çalışma zamanı temizliği
İzole işler için çalışma zamanı kapatma artık o Cron oturumu için en iyi çabayla tarayıcı temizliğini içerir. Temizleme hataları yok sayılır, böylece gerçek Cron sonucu yine belirleyici olur.
İzole Cron çalıştırmaları, iş için oluşturulan paketlenmiş MCP çalışma zamanı örneklerini de paylaşılan çalışma zamanı temizleme yolu üzerinden elden çıkarır. Bu, ana oturum ve özel oturum MCP istemcilerinin kapatılma biçimiyle eşleşir; böylece izole Cron işleri çalıştırmalar arasında stdio alt işlemleri veya uzun ömürlü MCP bağlantıları sızdırmaz.
Alt aracı ve Discord teslimi
İzole Cron çalıştırmaları alt aracıları koordine ettiğinde teslimat, eski üst geçici metin yerine nihai alt çıktılarını da tercih eder. Alt aracı çalıştırmaları hâlâ sürüyorsa OpenClaw, bu kısmi üst güncellemeyi duyurmak yerine bastırır.
Yalnızca metin 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 ekler ve bileşenler atılmasın diye ayrı yükler olarak iletilmeye devam eder.
İzole işler için yük seçenekleri
--messagestringrequiredİstem metni (izole için zorunlu).
--modelstringModel geçersiz kılması; iş için seçilen izinli modeli kullanır.
--thinkingstringDüşünme düzeyi geçersiz kılması.
--light-contextbooleanÇalışma alanı bootstrap dosyası enjeksiyonunu atla.
--toolsstringİşin hangi araçları kullanabileceğini kısıtlayın; örneğin --tools exec,read.
--model, seçilen izinli modeli o işin birincil modeli olarak kullanır. Bu, sohbet oturumu /model geçersiz kılmasıyla aynı değildir: iş birincili başarısız olduğunda yapılandırılmış geri dönüş zincirleri yine uygulanır. İstenen modele izin verilmiyorsa veya model çözümlenemiyorsa Cron, işin aracı/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.
Eski veya elle düzenlenmiş jobs.json girişleri payload.model değerini "default", "null", boş bir dize veya JSON null olarak saklıyorsa openclaw doctor --fix çalıştırın. Doctor bu geçersiz kalıcı geçersiz kılma nöbetçilerini kaldırır; çalışma zamanı bunları geri dönüş takma adları olarak desteklemez. Normal aracı/varsayılan model seçimini kullanmak için model alanını atlayın.
Cron işleri yük düzeyinde fallbacks de taşıyabilir. Mevcut olduğunda 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ük ne de yapılandırılmış geri dönüşler varsa OpenClaw, aracı birincilinin gizli ek yeniden deneme hedefi olarak eklenmemesi için açık bir boş geri dönüş geçersiz kılması geçirir.
İzole işler için model seçimi önceliği şöyledir:
- Gmail hook model geçersiz kılması (çalıştırma Gmail'den geldiğinde ve bu geçersiz kılmaya izin verildiğinde)
- İş başına yük
model - Kullanıcı tarafından seçilmiş kayıtlı Cron oturumu model geçersiz kılması
- Aracı/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 izole Cron varsayılan olarak bunu kullanır. Kayıtlı oturum fastMode geçersiz kılması ise her iki yönde de yapılandırmaya üstün gelir.
İzole bir çalıştırma canlı model değiştirme devrine girerse Cron, değiştirilen sağlayıcı/model ile yeniden dener ve yeniden denemeden önce bu canlı seçimi etkin çalıştırma için kalıcı hale getirir. Değişiklik yeni bir auth profili de taşıyorsa Cron bu auth profili geçersiz kılmasını da etkin çalıştırma için kalıcı hale getirir. Yeniden denemeler sınırlıdır: ilk deneme artı 2 değiştirme yeniden denemesinden sonra Cron sonsuz döngüye girmek yerine iptal eder.
İzole bir Cron çalıştırması aracı ç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ıştırma, 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 çok sayıda zamanı gelmiş iş, istek fırtınası oluşturmak yerine tek küçük probu paylaşır. Atlanan sağlayıcı ön denetimi çalıştırmaları yürütme hatası geri çekilmesini artırmaz; yinelenen atlama bildirimleri istediğinizde failureAlert.includeSkipped etkinleştirin.
Teslimat ve çıktı
| Mod | Ne olur |
|---|---|
announce |
Ajan göndermediyse son metni hedefe fallback olarak teslim eder |
webhook |
Tamamlanan olay payload'unu bir URL'ye POST eder |
none |
Runner fallback 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/config çağıranlar delivery.threadId değerini string veya sayı olarak da geçebilir. Slack/Discord/Mattermost hedefleri açık prefix'ler kullanmalıdır (channel:<id>, user:<id>). Matrix oda ID'leri büyük/küçük harfe duyarlıdır; Matrix'ten gelen tam oda ID'sini veya room:!room:server biçimini kullanın.
Announce teslimi channel: "last" kullandığında veya channel değerini atladığında, telegram:123 gibi sağlayıcı prefix'li bir hedef, cron oturum geçmişine veya tek bir yapılandırılmış kanala fallback yapmadan önce kanalı seçebilir. Yalnızca yüklenen Plugin tarafından duyurulan prefix'ler sağlayıcı seçicileridir. delivery.channel açıkça belirtilmişse, hedef prefix'i aynı sağlayıcıyı adlandırmalıdır; örneğin, channel: "whatsapp" ile to: "telegram:123" kullanımı, WhatsApp'ın Telegram ID'sini telefon numarası olarak yorumlamasına izin vermek yerine reddedilir. channel:<id>, user:<id>, imessage:<handle> ve sms:<number> gibi hedef türü ve servis prefix'leri, 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 fallback announce adımını atlar. Aksi halde announce, webhook ve none yalnızca ajan turundan sonra runner'ın son yanıtla ne yapacağını kontrol eder.
Bir ajan etkin sohbetten yalıtılmış bir hatırlatıcı oluşturduğunda, OpenClaw fallback announce rotası için korunmuş canlı teslim hedefini saklar. Dahili oturum anahtarları küçük harfli olabilir; geçerli sohbet bağlamı kullanılabilir olduğunda sağlayıcı teslim hedefleri bu anahtarlardan yeniden oluşturulmaz.
Örtük announce teslimi, eskimiş hedefleri doğrulamak ve yeniden yönlendirmek için yapılandırılmış kanal allowlist'lerini kullanır. DM pairing-store onayları fallback otomasyon alıcıları değildir; zamanlanmış bir işin proaktif olarak bir DM'ye göndermesi gerekiyorsa delivery.to değerini ayarlayın veya kanal allowFrom girdisini yapılandırın.
Hata bildirimleri ayrı bir hedef yolunu izler:
cron.failureDestination, hata bildirimleri için global varsayılanı ayarlar.job.delivery.failureDestination, bunu iş bazında geçersiz kılar.- Hiçbiri ayarlanmamışsa ve iş zaten
announceüzerinden teslim ediyorsa, hata bildirimleri artık birincil announce hedefine fallback yapar. delivery.failureDestination, birincil teslim moduwebhookolmadığı sürece yalnızcasessionTarget="isolated"işlerinde desteklenir.failureAlert.includeSkipped: true, bir işi veya global cron uyarı politikasını yinelenen atlanmış çalıştırma uyarılarına dahil eder. Atlanmış çalıştırmalar ayrı bir ardışık atlama sayacı tutar, bu nedenle yürütme hatası backoff'unu etkilemez.
CLI örnekleri
Tek seferlik hatırlatıcı
openclaw cron add \
--name "Calendar check" \
--at "20m" \
--session main \
--system-event "Next heartbeat: check calendar." \
--wake now
Yinelenen 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 \
--announce
Webhook'lar
Gateway, dış tetikleyiciler için HTTP Webhook uç noktalarını sunabilir. Config içinde etkinleştirin:
{
hooks: {
enabled: true,
token: "shared-secret",
path: "/hooks",
},
}
Kimlik doğrulama
Her istek hook token'ını header üzerinden içermelidir:
Authorization: Bearer <token>(önerilir)x-openclaw-token: <token>
Query-string token'ları reddedilir.
POST /hooks/wake
Ana oturum için bir sistem olayını kuyruğa alır:
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ı.
modestringnow veya next-heartbeat.
POST /hooks/agent
Yalıtılmış bir ajan turu çalıştırır:
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ı, config içindeki hooks.mappings üzerinden çözümlenir. Eşlemeler, rastgele payload'ları şablonlar veya kod dönüşümleriyle wake veya agent eylemlerine dönüştürebilir.
Gmail PubSub entegrasyonu
Gmail gelen kutusu tetikleyicilerini Google PubSub üzerinden OpenClaw'a bağlayın.
Sihirbaz kurulumu (önerilir)
openclaw webhooks gmail setup --account [email protected]
Bu, hooks.gmail config'ini yazar, Gmail preset'ini 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 açılışta gog gmail watch serve başlatır ve watch'ı otomatik olarak yeniler. Devre dışı bırakmak için OPENCLAW_SKIP_GMAIL_WATCHER=1 ayarlayın.
Manuel tek seferlik kurulum
GCP projesini seçin
gog tarafından kullanılan OAuth istemcisine sahip GCP projesini seçin:
gcloud auth login
gcloud config set project <project-id>
gcloud services enable gmail.googleapis.com pubsub.googleapis.com
Konu oluşturun ve Gmail push erişimi verin
gcloud pubsub topics create gog-gmail-watch
gcloud pubsub topics add-iam-policy-binding gog-gmail-watch \
--member=serviceAccount:[email protected] \
--role=roles/pubsub.publisher
Watch'ı başlatın
gog gmail watch start \
--account [email protected] \
--label INBOX \
--topic projects/<project-id>/topics/gog-gmail-watch
Gmail model geçersiz kılması
{
hooks: {
gmail: {
model: "openrouter/meta-llama/llama-3.3-70b-instruct:free",
thinking: "off",
},
},
}
İşleri yönetme
# List all jobs
openclaw cron list
# Show one job, including resolved delivery route
openclaw cron show <jobId>
# Edit a job
openclaw cron edit <jobId> --message "Updated prompt" --model "opus"
# Force run a job now
openclaw cron run <jobId>
# Run only if due
openclaw cron run <jobId> --due
# View run history
openclaw cron runs --id <jobId> --limit 50
# Delete a job
openclaw cron remove <jobId>
# Agent selection (multi-agent setups)
openclaw cron add --name "Ops sweep" --cron "0 6 * * *" --session isolated --message "Check ops queue" --agent ops
openclaw cron edit <jobId> --clear-agent
Yapı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 dispatch'i hem de yalıtılmış ajan turu yürütmesini sınırlar. Yalıtılmış cron ajan turları, kuyruk içinde özel cron-nested yürütme lane'ini kullanır; bu nedenle bu değeri artırmak, bağımsız cron LLM çalıştırmalarının yalnızca dış cron wrapper'larını başlatmak yerine paralel ilerlemesini sağlar. Paylaşılan cron dışı nested lane'i bu ayarla genişletilmez.
Runtime durum sidecar'ı cron.store değerinden türetilir: ~/clawd/cron/jobs.json gibi bir .json store, ~/clawd/cron/jobs-state.json kullanır; .json soneki olmayan bir store yolu ise -state.json ekler.
jobs.json dosyasını elle düzenlerseniz, jobs-state.json dosyasını kaynak kontrolü dışında bırakın. OpenClaw bu sidecar'ı bekleyen slot'lar, etkin işaretleyiciler, son çalıştırma metadata'sı ve harici olarak düzenlenen bir işin yeni bir nextRunAtMs değerine ne zaman ihtiyaç duyduğunu scheduler'a 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 (rate limit, overload, ağ, sunucu hatası), üstel backoff ile en fazla 3 kez yeniden denenir. Kalıcı hatalar hemen devre dışı bırakır.
Yinelenen yeniden deneme: yeniden denemeler arasında üstel backoff (30s ile 60m arası). Backoff bir sonraki başarılı çalıştırmadan sonra sıfırlanır.
Bakım
cron.sessionRetention (varsayılan 24h) yalıtılmış çalıştırma oturumu girdilerini temizler. cron.runLog.maxBytes / cron.runLog.keepLines çalıştırma günlüğü dosyalarını otomatik temizler.
Sorun giderme
Komut sıralaması
openclaw status
openclaw gateway status
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw system heartbeat last
openclaw logs --follow
openclaw doctor
Cron tetiklenmiyor
cron.enabledveOPENCLAW_SKIP_CRONenv var değerini kontrol edin.- Gateway'in kesintisiz çalıştığını doğrulayın.
cronzamanlamaları için timezone (--tz) ile host timezone'unu karşılaştırın.- Çalıştırma çıktısındaki
reason: not-due, manuel çalıştırmanınopenclaw cron run <jobId> --dueile kontrol edildiği ve işin henüz zamanı gelmediği anlamına gelir.
Cron tetiklendi ancak teslimat yok
- Teslimat modu
none, çalıştırıcı geri dönüş gönderiminin beklenmediği anlamına gelir. Bir sohbet rotası kullanılabiliyorsa aracı yine demessagearacıyla doğrudan gönderebilir. - Teslimat hedefinin eksik/geçersiz olması (
channel/to), giden teslimatın atlandığı anlamına gelir. - Matrix için, küçük harfe çevrilmiş
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 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 belirteci (
NO_REPLY/no_reply) döndürürse OpenClaw doğrudan giden teslimatı bastırır ve geri dönüş olarak kuyruğa alınan ö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 rotaya sahip olduğunu denetleyin (
channel: "last"ile önceki bir sohbet veya açık bir kanal/hedef).
Cron veya Heartbeat /new tarzı devretmeyi 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 var olmadan önce oluşturulmuş eski satırlar için OpenClaw, dosya hâlâ kullanılabiliyorsa
sessionStartedAtdeğerini transcript JSONL oturum başlığından kurtarabilir.lastInteractionAtolmayan eski boşta satırları, kurtarılan bu başlangıç zamanını boşta kalma başlangıç noktası olarak kullanır.
Zaman dilimi dikkat edilmesi gerekenler
--tzolmadan Cron, Gateway ana makinesinin zaman dilimini kullanır.- Zaman dilimi olmadan yapılan
atzamanlamaları UTC olarak değerlendirilir. - Heartbeat
activeHours, yapılandırılmış zaman dilimi çözümlemesini kullanır.
İlgili
- Otomasyon ve Görevler — tüm otomasyon mekanizmalarına genel bakış
- Arka Plan Görevleri — cron yürütmeleri için görev defteri
- Heartbeat — periyodik ana oturum turları
- Zaman Dilimi — zaman dilimi yapılandırması