CLI commands

Cron

openclaw cron

Kelola tugas cron untuk penjadwal Gateway.

Sesi

--session menerima main, isolated, current, atau session:<id>.

Kunci sesi
  • main mengikat ke sesi utama agen.
  • isolated membuat transkrip baru dan id sesi baru untuk setiap proses.
  • current mengikat ke sesi aktif pada waktu pembuatan.
  • session:<id> menyematkan ke kunci sesi persisten yang eksplisit.
Semantik sesi terisolasi

Proses terisolasi mengatur ulang konteks percakapan sekitar. Perutean channel dan grup, kebijakan kirim/antre, elevasi, asal, dan pengikatan runtime ACP diatur ulang untuk proses baru. Preferensi aman dan model yang dipilih pengguna secara eksplisit atau override autentikasi dapat dibawa antarproses.

Pengiriman

openclaw cron list dan openclaw cron show <job-id> meninjau rute pengiriman yang diselesaikan. Untuk channel: "last", pratinjau menunjukkan apakah rute diselesaikan dari sesi utama atau saat ini, atau akan gagal tertutup.

Target berprefiks penyedia dapat memperjelas channel pengumuman yang belum terselesaikan. Misalnya, to: "telegram:123" memilih Telegram saat delivery.channel dihilangkan atau last. Hanya prefiks yang diiklankan oleh plugin yang dimuat yang menjadi pemilih penyedia. Jika delivery.channel eksplisit, prefiks harus cocok dengan channel tersebut; channel: "whatsapp" dengan to: "telegram:123" ditolak. Prefiks layanan seperti imessage: dan sms: tetap menjadi sintaks target yang dimiliki channel.

Kepemilikan pengiriman

Pengiriman chat cron terisolasi dibagi antara agen dan runner:

  • Agen dapat mengirim langsung menggunakan alat message saat rute chat tersedia.
  • announce mengirim fallback balasan akhir hanya saat agen tidak mengirim langsung ke target yang diselesaikan.
  • webhook memposting payload yang selesai ke URL.
  • none menonaktifkan pengiriman fallback runner.

--announce adalah pengiriman fallback runner untuk balasan akhir. --no-deliver menonaktifkan fallback tersebut tetapi tidak menghapus alat message agen saat rute chat tersedia.

Pengingat yang dibuat dari chat aktif mempertahankan target pengiriman chat langsung untuk pengiriman pengumuman fallback. Kunci sesi internal mungkin huruf kecil; jangan gunakan sebagai sumber kebenaran untuk ID penyedia yang peka huruf besar/kecil seperti ID ruang Matrix.

Pengiriman kegagalan

Notifikasi kegagalan diselesaikan dalam urutan ini:

  1. delivery.failureDestination pada tugas.
  2. cron.failureDestination global.
  3. Target pengumuman utama tugas (saat tidak ada tujuan kegagalan eksplisit yang ditetapkan).

Catatan: proses cron terisolasi memperlakukan kegagalan agen tingkat proses sebagai error tugas bahkan saat tidak ada payload balasan yang dihasilkan, sehingga kegagalan model/penyedia tetap menambah penghitung error dan memicu notifikasi kegagalan.

Jika proses terisolasi habis waktu sebelum permintaan model pertama, openclaw cron show dan openclaw cron runs menyertakan error khusus fase seperti setup timed out before runner start atau stalled before first model call (last phase: context-engine). Untuk penyedia berbasis CLI, watchdog pra-model tetap aktif hingga giliran CLI eksternal dimulai, sehingga kemacetan pencarian sesi, hook, autentikasi, prompt, dan penyiapan CLI dilaporkan sebagai kegagalan cron pra-model.

Penjadwalan

Tugas satu kali

--at <datetime> menjadwalkan proses satu kali. Datetime tanpa offset diperlakukan sebagai UTC kecuali Anda juga meneruskan --tz <iana>, yang menafsirkan waktu jam-dinding dalam zona waktu yang diberikan.

Tugas berulang

Tugas berulang menggunakan backoff percobaan ulang eksponensial setelah error berturut-turut: 30d, 1m, 5m, 15m, 60m. Jadwal kembali normal setelah proses berikutnya berhasil.

Proses yang dilewati dilacak terpisah dari error eksekusi. Proses tersebut tidak memengaruhi backoff percobaan ulang, tetapi openclaw cron edit <job-id> --failure-alert-include-skipped dapat mengikutsertakan peringatan kegagalan ke notifikasi proses dilewati yang berulang.

Untuk tugas terisolasi yang menargetkan penyedia model terkonfigurasi lokal, cron menjalankan preflight penyedia ringan sebelum memulai giliran agen. Penyedia api: "ollama" local loopback, jaringan privat, dan .local diperiksa di /api/tags; penyedia kompatibel OpenAI lokal seperti vLLM, SGLang, dan LM Studio diperiksa di /models. Jika endpoint tidak dapat dijangkau, proses dicatat sebagai skipped dan dicoba ulang pada jadwal berikutnya; endpoint mati yang cocok di-cache selama 5 menit untuk menghindari banyak tugas menghantam server lokal yang sama.

Catatan: definisi tugas cron berada di jobs.json, sementara status runtime yang tertunda berada di jobs-state.json. Jika jobs.json diedit secara eksternal, Gateway memuat ulang jadwal yang berubah dan membersihkan slot tertunda yang usang; penulisan ulang format saja tidak membersihkan slot tertunda.

Proses manual

openclaw cron run kembali segera setelah proses manual dimasukkan ke antrean. Respons berhasil menyertakan { ok: true, enqueued: true, runId }. Gunakan openclaw cron runs --id <job-id> untuk mengikuti hasil akhirnya.

Model

cron add|edit --model <ref> memilih model yang diizinkan untuk tugas.

Cron --model adalah utama tugas, bukan override /model sesi chat. Artinya:

  • Fallback model terkonfigurasi tetap berlaku saat model tugas yang dipilih gagal.
  • Payload per tugas fallbacks menggantikan daftar fallback terkonfigurasi saat ada.
  • Daftar fallback per tugas kosong (fallbacks: [] dalam payload/API tugas) membuat proses cron ketat.
  • Saat tugas memiliki --model tetapi tidak ada daftar fallback yang dikonfigurasi, OpenClaw meneruskan override fallback kosong eksplisit sehingga model utama agen tidak ditambahkan sebagai target percobaan ulang tersembunyi.

Prioritas model cron terisolasi

Cron terisolasi menyelesaikan model aktif dalam urutan ini:

  1. Override hook Gmail.
  2. --model per tugas.
  3. Override model sesi cron tersimpan (saat pengguna memilihnya).
  4. Pemilihan model agen atau default.

Mode cepat

Mode cepat cron terisolasi mengikuti pemilihan model langsung yang diselesaikan. Konfigurasi model params.fastMode berlaku secara default, tetapi override fastMode sesi tersimpan tetap mengalahkan konfigurasi.

Percobaan ulang peralihan model langsung

Jika proses terisolasi melempar LiveSessionModelSwitchError, cron mempertahankan penyedia dan model yang dialihkan (serta override profil autentikasi yang dialihkan saat ada) untuk proses aktif sebelum mencoba ulang. Loop percobaan ulang luar dibatasi dua percobaan ulang peralihan setelah percobaan awal, lalu membatalkan alih-alih berulang selamanya.

Keluaran proses dan penolakan

Penekanan pengakuan usang

Giliran cron terisolasi menekan balasan yang hanya berupa pengakuan usang. Jika hasil pertama hanya pembaruan status sementara dan tidak ada proses subagen turunan yang bertanggung jawab atas jawaban akhirnya, cron melakukan prompt ulang sekali untuk hasil nyata sebelum pengiriman.

Penekanan token senyap

Jika proses cron terisolasi hanya mengembalikan token senyap (NO_REPLY atau no_reply), cron menekan pengiriman keluar langsung dan jalur ringkasan antrean fallback, sehingga tidak ada yang diposting kembali ke chat.

Penolakan terstruktur

Proses cron terisolasi mengutamakan metadata penolakan eksekusi terstruktur dari proses tertanam, lalu fallback ke penanda penolakan yang dikenal dalam keluaran akhir, seperti SYSTEM_RUN_DENIED, INVALID_REQUEST, dan frasa penolakan pengikatan persetujuan.

cron list dan riwayat proses menampilkan alasan penolakan alih-alih melaporkan perintah yang diblokir sebagai ok.

Retensi

Retensi dan pemangkasan dikontrol dalam konfigurasi:

  • cron.sessionRetention (default 24h) memangkas sesi proses terisolasi yang selesai.
  • cron.runLog.maxBytes dan cron.runLog.keepLines memangkas ~/.openclaw/cron/runs/<jobId>.jsonl.

Memigrasikan tugas lama

Edit umum

Perbarui pengaturan pengiriman tanpa mengubah pesan:

bash
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"

Nonaktifkan pengiriman untuk tugas terisolasi:

bash
openclaw cron edit <job-id> --no-deliver

Aktifkan konteks bootstrap ringan untuk tugas terisolasi:

bash
openclaw cron edit <job-id> --light-context

Umumkan ke channel tertentu:

bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"

Umumkan ke topik forum Telegram:

bash
openclaw cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42

Buat tugas terisolasi dengan konteks bootstrap ringan:

bash
openclaw cron add \  --name "Lightweight morning brief" \  --cron "0 7 * * *" \  --session isolated \  --message "Summarize overnight updates." \  --light-context \  --no-deliver

--light-context hanya berlaku untuk tugas giliran agen terisolasi. Untuk proses cron, mode ringan menjaga konteks bootstrap tetap kosong alih-alih menyuntikkan set bootstrap workspace penuh.

Perintah admin umum

Proses manual dan inspeksi:

bash
openclaw cron listopenclaw cron list --agent opsopenclaw cron get <job-id>openclaw cron show <job-id>openclaw cron run <job-id>openclaw cron run <job-id> --dueopenclaw cron runs --id <job-id> --limit 50

openclaw cron list menampilkan semua tugas yang cocok secara default. Teruskan --agent <id> untuk menampilkan hanya tugas yang id agen ternormalisasi efektifnya cocok; tugas tanpa id agen tersimpan dihitung sebagai agen default yang dikonfigurasi.

openclaw cron get <job-id> mengembalikan JSON tugas tersimpan secara langsung. Gunakan cron show <job-id> saat Anda menginginkan tampilan yang mudah dibaca manusia dengan pratinjau rute pengiriman.

cron list --json dan cron show <job-id> --json menyertakan kolom status tingkat atas pada setiap tugas, dihitung dari enabled, state.runningAtMs, dan state.lastRunStatus. Nilai: disabled, running, ok, error, skipped, atau idle. Ini mencerminkan kolom status yang mudah dibaca manusia sehingga alat eksternal dapat membaca status tugas tanpa menghitung ulang.

Entri cron runs menyertakan diagnostik pengiriman dengan target cron yang dimaksud, target yang diselesaikan, pengiriman alat pesan, penggunaan fallback, dan status terkirim.

Penargetan ulang agen dan sesi:

bash
openclaw cron edit <job-id> --agent opsopenclaw cron edit <job-id> --clear-agentopenclaw cron edit <job-id> --session currentopenclaw cron edit <job-id> --session "session:daily-brief"

openclaw cron add memperingatkan saat --agent dihilangkan pada tugas giliran agen dan fallback ke agen default (main). Teruskan --agent <id> pada waktu pembuatan untuk menyematkan agen tertentu.

Penyesuaian pengiriman:

bash
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"openclaw cron edit <job-id> --best-effort-deliveropenclaw cron edit <job-id> --no-best-effort-deliveropenclaw cron edit <job-id> --no-deliver

Terkait

Was this useful?