CLI commands
Cron
openclaw cron
จัดการงาน Cron สำหรับตัวกำหนดเวลาของ Gateway
สร้างงานอย่างรวดเร็ว
openclaw cron create เป็นนามแฝงของ openclaw cron add สำหรับงานใหม่ ให้ใส่กำหนดเวลาก่อน แล้วตามด้วยพรอมต์:
openclaw cron create "0 7 * * *" \ "สรุปการอัปเดตในช่วงข้ามคืน" \ --name "สรุปข่าวเช้า" \ --agent opsใช้ --webhook <url> เมื่อต้องการให้งานส่งเพย์โหลดที่เสร็จแล้วด้วย POST แทนการส่งไปยังเป้าหมายแชต:
openclaw cron create "0 18 * * 1-5" \ "สรุปการดีพลอยของวันนี้เป็น JSON" \ --name "สรุปการดีพลอย" \ --webhook "https://example.invalid/openclaw/cron"ใช้ --command สำหรับงานแบบเชลล์ที่ให้ผลลัพธ์แน่นอน ซึ่งทำงานภายใน Cron ของ OpenClaw โดยไม่เริ่มการเรียกใช้เอเจนต์/โมเดลแบบแยก:
openclaw cron create "*/15 * * * *" \ --name "ตรวจสอบความลึกของคิว" \ --command "scripts/check-queue.sh" \ --command-cwd "/srv/app" \ --announce \ --channel telegram \ --to "-1001234567890"--command <shell> จัดเก็บ argv: ["sh", "-lc", <shell>] ใช้ --command-argv '["node","scripts/report.mjs"]' สำหรับการดำเนินการ argv อย่างแม่นยำ งานคำสั่งจะบันทึก stdout/stderr เก็บประวัติ Cron ตามปกติ และกำหนดเส้นทางเอาต์พุตผ่านโหมดการส่งเดียวกับงานแบบแยก ได้แก่ announce, webhook หรือ none คำสั่งที่พิมพ์เฉพาะ NO_REPLY จะถูกระงับ
เซสชัน
--session รองรับ main, isolated, current หรือ session:<id>
คีย์เซสชัน
mainผูกกับเซสชันหลักของเอเจนต์isolatedสร้างทรานสคริปต์และรหัสเซสชันใหม่สำหรับการเรียกใช้แต่ละครั้งcurrentผูกกับเซสชันที่ใช้งานอยู่ในขณะที่สร้างsession:<id>ตรึงกับคีย์เซสชันถาวรที่ระบุไว้อย่างชัดเจน
ความหมายของเซสชันแบบแยก
การเรียกใช้แบบแยกจะรีเซ็ตบริบทการสนทนาโดยรอบ การกำหนดเส้นทางช่องและกลุ่ม นโยบายการส่ง/การเข้าคิว การยกระดับ สิ่งที่มา และการผูกกับรันไทม์ ACP จะถูกรีเซ็ตสำหรับการเรียกใช้ใหม่ ค่ากำหนดที่ปลอดภัยและการแทนที่โมเดลหรือการตรวจสอบสิทธิ์ที่ผู้ใช้เลือกไว้อย่างชัดเจนสามารถส่งต่อระหว่างการเรียกใช้ได้
การส่ง
openclaw cron list และ openclaw cron show <job-id> แสดงตัวอย่างเส้นทางการส่งที่แก้ไขแล้ว สำหรับ channel: "last" ตัวอย่างจะแสดงว่าเส้นทางได้รับการแก้ไขจากเซสชันหลักหรือเซสชันปัจจุบัน หรือจะล้มเหลวแบบปิด
เป้าหมายที่มีคำนำหน้าผู้ให้บริการสามารถแยกความกำกวมของช่องประกาศที่ยังไม่ได้รับการแก้ไขได้ ตัวอย่างเช่น to: "telegram:123" จะเลือก Telegram เมื่อไม่ได้ระบุ delivery.channel หรือเป็น last เฉพาะคำนำหน้าที่ Plugin ที่โหลดอยู่ประกาศรองรับเท่านั้นที่เป็นตัวเลือกผู้ให้บริการ หากระบุ delivery.channel อย่างชัดเจน คำนำหน้าต้องตรงกับช่องนั้น ระบบจะปฏิเสธ channel: "whatsapp" ที่ใช้ร่วมกับ to: "telegram:123" คำนำหน้าบริการ เช่น imessage: และ sms: ยังคงเป็นไวยากรณ์เป้าหมายที่ช่องเป็นเจ้าของ
ความเป็นเจ้าของการส่ง
การส่งแชต Cron แบบแยกเป็นความรับผิดชอบร่วมกันระหว่างเอเจนต์และตัวเรียกใช้:
- เอเจนต์สามารถส่งโดยตรงโดยใช้เครื่องมือ
messageเมื่อมีเส้นทางแชต announceจะส่งคำตอบสุดท้ายแบบสำรองเฉพาะเมื่อเอเจนต์ไม่ได้ส่งโดยตรงไปยังเป้าหมายที่แก้ไขแล้วwebhookส่งเพย์โหลดที่เสร็จแล้วไปยัง URLnoneปิดใช้การส่งสำรองของตัวเรียกใช้
ใช้ cron add|create --webhook <url> หรือ cron edit <job-id> --webhook <url> เพื่อตั้งค่าการส่ง Webhook อย่าใช้ --webhook ร่วมกับแฟล็กการส่งแชต เช่น --announce, --no-deliver, --channel, --to, --thread-id หรือ --account
cron edit <job-id> สามารถยกเลิกการตั้งค่าฟิลด์การกำหนดเส้นทางการส่งแต่ละรายการได้ด้วย --clear-channel, --clear-to, --clear-thread-id และ --clear-account (แต่ละรายการจะถูกปฏิเสธเมื่อใช้ร่วมกับแฟล็กตั้งค่าที่ตรงกัน) ต่างจาก --no-deliver ซึ่งเพียงปิดใช้การส่งสำรองของตัวเรียกใช้ ตัวเลือกเหล่านี้จะลบฟิลด์ที่จัดเก็บไว้ เพื่อให้งานกลับมาแก้ไขส่วนนั้นของเส้นทางจากค่าเริ่มต้นอีกครั้ง
--announce คือการส่งคำตอบสุดท้ายแบบสำรองโดยตัวเรียกใช้ --no-deliver ปิดใช้การส่งสำรองนั้น แต่ไม่ลบเครื่องมือ message ของเอเจนต์เมื่อมีเส้นทางแชต
การแจ้งเตือนที่สร้างจากแชตซึ่งกำลังใช้งานจะรักษาเป้าหมายการส่งของแชตปัจจุบันไว้สำหรับการส่งประกาศสำรอง คีย์เซสชันภายในอาจเป็นตัวพิมพ์เล็ก อย่าใช้คีย์เหล่านี้เป็นแหล่งข้อมูลจริงสำหรับรหัสผู้ให้บริการที่แยกแยะตัวพิมพ์เล็กและใหญ่ เช่น รหัสห้อง Matrix
การส่งเมื่อเกิดความล้มเหลว
การแจ้งเตือนความล้มเหลวจะได้รับการแก้ไขตามลำดับนี้:
delivery.failureDestinationในงานcron.failureDestinationส่วนกลาง- เป้าหมายประกาศหลักของงาน (เมื่อไม่มีรายการใดข้างต้นแก้ไขเป็นปลายทางที่ชัดเจน)
การเรียกใช้ Cron แบบแยกจะถือว่าความล้มเหลวระดับการเรียกใช้ของเอเจนต์เป็นข้อผิดพลาดของงาน แม้ว่าจะไม่มีการสร้างเพย์โหลดคำตอบ ดังนั้นความล้มเหลวของโมเดล/ผู้ให้บริการยังคงเพิ่มตัวนับข้อผิดพลาดและทริกเกอร์การแจ้งเตือนความล้มเหลว
งานคำสั่ง Cron จะไม่เริ่มเทิร์นของเอเจนต์แบบแยก รหัสออกเป็นศูนย์จะบันทึก ok ส่วนรหัสออกที่ไม่ใช่ศูนย์ สัญญาณ การหมดเวลา หรือการหมดเวลาเนื่องจากไม่มีเอาต์พุตจะบันทึก error และอาจทริกเกอร์เส้นทางการแจ้งเตือนความล้มเหลวเดียวกัน
หากการเรียกใช้แบบแยกหมดเวลาก่อนคำขอโมเดลครั้งแรก openclaw cron show และ openclaw cron runs จะรวมข้อผิดพลาดเฉพาะเฟส เช่น setup timed out before runner start หรือข้อความการหยุดชะงักที่ระบุเฟสเริ่มต้นล่าสุดที่ทราบ (เช่น context-engine) สำหรับผู้ให้บริการที่ใช้ CLI ตัวเฝ้าระวังก่อนเรียกโมเดลจะยังทำงานอยู่จนกว่าเทิร์นของ CLI ภายนอกจะเริ่มต้น ดังนั้นการหยุดชะงักของการค้นหาเซสชัน ฮุก การตรวจสอบสิทธิ์ พรอมต์ และการตั้งค่า CLI จะถูกรายงานเป็นความล้มเหลวของ Cron ก่อนเรียกโมเดล
การกำหนดเวลา
งานแบบครั้งเดียว
--at <datetime> กำหนดเวลาการเรียกใช้แบบครั้งเดียว วันและเวลาที่ไม่มีออฟเซ็ตจะถือว่าเป็น UTC เว้นแต่จะส่ง --tz <iana> มาด้วย ซึ่งจะตีความเวลาตามนาฬิกาในเขตเวลาที่กำหนด
งานที่เกิดซ้ำ
งานที่เกิดซ้ำใช้การหน่วงเวลาก่อนลองใหม่แบบทวีคูณหลังเกิดข้อผิดพลาดต่อเนื่อง: 30s, 1m, 5m, 15m, 60m กำหนดเวลาจะกลับสู่ปกติหลังการเรียกใช้ที่สำเร็จครั้งถัดไป
การเรียกใช้ที่ข้ามจะถูกติดตามแยกจากข้อผิดพลาดในการดำเนินการ โดยไม่ส่งผลต่อการหน่วงเวลาก่อนลองใหม่ แต่ openclaw cron edit <job-id> --failure-alert-include-skipped สามารถกำหนดให้การแจ้งเตือนความล้มเหลวรวมการแจ้งเตือนการข้ามการเรียกใช้ซ้ำได้
สำหรับงานแบบแยกที่กำหนดเป้าหมายเป็นผู้ให้บริการโมเดลภายในที่กำหนดค่าไว้ (URL ฐานบนลูปแบ็ก เครือข่ายส่วนตัว หรือ .local) Cron จะตรวจสอบผู้ให้บริการเบื้องต้นแบบเบาก่อนเริ่มเทิร์นของเอเจนต์: ผู้ให้บริการ api: "ollama" จะถูกตรวจสอบที่ /api/tags; ผู้ให้บริการภายในรายอื่นที่เข้ากันได้กับ OpenAI (api: "openai-completions" เช่น vLLM, SGLang, LM Studio) จะถูกตรวจสอบที่ /models หากเข้าถึงเอนด์พอยต์ไม่ได้ การเรียกใช้จะถูกบันทึกเป็น skipped และลองใหม่ตามกำหนดเวลาภายหลัง ผลการตรวจสอบการเข้าถึงจะถูกแคชแยกตามเอนด์พอยต์เป็นเวลา 5 นาที เพื่อไม่ให้งานจำนวนมากที่ใช้เซิร์ฟเวอร์ภายในเดียวกันกระหน่ำตรวจสอบซ้ำ
งาน Cron สถานะรันไทม์ที่รอดำเนินการ และประวัติการเรียกใช้จะอยู่ในฐานข้อมูลสถานะ SQLite ที่ใช้ร่วมกัน ไฟล์ jobs.json, <name>-state.json และ runs/*.jsonl แบบเดิมจะถูกนำเข้าหนึ่งครั้งและเปลี่ยนชื่อโดยเพิ่มส่วนต่อท้าย .migrated หลังจากนำเข้าแล้ว ให้แก้ไขกำหนดเวลาด้วย openclaw cron add|edit|remove แทนการแก้ไขไฟล์ JSON
การเรียกใช้ด้วยตนเอง
openclaw cron run <job-id> บังคับเรียกใช้โดยค่าเริ่มต้น และส่งคืนทันทีที่การเรียกใช้ด้วยตนเองถูกเพิ่มลงในคิว การตอบกลับที่สำเร็จจะมี { ok: true, enqueued: true, runId } ใช้ runId ที่ส่งคืนมาเพื่อตรวจสอบผลลัพธ์ในภายหลัง:
openclaw cron run <job-id>openclaw cron runs --id <job-id> --run-id <run-id>เพิ่ม --wait เมื่อสคริปต์ควรบล็อกจนกว่าการเรียกใช้ที่เข้าคิวนั้นจะบันทึกสถานะปลายทาง:
openclaw cron run <job-id> --wait --wait-timeout 10m --poll-interval 2sเมื่อใช้ --wait CLI จะยังเรียก cron.run ก่อน จากนั้นจึงสำรวจ cron.runs สำหรับ runId ที่ส่งคืนมา คำสั่งจะออกด้วย 0 เฉพาะเมื่อการเรียกใช้เสร็จสิ้นด้วยสถานะ ok คำสั่งจะออกด้วยค่าที่ไม่ใช่ศูนย์เมื่อการเรียกใช้เสร็จสิ้นด้วย error หรือ skipped เมื่อการตอบกลับของ Gateway ไม่มี runId หรือเมื่อ --wait-timeout หมดอายุ (ค่าเริ่มต้นคือ 10m และสำรวจทุก 2s โดยค่าเริ่มต้น) --poll-interval ต้องมากกว่าศูนย์
โมเดล
cron add|edit --model <ref> เลือกโมเดลที่อนุญาตสำหรับงาน cron add|edit --fallbacks <list> ตั้งค่าโมเดลสำรองแยกตามงาน เช่น --fallbacks openrouter/gpt-4.1-mini,openai/gpt-5; ส่ง --fallbacks "" สำหรับการเรียกใช้แบบเข้มงวดที่ไม่มีโมเดลสำรอง cron edit <job-id> --clear-fallbacks ลบการแทนที่โมเดลสำรองแยกตามงาน cron edit <job-id> --clear-model ลบการแทนที่โมเดลแยกตามงาน เพื่อให้งานเป็นไปตามลำดับความสำคัญในการเลือกโมเดล Cron ตามปกติ (การแทนที่ในเซสชัน Cron ที่จัดเก็บไว้ หากมี มิฉะนั้นใช้โมเดลของเอเจนต์/ค่าเริ่มต้น) และไม่สามารถใช้ร่วมกับ --model ได้ cron add|edit --thinking <level> ตั้งค่าการแทนที่ระดับการคิดแยกตามงาน ส่วน cron edit <job-id> --clear-thinking จะลบการแทนที่ดังกล่าวเพื่อให้งานเป็นไปตามลำดับความสำคัญของระดับการคิด Cron ตามปกติ และไม่สามารถใช้ร่วมกับ --thinking ได้
--model ของ Cron เป็น โมเดลหลักของงาน ไม่ใช่การแทนที่ /model ของเซสชันแชต ซึ่งหมายความว่า:
- โมเดลสำรองที่กำหนดค่าไว้ยังคงใช้ได้เมื่อโมเดลที่เลือกสำหรับงานล้มเหลว
fallbacksในเพย์โหลดแยกตามงานจะแทนที่รายการโมเดลสำรองที่กำหนดค่าไว้เมื่อมีการระบุ- รายการโมเดลสำรองแยกตามงานที่ว่างเปล่า (
--fallbacks ""หรือfallbacks: []ในเพย์โหลด/API ของงาน) ทำให้การเรียกใช้ Cron เป็นแบบเข้มงวด - เมื่องานมี
--modelแต่ไม่ได้กำหนดค่ารายการโมเดลสำรอง OpenClaw จะส่งการแทนที่โมเดลสำรองแบบว่างอย่างชัดเจน เพื่อไม่ให้โมเดลหลักของเอเจนต์ถูกเพิ่มเป็นเป้าหมายลองใหม่โดยซ่อนอยู่ - การตรวจสอบผู้ให้บริการภายในเบื้องต้นจะตรวจสอบโมเดลสำรองที่กำหนดค่าไว้ก่อนทำเครื่องหมายการเรียกใช้ Cron เป็น
skipped
openclaw doctor รายงานงานที่ตั้งค่า payload.model ไว้แล้ว รวมถึงจำนวนตามเนมสเปซของผู้ให้บริการและความไม่ตรงกันกับ agents.defaults.model ใช้การตรวจสอบนี้เมื่อพฤติกรรมการตรวจสอบสิทธิ์ ผู้ให้บริการ หรือการเรียกเก็บเงินแตกต่างกันระหว่างแชตสดกับงานตามกำหนดเวลา
ลำดับความสำคัญของโมเดล Cron แบบแยก
Cron แบบแยกจะเลือกโมเดลที่ใช้งานอยู่ตามลำดับนี้:
- การแทนที่จากฮุก Gmail
--modelแยกตามงาน- การแทนที่โมเดลในเซสชัน Cron ที่จัดเก็บไว้ (เมื่อผู้ใช้เลือกไว้)
- การเลือกโมเดลของเอเจนต์หรือโมเดลเริ่มต้น
โหมดเร็ว
โหมดเร็วของ Cron แบบแยกส่วนจะใช้การเลือกโมเดลแบบสดที่แก้ไขแล้ว การกำหนดค่าโมเดล params.fastMode จะมีผลตามค่าเริ่มต้น แต่การแทนที่จากเซสชันที่จัดเก็บไว้ fastMode ยังคงมีลำดับความสำคัญเหนือการกำหนดค่า เมื่อโหมดที่แก้ไขแล้วคือ auto เวลาตัดจะใช้ค่า params.fastAutoOnSeconds ของโมเดลที่เลือก โดยมีค่าเริ่มต้นเป็น 60 วินาที
การลองใหม่เมื่อสลับโมเดลแบบสด
หากการเรียกใช้แบบแยกส่วนส่งข้อผิดพลาด LiveSessionModelSwitchError Cron จะบันทึกผู้ให้บริการและโมเดลที่สลับแล้ว (รวมถึงการแทนที่โปรไฟล์การตรวจสอบสิทธิ์ที่สลับแล้ว หากมี) สำหรับการเรียกใช้ที่กำลังทำงานอยู่ก่อนลองใหม่ วงรอบการลองใหม่ภายนอกจำกัดไว้ที่การลองสลับสองครั้งหลังจากความพยายามครั้งแรก จากนั้นจะยกเลิกแทนที่จะวนซ้ำตลอดไป
เอาต์พุตการเรียกใช้และการปฏิเสธ
การระงับข้อความรับทราบที่ล้าสมัย
เทิร์น Cron แบบแยกส่วนจะระงับการตอบกลับที่ล้าสมัยซึ่งมีเพียงข้อความรับทราบ หากผลลัพธ์แรกเป็นเพียงการอัปเดตสถานะชั่วคราว และไม่มีการเรียกใช้เอเจนต์ย่อยที่สืบทอดรายการใดรับผิดชอบคำตอบสุดท้าย Cron จะพรอมต์ซ้ำหนึ่งครั้งเพื่อขอผลลัพธ์จริงก่อนส่งมอบ
การระงับโทเค็นเงียบ
หากการเรียกใช้ Cron แบบแยกส่วนส่งคืนเฉพาะโทเค็นเงียบ (NO_REPLY หรือ no_reply) Cron จะระงับทั้งการส่งออกโดยตรงและเส้นทางสำรองสำหรับสรุปที่เข้าคิวไว้ จึงไม่มีการโพสต์สิ่งใดกลับไปยังแชต
การปฏิเสธแบบมีโครงสร้าง
การเรียกใช้ Cron แบบแยกส่วนจะใช้เมทาดาทาการปฏิเสธการดำเนินการแบบมีโครงสร้างจากการเรียกใช้แบบฝัง (ข้อผิดพลาดร้ายแรงของเครื่องมือดำเนินการที่มีรหัส SYSTEM_RUN_DENIED หรือ INVALID_REQUEST) เป็นสัญญาณการปฏิเสธที่เชื่อถือได้ นอกจากนี้ยังรองรับแรปเปอร์ UNAVAILABLE ของโฮสต์ Node ที่ครอบข้อผิดพลาดแบบมีโครงสร้างซ้อนซึ่งมีรหัสใดรหัสหนึ่งดังกล่าว
Cron จะไม่จัดประเภทข้อความร้อยแก้วในเอาต์พุตสุดท้ายหรือวลีปฏิเสธที่ดูเหมือนต้องขออนุมัติว่าเป็นการปฏิเสธ เว้นแต่การเรียกใช้แบบฝังจะให้เมทาดาทาการปฏิเสธแบบมีโครงสร้างด้วย ดังนั้นข้อความธรรมดาจากผู้ช่วยจะไม่ถูกถือว่าเป็นคำสั่งที่ถูกบล็อก
cron list และประวัติการเรียกใช้จะแสดงเหตุผลของการปฏิเสธ แทนที่จะรายงานคำสั่งที่ถูกบล็อกเป็น ok
การเก็บรักษา
ลักษณะการเก็บรักษา:
cron.sessionRetention(ค่าเริ่มต้น24hหรือfalseเพื่อปิดใช้งาน) จะล้างเซสชันการเรียกใช้แบบแยกส่วนที่เสร็จสมบูรณ์แล้ว- ประวัติการเรียกใช้จะเก็บแถวสถานะสิ้นสุดล่าสุด 2000 แถวต่อหนึ่งงาน Cron แถวที่สูญหายจะยังคงใช้ช่วงเวลาล้างงานที่สูญหายมาตรฐาน 24 ชั่วโมง
การย้ายงานรุ่นเก่า
การแก้ไขทั่วไป
อัปเดตการตั้งค่าการส่งมอบโดยไม่เปลี่ยนข้อความ:
openclaw cron edit <job-id> --announce --channel telegram --to "123456789"ปิดใช้งานการส่งมอบสำหรับงานแบบแยกส่วน:
openclaw cron edit <job-id> --no-deliverเปิดใช้งานบริบทเริ่มต้นแบบน้ำหนักเบาสำหรับงานแบบแยกส่วน:
openclaw cron edit <job-id> --light-contextประกาศไปยังช่องทางที่ระบุ:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"ประกาศไปยังหัวข้อฟอรัม Telegram:
openclaw cron edit <job-id> --announce --channel telegram --to "-1001234567890" --thread-id 42สร้างงานแบบแยกส่วนพร้อมบริบทเริ่มต้นแบบน้ำหนักเบา:
openclaw cron create "0 7 * * *" \ "สรุปการอัปเดตข้ามคืน" \ --name "สรุปช่วงเช้าแบบน้ำหนักเบา" \ --session isolated \ --light-context \ --no-deliver--light-context ใช้กับงานเทิร์นของเอเจนต์แบบแยกส่วนเท่านั้น สำหรับการเรียกใช้ Cron โหมดน้ำหนักเบาจะปล่อยบริบทเริ่มต้นให้ว่าง แทนที่จะแทรกชุดข้อมูลเริ่มต้นทั้งหมดของพื้นที่ทำงาน
สร้างงานคำสั่งพร้อม argv, cwd, env, stdin และขีดจำกัดเอาต์พุตที่ระบุอย่างแน่นอน:
openclaw cron create "*/30 * * * *" \ --name "การส่งออกตำแหน่ง" \ --command-argv '["node","scripts/export-position.mjs"]' \ --command-cwd "/srv/app" \ --command-env "NODE_ENV=production" \ --command-input '{"mode":"summary"}' \ --timeout-seconds 120 \ --no-output-timeout-seconds 30 \ --output-max-bytes 65536 \ --webhook "https://example.invalid/openclaw/cron"คำสั่งดูแลระบบทั่วไป
การเรียกใช้ด้วยตนเองและการตรวจสอบ:
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 run <job-id> --wait --wait-timeout 10mopenclaw cron run <job-id> --wait --wait-timeout 10m --poll-interval 2sopenclaw cron runs --id <job-id> --limit 50openclaw cron runs --id <job-id> --run-id <run-id>openclaw cron list จะแสดงงานที่ตรงกันทั้งหมดตามค่าเริ่มต้น ส่ง --agent <id> เพื่อแสดงเฉพาะงานที่รหัสเอเจนต์ที่ปรับให้เป็นมาตรฐานและมีผลตรงกัน งานที่ไม่มีรหัสเอเจนต์ที่จัดเก็บไว้จะนับว่าใช้เอเจนต์เริ่มต้นที่กำหนดค่าไว้
openclaw cron get <job-id> ส่งคืน JSON ของงานที่จัดเก็บไว้โดยตรง ใช้ cron show <job-id> เมื่อต้องการมุมมองที่มนุษย์อ่านได้พร้อมตัวอย่างเส้นทางการส่งมอบ
cron list --json และ cron show <job-id> --json มีฟิลด์ระดับบนสุด status ในแต่ละงาน ซึ่งคำนวณจาก enabled, state.runningAtMs และ state.lastRunStatus ค่าได้แก่ disabled, running, ok, error, skipped หรือ idle สถานะ JSON จะคงรูปแบบมาตรฐานและไม่มีการตกแต่ง เพื่อให้เครื่องมือภายนอกอ่านสถานะงานได้โดยไม่ต้องคำนวณซ้ำ ส่วนเอาต์พุตสำหรับมนุษย์อาจตกแต่งสถานะ error ที่เกิดซ้ำด้วยจำนวนความล้มเหลว
รายการ cron runs มีข้อมูลวินิจฉัยการส่งมอบ ซึ่งประกอบด้วยเป้าหมาย Cron ที่ตั้งใจไว้ เป้าหมายที่แก้ไขแล้ว การส่งผ่านเครื่องมือข้อความ การใช้เส้นทางสำรอง และสถานะการส่งมอบ
การเปลี่ยนเป้าหมายเอเจนต์และเซสชัน:
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 จะเตือนเมื่อไม่ได้ระบุ --agent ในงานเทิร์นของเอเจนต์ และจะย้อนกลับไปใช้เอเจนต์เริ่มต้น (main) ส่ง --agent <id> ในเวลาสร้างเพื่อตรึงเอเจนต์ที่ระบุ
การปรับแต่งการส่งมอบ:
openclaw cron edit <job-id> --announce --channel slack --to "channel:C1234567890"openclaw cron edit <job-id> --webhook "https://example.invalid/openclaw/cron"openclaw cron edit <job-id> --best-effort-deliveropenclaw cron edit <job-id> --no-best-effort-deliveropenclaw cron edit <job-id> --no-deliver