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.
openclaw cron
จัดการงาน Cron สำหรับตัวจัดกำหนดการของ Gateway
เซสชัน
--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 add แบบแยกมีค่าเริ่มต้นเป็นการส่งมอบแบบ --announce ใช้ --no-deliver เพื่อเก็บเอาต์พุตไว้ภายใน --deliver ยังคงอยู่ในฐานะนามแฝงที่เลิกใช้แล้วของ --announceความเป็นเจ้าของการส่งมอบ
การส่งมอบแชท Cron แบบแยกเป็นความรับผิดชอบร่วมกันระหว่างเอเจนต์และตัวรัน:- เอเจนต์สามารถส่งได้โดยตรงโดยใช้เครื่องมือ
messageเมื่อมีเส้นทางแชทพร้อมใช้งาน announceส่งมอบสำรองสำหรับคำตอบสุดท้ายเฉพาะเมื่อเอเจนต์ไม่ได้ส่งโดยตรงไปยังเป้าหมายที่แก้ค่าแล้วwebhookโพสต์เพย์โหลดที่เสร็จแล้วไปยัง URLnoneปิดการส่งมอบสำรองของตัวรัน
--announce คือการส่งมอบสำรองของตัวรันสำหรับคำตอบสุดท้าย --no-deliver ปิดการสำรองนั้น แต่ไม่ลบเครื่องมือ message ของเอเจนต์เมื่อมีเส้นทางแชทพร้อมใช้งาน
การแจ้งเตือนที่สร้างจากแชทที่ใช้งานอยู่จะคงเป้าหมายการส่งมอบแชทสดไว้สำหรับการส่งมอบประกาศสำรอง คีย์เซสชันภายในอาจเป็นตัวพิมพ์เล็ก อย่าใช้คีย์เหล่านั้นเป็นแหล่งความจริงสำหรับรหัสผู้ให้บริการที่แยกแยะตัวพิมพ์เล็กใหญ่ เช่น รหัสห้อง Matrix
การส่งมอบเมื่อเกิดข้อผิดพลาด
การแจ้งเตือนข้อผิดพลาดจะถูกแก้ค่าตามลำดับนี้:delivery.failureDestinationในงานcron.failureDestinationส่วนกลาง- เป้าหมายประกาศหลักของงาน (เมื่อไม่ได้ตั้งค่าปลายทางข้อผิดพลาดไว้อย่างชัดเจน)
งานเซสชันหลักใช้
delivery.failureDestination ได้เฉพาะเมื่อโหมดการส่งมอบหลักเป็น webhook งานแบบแยกรับค่านี้ได้ในทุกโหมดopenclaw cron show
และ openclaw cron runs จะรวมข้อผิดพลาดเฉพาะเฟส เช่น
setup timed out before runner start หรือ
stalled before first model call (last phase: context-engine)
สำหรับผู้ให้บริการที่อิง CLI ตัวเฝ้าระวังก่อนโมเดลจะยังทำงานอยู่จนกว่าเทิร์น CLI ภายนอก
จะเริ่มต้น ดังนั้นการติดขัดของการค้นหาเซสชัน hook การยืนยันตัวตน prompt และการตั้งค่า CLI
จะถูกรายงานเป็นความล้มเหลวของ Cron ก่อนโมเดล
การจัดกำหนดการ
งานครั้งเดียว
--at <datetime> จัดกำหนดการการรันครั้งเดียว วันที่เวลาแบบไม่มีออฟเซ็ตจะถูกถือเป็น UTC เว้นแต่คุณจะส่ง --tz <iana> ด้วย ซึ่งจะตีความเวลาตามนาฬิกาในเขตเวลาที่กำหนด
งานครั้งเดียวจะลบตัวเองหลังสำเร็จโดยค่าเริ่มต้น ใช้
--keep-after-run เพื่อเก็บไว้งานที่เกิดซ้ำ
งานที่เกิดซ้ำใช้การหน่วงเวลาลองใหม่แบบเอ็กซ์โพเนนเชียลหลังเกิดข้อผิดพลาดติดต่อกัน: 30 วินาที, 1 นาที, 5 นาที, 15 นาที, 60 นาที กำหนดการจะกลับสู่ปกติหลังการรันครั้งถัดไปสำเร็จ การรันที่ถูกข้ามจะถูกติดตามแยกจากข้อผิดพลาดการดำเนินการ การรันเหล่านั้นไม่ส่งผลต่อการหน่วงเวลาลองใหม่ แต่openclaw cron edit <job-id> --failure-alert-include-skipped สามารถเลือกให้การแจ้งเตือนข้อผิดพลาดรวมการแจ้งเตือนการรันที่ถูกข้ามซ้ำได้
สำหรับงานแบบแยกที่กำหนดเป้าหมายไปยังผู้ให้บริการโมเดลที่กำหนดค่าไว้ในเครื่อง Cron จะรันการตรวจสอบล่วงหน้าผู้ให้บริการแบบเบาก่อนเริ่มเทิร์นเอเจนต์ ผู้ให้บริการ api: "ollama" แบบ Loopback, เครือข่ายส่วนตัว และ .local จะถูกตรวจที่ /api/tags; ผู้ให้บริการที่เข้ากันได้กับ OpenAI ในเครื่อง เช่น vLLM, SGLang และ LM Studio จะถูกตรวจที่ /models หากปลายทางเข้าถึงไม่ได้ การรันจะถูกบันทึกเป็น skipped และลองใหม่ในกำหนดการภายหลัง ปลายทางที่ตายและตรงกันจะถูกแคชไว้ 5 นาทีเพื่อหลีกเลี่ยงไม่ให้งานจำนวนมากกระหน่ำเซิร์ฟเวอร์ภายในเครื่องเดียวกัน
หมายเหตุ: คำนิยามงาน Cron อยู่ใน jobs.json ส่วนสถานะรันไทม์ที่รอดำเนินการอยู่ใน jobs-state.json หาก jobs.json ถูกแก้ไขจากภายนอก Gateway จะโหลดกำหนดการที่เปลี่ยนใหม่และล้างสล็อตที่รอดำเนินการที่ล้าสมัย การเขียนใหม่ที่เปลี่ยนเฉพาะการจัดรูปแบบจะไม่ล้างสล็อตที่รอดำเนินการ
การรันด้วยตนเอง
openclaw cron run ส่งคืนทันทีเมื่อการรันด้วยตนเองถูกเข้าคิวแล้ว การตอบกลับที่สำเร็จจะรวม { ok: true, enqueued: true, runId } ใช้ openclaw cron runs --id <job-id> เพื่อติดตามผลลัพธ์สุดท้าย
openclaw cron run <job-id> บังคับรันโดยค่าเริ่มต้น ใช้ --due เพื่อคงพฤติกรรมเก่า “รันเฉพาะเมื่อถึงกำหนด” ไว้โมเดล
cron add|edit --model <ref> เลือกโมเดลที่อนุญาตสำหรับงาน
Cron --model เป็น ค่าหลักของงาน ไม่ใช่การแทนที่ /model ของเซสชันแชท ซึ่งหมายความว่า:
- การถอยกลับของโมเดลที่กำหนดค่าไว้ยังคงมีผลเมื่อโมเดลงานที่เลือกไว้ล้มเหลว
fallbacksในเพย์โหลดรายงานจะแทนที่รายการถอยกลับที่กำหนดค่าไว้เมื่อมีอยู่- รายการถอยกลับรายงานที่ว่างเปล่า (
fallbacks: []ในเพย์โหลด/API ของงาน) ทำให้การรัน Cron เข้มงวด - เมื่องานมี
--modelแต่ไม่ได้กำหนดค่ารายการถอยกลับ OpenClaw จะส่งการแทนที่การถอยกลับว่างเปล่าอย่างชัดเจน เพื่อไม่ให้ค่าหลักของเอเจนต์ถูกต่อท้ายเป็นเป้าหมายลองใหม่ที่ซ่อนอยู่
ลำดับความสำคัญของโมเดล Cron แบบแยก
Cron แบบแยกแก้ค่าโมเดลที่ใช้งานอยู่ตามลำดับนี้:- การแทนที่จาก Gmail-hook
--modelรายงาน- การแทนที่โมเดลของเซสชัน Cron ที่จัดเก็บไว้ (เมื่อผู้ใช้เลือกไว้)
- การเลือกโมเดลของเอเจนต์หรือโมเดลเริ่มต้น
โหมดเร็ว
โหมดเร็วของ Cron แบบแยกจะตามการเลือกโมเดลสดที่แก้ค่าแล้ว การกำหนดค่าโมเดลparams.fastMode มีผลโดยค่าเริ่มต้น แต่การแทนที่ fastMode ของเซสชันที่จัดเก็บไว้ยังคงชนะการกำหนดค่า
การลองใหม่เมื่อสลับโมเดลสด
หากการรันแบบแยกโยนLiveSessionModelSwitchError Cron จะคงผู้ให้บริการและโมเดลที่สลับแล้ว (และการแทนที่โปรไฟล์การยืนยันตัวตนที่สลับแล้วเมื่อมี) สำหรับการรันที่ใช้งานอยู่ก่อนลองใหม่ วงรอบการลองใหม่ด้านนอกถูกจำกัดไว้ที่การลองใหม่จากการสลับสองครั้งหลังความพยายามแรก จากนั้นจะยกเลิกแทนที่จะวนซ้ำตลอดไป
เอาต์พุตการรันและการปฏิเสธ
การระงับการตอบรับที่ล้าสมัย
เทิร์น Cron แบบแยกจะระงับคำตอบที่เป็นเพียงการตอบรับล้าสมัย หากผลลัพธ์แรกเป็นเพียงการอัปเดตสถานะชั่วคราวและไม่มีการรันซับเอเจนต์สืบทอดที่รับผิดชอบคำตอบสุดท้าย Cron จะ prompt ซ้ำหนึ่งครั้งเพื่อขอผลลัพธ์จริงก่อนส่งมอบการระงับโทเค็นเงียบ
หากการรัน Cron แบบแยกส่งคืนเฉพาะโทเค็นเงียบ (NO_REPLY หรือ no_reply) Cron จะระงับทั้งการส่งออกโดยตรงและเส้นทางสรุปที่เข้าคิวสำรอง ดังนั้นจะไม่มีสิ่งใดถูกโพสต์กลับไปยังแชท
การปฏิเสธแบบมีโครงสร้าง
การรัน Cron แบบแยกต้องการเมทาดาทาการปฏิเสธการดำเนินการแบบมีโครงสร้างจากการรันที่ฝังอยู่ก่อน จากนั้นจึงถอยกลับไปใช้ตัวบ่งชี้การปฏิเสธที่รู้จักในเอาต์พุตสุดท้าย เช่นSYSTEM_RUN_DENIED, INVALID_REQUEST และวลีปฏิเสธการผูกกับการอนุมัติ
cron list และประวัติการรันจะแสดงเหตุผลการปฏิเสธแทนการรายงานคำสั่งที่ถูกบล็อกเป็น ok
การเก็บรักษา
การเก็บรักษาและการตัดทอนถูกควบคุมใน config:cron.sessionRetention(ค่าเริ่มต้น24h) ตัดทอนเซสชันการรันแบบแยกที่เสร็จแล้วcron.runLog.maxBytesและcron.runLog.keepLinesตัดทอน~/.openclaw/cron/runs/<jobId>.jsonl
การย้ายงานเก่า
หากคุณมีงาน Cron จากก่อนรูปแบบการส่งมอบและที่เก็บปัจจุบัน ให้รัน
openclaw doctor --fix Doctor จะทำให้ฟิลด์ Cron เดิมเป็นมาตรฐาน (jobId, schedule.cron, ฟิลด์การส่งมอบระดับบนรวมถึง threadId เดิม, นามแฝงการส่งมอบ provider ของเพย์โหลด) และย้ายงาน Webhook สำรองแบบง่าย notify: true ไปเป็นการส่งมอบ Webhook ที่ชัดเจนเมื่อกำหนดค่า cron.webhook ไว้การแก้ไขทั่วไป
อัปเดตการตั้งค่าการส่งมอบโดยไม่เปลี่ยนข้อความ:--light-context ใช้กับงานเทิร์นเอเจนต์แบบแยกเท่านั้น สำหรับการรัน Cron โหมดเบาจะเก็บบริบทบูตสแตรปให้ว่างเปล่าแทนการฉีดชุดบูตสแตรปเวิร์กสเปซทั้งหมด
คำสั่งผู้ดูแลทั่วไป
การรันด้วยตนเองและการตรวจสอบ: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 สิ่งนี้สะท้อนคอลัมน์สถานะที่มนุษย์อ่านได้ เพื่อให้เครื่องมือภายนอกอ่านสถานะงานได้โดยไม่ต้องคำนวณใหม่
รายการ cron runs รวมการวินิจฉัยการส่งมอบพร้อมเป้าหมาย Cron ที่ตั้งใจไว้ เป้าหมายที่แก้ค่าแล้ว การส่งด้วยเครื่องมือ message การใช้การสำรอง และสถานะการส่งมอบ
การกำหนดเป้าหมายเอเจนต์และเซสชันใหม่:
openclaw cron add เตือนเมื่อ --agent ถูกละไว้ในงานเทิร์นเอเจนต์และถอยกลับไปใช้เอเจนต์เริ่มต้น (main) ส่ง --agent <id> ตอนสร้างเพื่อตรึงเอเจนต์เฉพาะ
การปรับแต่งการส่งมอบ: