กำหนดการ
รันพรอมต์ของเอเจนต์ทุกวันธรรมดา ทุกชั่วโมง หรือแค่ครั้งเดียว ในเขตเวลาและการสนทนาที่คุณเลือก
กำหนดการจะมอบข้อความแจ้งแก่เอเจนต์ตามเวลาที่กำหนดไว้ เช่น ทุกวันธรรมดาเวลา 08:00 น. หรือครั้งเดียวในวันอังคารหน้า ในแต่ละครั้ง เอเจนต์จะได้รับข้อความแจ้งเป็นการตอบกลับในการสนทนาที่คุณเลือกและตอบกลับที่นั่น
สร้างกำหนดการ
เปิด กำหนดการ ในแถบด้านซ้ายและคลิก กำหนดการใหม่ แบบฟอร์มจะขอข้อมูลดังนี้:
| ช่อง | สิ่งที่ต้องป้อน |
|---|---|
| ชื่อ | ป้ายกำกับสั้นๆ เช่น "สรุปตอนเช้า" |
| เอเจนต์ | เอเจนต์ที่จะทำงาน |
| ข้อความแจ้ง | สิ่งที่เอเจนต์ควรทำในแต่ละครั้ง เขียนเหมือนที่คุณจะเขียนในการแชท |
| เมื่อ | ทำซ้ำ (cron), ทำซ้ำ (RRULE) หรือ ครั้งเดียว, พร้อมเวลาด้านล่าง |
| เขตเวลา | โซน IANA เช่น Europe/Amsterdam |
| ตอบกลับใน | ข้อความส่วนตัวของคุณกับเอเจนต์ หรือช่องใดช่องหนึ่งของคุณ |

วิธีการเขียนเวลา:
- Cron มีห้าฟิลด์: นาที, ชั่วโมง, วันที่ของเดือน, เดือน และวันในสัปดาห์
0 8 * * 1-5คือวันธรรมดาเวลา 08:00 น. - RRULE ใช้รูปแบบปฏิทิน เช่น
FREQ=WEEKLY;BYDAY=MO,WE;BYHOUR=9;BYMINUTE=0Laze จะจัดเก็บเป็น cron ที่ตรงกัน - ครั้งเดียว ใช้เวลาท้องถิ่นในโซน เช่น
2026-11-02T09:00กำหนดการแบบครั้งเดียวจะรันเพียงครั้งเดียวแล้วแสดงเป็น เสร็จสิ้น
เวลาหรือโซนที่ไม่ถูกต้องจะถูกปฏิเสธด้วย schedule_invalid และจะไม่มีการบันทึกข้อมูลใดๆ
กำหนดการที่ทำซ้ำจะรันอย่างมากที่สุดทุก 30 นาที Cron หรือ RRULE ที่มีการรันถี่เกินไป เช่น */5 * * * * จะถูกปฏิเสธด้วย schedule_too_frequent หากเป็นงานที่ควรตามด้วยเหตุการณ์บางอย่าง ให้ใช้ ทริกเกอร์ แทน
สิ่งที่เกิดขึ้นเมื่อกำหนดการรัน
เอเจนต์จะโพสต์ "Scheduled run: Morning brief" (พร้อมชื่อกำหนดการ) และข้อความแจ้งในการสนทนาที่คุณเลือก และคำตอบจะอยู่ในเธรดภายใต้ข้อความนั้น ข้อความแจ้งจะนับเป็น ข้อความ จากบุคคลที่สร้างกำหนดการ ดังนั้นเอเจนต์จะทำงานด้วยการเข้าถึง ตู้นิรภัย ของบุคคลนั้น
การรันแต่ละครั้งจะเริ่มต้นในเซสชันใหม่สำหรับเอเจนต์ที่โฮสต์ไว้: ซึ่งมีสกิลและไฟล์หน่วยความจำของเอเจนต์ แต่ไม่มีการแชทก่อนหน้านี้ ดังนั้นจึงทำงานจากช่อง, ไฟล์ และการเชื่อมต่อในแต่ละครั้ง เมื่อการรันสิ้นสุดลง เซสชันหลักของเอเจนต์จะได้รับบันทึกสั้นๆ เกี่ยวกับสิ่งที่การรันได้ทำ การรันที่ไม่พบสิ่งใดให้ทำจะไม่โพสต์อะไรเลย
หากเอเจนต์ออกจากช่องนั้นแล้ว การรันจะไม่โพสต์อะไรเลยและไม่ให้การตอบกลับแก่เอเจนต์ หากเอเจนต์ถูกลบออกไป การรันจะถูกบันทึกว่าข้ามไป และกำหนดการจะหยุดลง

ตรวจสอบก่อน, ปลุกเมื่อมีการเปลี่ยนแปลงเท่านั้น
กำหนดการที่ตรวจสอบการเปลี่ยนแปลงไม่จำเป็นต้องใช้ โมเดล ทุกครั้ง ให้ตั้งค่า ตรวจสอบก่อน: ซึ่งเป็นสคริปต์ที่เรียกใช้งานได้ในโฟลเดอร์งานของเอเจนต์ ในแต่ละครั้งที่เริ่มทำงาน สคริปต์จะรันบนคอมพิวเตอร์ของเอเจนต์ ก่อนการเรียก โมเดล ใดๆ
| สคริปต์ | สิ่งที่เกิดขึ้น |
|---|---|
| ออกด้วยรหัส 0 และพิมพ์บางอย่าง | เอเจนต์จะตื่นขึ้น และสิ่งที่พิมพ์จะถูกเพิ่มไปยังข้อความแจ้ง |
| ออกด้วยรหัส 0 และไม่พิมพ์อะไรเลย | ไม่มีอะไรเกิดขึ้น การรันจะแสดงเป็น ไม่มีอะไรใหม่ และไม่มีเครดิตถูกใช้ไป |
| ออกด้วยข้อผิดพลาด หรือรันเกิน 30 วินาที | การตรวจสอบล้มเหลว เอเจนต์จะอยู่ในสถานะพัก และกำหนดการจะแสดงภายใต้ ต้องการความสนใจ |
ตั้งค่าได้ภายใต้ ตรวจสอบก่อน ในแบบฟอร์ม หรือด้วย laze schedule add ... --check checks/new-calls.sh เฉพาะเอเจนต์หรือเจ้าของเท่านั้นที่สามารถตั้งค่าหรือเปลี่ยนแปลงการตรวจสอบได้ เนื่องจากมันทำงานกับไฟล์ของเอเจนต์และคำสั่ง laze มันทำงานนอกเหนือจากการตอบกลับใดๆ ดังนั้นคำสั่ง laze vault จึงปฏิเสธมัน การตรวจสอบที่เรียก โมเดล เองจะต้องชำระค่าเรียกนั้น เอเจนต์ที่เชื่อมต่อจากเครื่องของคุณเองไม่มี คอมพิวเตอร์ Laze ที่จะรันการตรวจสอบได้
เก็บสิ่งที่สคริปต์เห็นล่าสุดไว้ในไฟล์ของคุณเอง ตัวอย่างนี้จะปลุกเอเจนต์เมื่อค่ามีการเปลี่ยนแปลง และการตอบกลับของเอเจนต์จะบันทึกค่าใหม่:
#!/bin/sh
now=$(laze app records list picks --site published | sha256sum)
[ "$now" = "$(cat state/picks 2>/dev/null)" ] && exit 0
echo "picks changed: $now"อักขระ 8000 ตัวแรกของผลลัพธ์จะไปถึงเอเจนต์ ซึ่งถูกทำเครื่องหมายว่าเป็นข้อมูลจากสคริปต์ ข้อมูลเหล่านี้จะไม่ถูกโพสต์ในการสนทนา หากเกิดความล้มเหลวสามครั้งติดต่อกัน ระบบจะส่ง การ์ด หนึ่งใบใน ฟีด ไปยังบุคคลที่สร้างกำหนดการ รันตอนนี้ จะทำการตรวจสอบก่อน เพื่อทดสอบสคริปต์: โดยจะปลุกเอเจนต์ก็ต่อเมื่อสคริปต์พิมพ์บางอย่างออกมาเท่านั้น การตรวจสอบจะปลุกคอมพิวเตอร์ที่กำลังหลับอยู่ ซึ่งจะกลับไปสู่สถานะพักหลังจากนั้นไม่นานเมื่อการตรวจสอบไม่พบสิ่งใด
หากสิ่งที่คุณเฝ้าดูคือบันทึกแอปหรือช่อง ให้ใช้ ทริกเกอร์ หรือเครื่องมือตรวจสอบแทน: สิ่งเหล่านี้จะเริ่มทำงานเมื่อมีการเปลี่ยนแปลงและไม่จำเป็นต้องใช้คอมพิวเตอร์จนกว่าจะถึงตอนนั้น
เขตเวลา, การปรับเวลาตามฤดูกาล และการหยุดทำงาน
เวลาจะตามเขตเวลาของกำหนดการ รวมถึงการปรับเวลาตามฤดูกาล (daylight saving):
- เมื่อนาฬิกาเดินหน้าและเวลานั้นไม่มีอยู่ในวันนั้น กำหนดการจะรันหนึ่งครั้งทันทีหลังจากช่วงว่าง
- เมื่อนาฬิกาเดินถอยหลังและเวลานั้นเกิดขึ้นสองครั้ง กำหนดการจะรันหนึ่งครั้งที่เวลาแรก
- หาก Laze หยุดทำงานและพลาดการรัน กำหนดการจะรันหนึ่งครั้งเมื่อ Laze กลับมาทำงาน และการรันนั้นจะบันทึกจำนวนครั้งที่พลาดไป การรันครั้งถัดไปจะถูกนับจากปัจจุบัน
หยุดชั่วคราว, แก้ไข และลบกำหนดการ
แต่ละแถวในหน้ากำหนดการมี รัน, แก้ไข, หยุดชั่วคราว หรือ ทำต่อ, และ ลบ:
- รัน จะแสดงรายการการรันแต่ละครั้งพร้อมเวลาและผลลัพธ์
- หยุดชั่วคราว จะล้างการรันครั้งถัดไป ทำต่อ จะนับการรันครั้งถัดไปจากปัจจุบันและไม่ชดเชยเวลาที่หยุดชั่วคราวไป
- แก้ไข จะเปลี่ยนชื่อ, ข้อความแจ้ง, เวลา, โซน หรือการสนทนา กำหนดการที่หยุดชั่วคราวจะยังคงหยุดชั่วคราวหลังจากการแก้ไข และกำหนดการแบบครั้งเดียวที่เสร็จสิ้นแล้วจะรันอีกครั้งหากคุณกำหนดเวลาในอนาคตให้
- ลบ จะลบกำหนดการ; จะไม่มีการรันอีกต่อไป
บุคคลใดก็ตามที่สามารถพูดคุยกับเอเจนต์สามารถเห็นกำหนดการของเอเจนต์และสามารถสร้าง, แก้ไข, หยุดชั่วคราว, ทำต่อ และลบกำหนดการได้: ได้แก่ เจ้าของ, บุคคลที่แชร์ด้วย และทุกคนสำหรับเอเจนต์ประจำทีม บุคคลที่ขอให้สร้างกำหนดการก็เป็นผู้เก็บรักษากำหนดการนั้นด้วย บุคคลอื่น รวมถึงแอดมินพื้นที่ทำงาน จะไม่เห็นกำหนดการของเอเจนต์; การจัดกำหนดการเอเจนต์ที่คุณไม่สามารถพูดคุยด้วยจะถูกปฏิเสธด้วย schedule_agent_not_allowed
จัดกำหนดการจากบรรทัดคำสั่ง
บุคคลและเอเจนต์ต่างก็ใช้ laze schedule ระบุเพียงหนึ่งใน --cron, --rrule หรือ --at เท่านั้น หากไม่มี --tz เขตเวลาจะเป็น UTC
laze schedule add "Morning brief" --prompt "Write my morning brief from my inbox and calendar" --cron "0 8 * * 1-5" --tz Europe/Amsterdam
laze schedule add "Renewal reminder" --prompt "Remind the team about the ACME renewal" --at 2026-11-02T09:00 --tz Europe/Amsterdam --channel <channelId>
laze schedule list
laze schedule pause <scheduleId>
laze schedule runs <scheduleId>
laze schedule run <scheduleId>รันตอนนี้ และการรันที่ไม่ได้เกิดขึ้น
รันตอนนี้ บนแถวกำหนดการ หรือ laze schedule run <scheduleId> จะรันทันทีหนึ่งครั้ง การทำงานครั้งถัดไปจะไม่เปลี่ยนแปลง
หากกำหนดการเริ่มทำงานในขณะที่เอเจนต์ไม่เชื่อมต่อ, ถูกลบออก หรือการสนทนาหายไป บุคคลที่กำหนดการรันให้จะได้รับ การ์ด หนึ่งใบในฟีดของตน: Your scheduled run "<name>" did not run พร้อมเหตุผลและปุ่ม รันตอนนี้ การพลาดกำหนดการเดิมอีกครั้งจะนำการ์ดเดิมกลับมา
ตัวอย่าง: สรุปตอนเช้าในฟีด
สรุปตอนเช้าคือกำหนดการที่ข้อความแจ้งจะบอกให้เอเจนต์โพสต์ การ์ด ฟีดเป็นกลุ่มเดียว ฟีดจะแสดงกลุ่มใหม่ล่าสุดภายใต้ข้อความทักทาย โดยมีชิปตัวกรองหนึ่งอันต่อหนึ่งป้ายกำกับ
laze schedule add "Morning brief" --cron "45 7 * * 1-5" --tz Europe/Amsterdam --prompt "Check my inbox, calendar and open loops. Post one feed card per thing that needs me with --group \"Morning brief <d Mon>\", one --label of money, promise, decide, nudge, risk or fyi, and --loop <stable key>. Then run laze feed group-summary \"Morning brief <d Mon>\" and post its output."สำหรับสรุปที่ใหญ่ขึ้น ให้แบ่งการอ่านระหว่างเอเจนต์สอดแนม ติดตั้งสกิล brief-scout บนเอเจนต์สอดแนมแต่ละตัว และ morning-brief บนเอเจนต์ที่เขียนสรุป จากนั้นจัดกำหนดการเอเจนต์สอดแนมก่อนสรุป เอเจนต์สอดแนมแต่ละตัวจะอัปโหลดรายงานเป็น briefs/<YYYY-MM-DD>/<scout>.md ไปยังช่องที่สรุปอ่าน โดยมีหลักฐานของแต่ละรายการ เอเจนต์สรุปจะอ่านไฟล์เหล่านั้น รอสูงสุด 15 นาทีสำหรับรายงานที่ล่าช้า ตรวจสอบแต่ละรายการ และโพสต์รายการที่ตรวจสอบแล้วเป็นการ์ดในกลุ่ม เอเจนต์สอดแนมที่ไม่ได้รันจะนำไปสู่สรุป และเจ้าของก็ได้รับ การ์ด การรันที่พลาดพร้อมปุ่ม รันตอนนี้ ด้วย
การโพสต์ การ์ด อีกครั้งด้วย คีย์ --loop เดิมจะย้าย การ์ด นั้นไปยังกลุ่มใหม่และแสดงจำนวนครั้งที่ถูกดู --auto-send-on <YYYY-MM-DD> จะเพิ่มการนับถอยหลังพร้อมปุ่ม Stop ให้กับการ์ดใดๆ
เมื่อเอเจนต์รัน laze schedule add ด้วย คีย์ ของตัวเอง กำหนดการจะกำหนดเป้าหมายเอเจนต์นั้นและนับว่าสร้างโดยเจ้าของเอเจนต์ เอเจนต์ที่ถูกขอในแชทให้ทำงานซ้ำๆ สามารถสร้างกำหนดการด้วยวิธีนี้ได้
ตรวจสอบเพิ่มเติม: การอ้างอิง CLI, เอเจนต์ที่โฮสต์