AI และเอเจนต์5 นาทีในการอ่าน

สกิลสำหรับงาน cron ของ Hermes Agent ในแคตตาล็อกปลั๊กอินทางการ: hermes-cron

สกิล hermes-cron เข้าแคตตาล็อกปลั๊กอินทางการของ Hermes Agent แล้ว มันช่วยเรื่องการเตือนและงาน cron อย่างไร: ไม่มีงานซ้ำ ไม่เปลือง token และไม่พังแบบเงียบ ๆ

สกิลสำหรับงาน cron ของ Hermes Agent ในแคตตาล็อกปลั๊กอินทางการ: hermes-cron
สารบัญ

สกิล hermes-cron ของผมเข้าแคตตาล็อกปลั๊กอินทางการของ Hermes Agent แล้ว มันสอนให้เอเจนต์จัดการงานตามกำหนดเวลาอย่างเรียบร้อย: ตั้งการเตือนโดยไม่เกิดงานซ้ำ ไม่เปลือง token ไปกับการรันที่ไม่มีอะไรให้ทำ ตรวจทุกการเปลี่ยนแปลง และหาว่างานที่ไม่ทำงานนั้นพังตรงไหน Teknium จากทีม Nous Research กด merge pull request เมื่อ 3 ตุลาคม และสกิลก็มีหน้าของตัวเองในเอกสารของ Hermes: หมวด Automation ระดับ Community เวอร์ชัน 1.2.0 ไลเซนส์ MIT ตอนนี้จึงหามันเจอได้ในที่เดียวกับที่ผู้ใช้ Hermes หาส่วนขยายอื่น ๆ ไม่ใช่แค่จากลิงก์ในแชทของเรา

ทำไมงาน cron ของเอเจนต์ถึงพังโดยไม่มีใครสังเกต

cron หรืองาน cron คือสิ่งที่เอเจนต์ทำตามกำหนดเวลา: สรุปตอนเช้า การเตือนในอีกครึ่งชั่วโมง การตรวจเซิร์ฟเวอร์ตอนกลางคืน งานพวกนี้แหละที่เปลี่ยนเอเจนต์จากคู่สนทนาให้กลายเป็นผู้ช่วย และก็เป็นจุดที่พลาดง่ายที่สุดด้วย ความผิดพลาดใน cron หน้าตาเหมือนความสำเร็จ: เครื่องมือตอบ success: true งานขึ้นสถานะว่าพักไว้ สถานะล่าสุดคือ ok แต่บางทีข้อความก็ยังส่งมาเรื่อย ๆ บางทีก็ไม่มาเลยสักข้อความ

สาเหตุมักเป็นเรื่องธรรมดา ๆ เอเจนต์เข้าใจ “อีก 30 นาที” ว่าเป็น 30m ซึ่งไม่ใช่การเตือนครั้งเดียว แต่เป็นการทำซ้ำทุกครึ่งชั่วโมง ในพรอมต์เขียนว่า “ส่งสรุปมา” เอเจนต์ก็ส่ง แล้วตัวจัดตารางงาน (scheduler) ก็ส่งซ้ำอีกรอบ การส่งแบบ origin จะไปที่แชทที่สร้างงานไว้ ไม่ใช่ไปหาคนที่ต้องการมัน งานที่ติดป้ายว่าพักไว้แต่ยังเป็น enabled: true จะไม่ทำงานเลย ทั้งที่ในรายการดูเหมือนตั้งเวลาไว้แล้ว ผมเจอแทบทุกข้อนี้มากับตัวตอนที่ดูแลงานหลายสิบงานใน Hermes และเปลี่ยนความผิดพลาดแต่ละข้อให้เป็นกฎที่ตอนนี้เอเจนต์ทำตามเอง

hermes-cron ทำอะไรได้บ้าง

เลือกคำสั่งให้ถูก การพัก การปิด และการลบเป็นคนละอย่างกัน และสกิลอธิบายให้เอเจนต์รู้ว่าเมื่อไหร่ต้องใช้อันไหน คำขอ “พักสรุปข่าวตอนเช้าไว้จนถึงวันจันทร์” จะจบด้วยการพักงานโดยไม่สร้างงานซ้ำ และคำตอบตรง ๆ ว่าใครจะเป็นคนเปิดกลับในวันจันทร์: Hermes ไม่มีการตั้งเวลาให้งานที่ทำซ้ำกลับมาทำงานต่อเอง

ไม่ปลุกโมเดลโดยไม่จำเป็น การเรียกโมเดลภาษาแต่ละครั้งใช้ token แต่งานตามกำหนดเวลาจำนวนมากต้องใช้โมเดลแค่บางครั้ง หรือไม่ต้องใช้เลย มีสามโหมดที่ไม่ต้องเรียกโมเดลเกินจำเป็น: งานที่เป็นสคริปต์ล้วนไม่มีเอเจนต์ (no_agent) การตรวจล่วงหน้าที่ตัดสินว่าต้องรันไหม และการเฝ้าดูการเปลี่ยนแปลงแบบ “บอกเมื่อมีอะไรเปลี่ยน” โหมดที่สี่ คือการตอบ [SILENT] ไม่ได้ประหยัด token แต่ช่วยลดข้อความที่รบกวนคุณ: โมเดลทำงานแล้ว แต่ไม่มีอะไรต้องรายงาน ข้อความก็จะไม่ถูกส่ง ตัวเฝ้าแบบ “เขียนมาเฉพาะตอนดิสก์เต็มเกิน 90%” ไม่ต้องเรียกโมเดลเลยสักครั้งตราบที่ทุกอย่างยังปกติ เรื่องการประหยัด token ในระบบเอเจนต์ เรามีเช็กลิสต์แยกไว้

สี่โหมดของ hermes-cron: สคริปต์อย่างเดียว การตรวจล่วงหน้า การเฝ้าดูการเปลี่ยนแปลง และงาน LLM ที่ตอบ SILENT (ข้อความในภาพเป็นภาษาอังกฤษ)

ตรวจทุกการเปลี่ยนแปลง หลังสร้างหรือแก้งาน เอเจนต์จะอ่านงานนั้นอีกรอบและเช็กว่าสิ่งที่บันทึกไว้ตรงกับที่ขอจริง ๆ: เป็นงานครั้งเดียวหรืองานที่ทำซ้ำ และจะทำงานเมื่อไหร่ ตามคำสั่งของสกิล มันจะบอกว่า “เสร็จแล้ว” ได้ก็ต่อเมื่อตรวจแบบนี้แล้วเท่านั้น

หาจุดที่พังทีละชั้น เมื่อถามว่า “ทำไมรายงานตอนเก้าโมงไม่มา” เอเจนต์จะไม่เดาสุ่มแล้วเขียนตารางเวลาใหม่ แต่ไล่จากบนลงล่าง: ตัวจัดตารางงานยังเดินอยู่ไหม รายการของงานยังอยู่ครบดีไหม มีการรันหรือเปล่า ผลลัพธ์ส่งถึงไหม และการซิงค์ไปเขียนทับการแก้ไขหรือเปล่า

การดีบักงาน cron ทีละชั้น: ตัวจัดตารางงาน รายการของงาน การรัน การส่ง และการแก้ไขจากภายนอก (ข้อความในภาพเป็นภาษาอังกฤษ)

Doctor ในชุดมีสคริปต์ cron-doctor.py มาด้วย ตัวมันเองไม่เขียน ไม่รัน และไม่ลบงานใด ๆ ไม่ต่อเน็ต และไม่แตะคีย์ มันเรียกการตรวจในตัว hermes cron doctor แล้วเติมสิ่งที่การตรวจนั้นมองไม่เห็น: งานที่ถูกปิดและงานที่ “พักครึ่ง ๆ กลาง ๆ” ความล้มเหลวที่เกิดต่อเนื่องเป็นชุด ผลการส่งของการรันครั้งล่าสุด incident ที่ยังเปิดอยู่ และงานที่ระบุโมเดลตายตัวไว้ งานแบบนี้จะไม่ทำตามการตั้งค่าโมเดลส่วนกลาง และไม่สลับไปใช้โมเดลสำรองเมื่อผู้ให้บริการล่ม มีข้อแม้ข้อหนึ่ง: การตรวจในตัวโหลดงานด้วยตัวโหลดมาตรฐานของ Hermes และตัวโหลดนี้อาจซ่อมรายการที่เสียใน jobs.json ได้ แบบเดียวกับที่เกิดในทุกรอบปกติของตัวจัดตารางงาน ถ้าต้องการรันแบบอ่านอย่างเดียวจริง ๆ มีแฟล็ก --no-builtin

ความผิดพลาดที่เจอบนโปรดักชัน

การตรวจข้อล่าสุดที่เพิ่มเข้าไปใน doctor มาจากเหตุการณ์จริง บน Hermes 0.21.3 งานตามกำหนดเวลาของผมไม่ทำงานเลยสักงานติดกันหลายวัน ทุกงานล้มด้วยข้อผิดพลาดเดียวกันตอนเริ่มรัน แต่ incident ไม่ถูกเปิด และข้อมูลความล้มเหลวของแต่ละงานก็ถูกรีเซ็ตหลังการรันสำเร็จครั้งถัดไป ถ้าดูทีละงานจึงแทบไม่เห็นอะไรผิดปกติ สาเหตุไม่ได้อยู่ที่ตัวงาน แต่อยู่ที่การตั้งค่าเซิร์ฟเวอร์

ตอนนี้ doctor จับเรื่องแบบนี้ได้พอดี: ข้อผิดพลาดเดียวกันในงานตั้งแต่สามงานขึ้นไปภายในหนึ่งวัน จะแสดงครั้งเดียวในฐานะความผิดพลาดของตัวจัดตารางงานหรือของโฮสต์ ไม่ใช่ปัญหากระจัดกระจายสิบเรื่อง ก่อนส่งเข้าแคตตาล็อก สกิลผ่านการรีวิวอิสระและการทดสอบบนเอเจนต์ที่ใช้งานจริง ส่วน doctor มีเทสต์อัตโนมัติ 43 ตัวที่ไม่ต้องใช้เน็ตและไม่พึ่งอะไรภายนอก

วิธีติดตั้ง hermes-cron

ต้องใช้ Hermes Agent 0.21 ขึ้นไป ในแคตตาล็อกระบุว่ารองรับ Linux, macOS และ Windows วิธีปกติคือติดตั้งเป็นสกิล แล้วเอเจนต์จะหยิบมาใช้เองจากคำอธิบาย:

hermes skills install itpartypattaya/hermes-cron/skills/hermes-cron

หรือติดตั้งเป็นปลั๊กอินแบบพกพา:

hermes plugins install itpartypattaya/hermes-cron --no-enable
hermes plugins enable hermes-cron

จากนั้นแค่คุยกับเอเจนต์ด้วยภาษาธรรมดา: “อีก 30 นาทีเตือนให้โทรหาธนาคาร” “ทำไมรายงานตอนเช้าไม่มา” ถ้าคุณติดตั้ง hermes-cron เป็นสกิลธรรมดา ก็รัน doctor ด้วยมือได้ด้วย:

python3 ~/.hermes/skills/hermes-cron/scripts/cron-doctor.py

ถ้ายังไม่ได้ติดตั้ง Hermes ให้เริ่มจากการติดตั้งและเชื่อมต่อกับ Telegram แล้วต่อด้วยการตั้งค่าหลังติดตั้ง โค้ด เอกสาร และที่สำหรับถามคำถาม อยู่ในรีโพบน GitHub ยินดีรับ issues และ pull requests

สกิลตัวที่สองของผมในแคตตาล็อกเดียวกันคือ hermes-dreaming: มันจัดระเบียบหน่วยความจำของเอเจนต์ทุกคืน ส่วนจะหาสกิลและปลั๊กอินอื่นของ Hermes ได้ที่ไหน และควรตรวจของคนอื่นอย่างไรก่อนติดตั้ง ผมรวบรวมไว้ในบทความรีวิวแยก

แหล่งข้อมูล

  1. Hermes Agent: หน้า hermes-cron ในแคตตาล็อกปลั๊กอิน
  2. NousResearch/hermes-agent: PR #130682 เพิ่ม hermes-cron เข้าแคตตาล็อก
  3. itpartypattaya/hermes-cron: รีโพและ README
คนกันเองอยู่ใกล้ ๆถามคนกันเอง แชทตอบเร็วกว่าค้นหาเองแชทหลักของไอที ปาร์ตี้ พัทยา: คนสาย IT สายดิจิทัล และผู้ประกอบการ ที่เคยผ่านเรื่องเดียวกันมาแล้ว เริ่มตั้งแต่กรกฎาคม 2566 แชทใช้ภาษารัสเซีย ชาวต่างชาติและคนไทยเข้ามาได้เสมอเข้าแชท (ภาษารัสเซีย)

อ่านเรื่องที่เกี่ยวข้อง