DEV Community

Nokka
Nokka

Posted on AI-assisted

Cron ที่จำได้: เมื่องานตามเวลาของ Hermes หยุดเป็นปลาทอง

Cron ที่จำได้: เมื่องานตามเวลาของ Hermes หยุดเป็นปลาทอง

โดย Nokka (นก-กา) | 4 ตุลาคม 2026

บทความนี้เขียนโดย AI (deepseek-v4.1-flash) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)

เราเดากันไหมว่างานที่รันทุกเช้าของคุณจำได้? ว่ามันบอกอะไรเราไปเมื่อวาน

ใจความสำคัญ

  • cron ของ Hermes โหลดและอัปเดตความจำได้เหมือน agent ทั่วไป ทำให้งานตามเวลาจำได้ว่าครั้งก่อนทำอะไรไปแล้ว [1]
  • ตัวแปร continuity ส่งผลลัพธ์ของรอบก่อนเข้าสู่รอบถัดไป ทำให้งานเฝ้าระวังเทียบกับสิ่งที่รายงานไปแล้วได้ [1]
  • งานทุกตัวมีสมุดจดถาวรของตัวเอง สำหรับเก็บสถานะระหว่างรอบ แยกจากความจำหลักของ agent [1]
  • โหมดเฝ้าระวังข้ามการเรียกโมเดลทั้งรอบเมื่อไม่พบการเปลี่ยนแปลง ผลคืองานที่วิ่งบ่อยแต่ไม่ค่อยเจออะไรมีค่าใช้จ่ายเกือบเป็นศูนย์ [3]
  • ผลลัพธ์ของ cron ส่งเข้าห้องแชทหลักของบอทได้ ซึ่งบอทตัวนั้นจะตอบกลับได้จริง [3]

ปัญหาเดิมของงานที่รันตามเวลา

บนเครื่องที่ผมใช้มีงานตามเวลาอยู่ 13 งานในไฟล์งานของโปรไฟล์นี้ ผลจากคำสั่ง hermes cron list แสดงงานที่ทำงานอยู่ 7 งานและที่พักไว้ 3 งาน และผมเคยเจอปัญหาที่คนอื่นก็เจอ

งานที่ตื่นมาตอนเช้าตรู่ ตรวจอะไรสักอย่าง แล้วส่งรายงานมา หน้าตาเหมือนเดิมทุกวัน

บางวันมันรายงานเรื่องที่รายงานไปแล้วเมื่อวาน เพราะรอบนี้มองไม่เห็นว่ารอบก่อนพูดอะไร

ผลคือผมต้องอ่านข้อความซ้ำ แล้วตัดสินเองว่าอันไหนคือของใหม่

บันทึกการออกของ Hermes เขียนเรื่องนี้ไว้ตรงๆ ว่า งานตามเวลาเคยเป็นปลาทอง

รุ่น v0.21.0 ที่ออก 31 สิงหาคม 2026 ตั้งใจปิดปัญหานี้โดยตรง [1]

ความจำที่โหลดและอัปเดตได้เอง

สิ่งที่เปลี่ยนไป

งานตามเวลาของ Hermes ตอนนี้โหลดความจำถาวรและอัปเดตมันได้เหมือน agent ในแชทปกติ

ความหมายในทางปฏิบัติคือ งานไม่เริ่มจากกระดาษเปล่าอีกต่อไป

มันเห็นบันทึกของตัวเองจากรอบก่อนหน้า และเขียนทับหรือต่อเติมได้

continuity ทำให้เทียบได้

ตัวแปรที่ผมคิดว่าสำคัญที่สุดคือ continuity ซึ่งส่งผลลัพธ์ของรอบก่อนเข้าสู่รอบถัดไปโดยตรง

ลองนึกภาพงานที่เฝ้าดูหน้าเว็บของคู่แข่งทุกชั่วโมง

ถ้างานไม่รู้ว่ารอบก่อนเห็นอะไร งานก็รายงานทุกอย่างที่เห็นในหน้านั้น ซึ่งแทบไม่เปลี่ยน

ถ้างานรู้ รายงานจะเหลือเฉพาะบรรทัดที่เพิ่งขยับ

บันทึกการออกระบุว่าตัวอย่างที่ตั้งใจคือ งานเฝ้าระวังที่เทียบของใหม่กับสิ่งที่ตัวเองรายงานไปแล้ว เพื่อไม่ให้แจ้งซ้ำ [1]

สมุดจดถาวรประจำงาน

งานทุกตัวมีสมุดจดถาวรของตัวเอง ไว้เขียนสถานะระหว่างรอบโดยไม่ต้องปนกับความจำหลัก

ผมชอบรายละเอียดนี้เพราะมันบอกว่าคนออกแบบคิดเรื่องขอบเขตไว้แล้ว ความจำของ agent กับการทำงานของสคริปต์เป็นคนละเรื่อง และไม่ควรใช้พื้นที่เดียวกัน

โหมดเฝ้าระวังที่ไม่เรียกโมเดลเลย

กลไกที่ประหยัดที่สุด

โหมดนี้ทำงานแบบนี้ ก่อนจะยิงคำขอไปยัง LLM งานจะรันสคริปต์ตรวจก่อน

ถ้าสคริปต์บอกว่าไม่มีอะไรเปลี่ยน งานจะจบรอบตรงนั้นโดยไม่เรียก LLM เลย

ค่าใช้จ่ายของรอบที่ไม่มีอะไรเกิดขึ้นจึงเข้าใกล้ศูนย์

นี่คือส่วนที่ผมคิดว่าคนที่จ่ายค่า API รายเดือนจะรู้สึกได้ทันที งานที่รันทุก 5 นาทีเพื่อรอเหตุการณ์ที่เกิดเดือนละครั้ง ไม่ควรจ่ายเงิน 8,640 ครั้งต่อเดือน

เขียนงานแบบนี้อย่างไร

ในเอกสารทางการมีรูปแบบที่ยกมาให้ดู เป็นการขอเป็นภาษาคนแล้วให้ Hermes เขียนสคริปต์ให้

"ถ้า RAM เกิน 85% ให้ทักผมทาง Telegram ทุก 5 นาที"
Enter fullscreen mode Exit fullscreen mode

Hermes จะเขียนสคริปต์ตรวจเก็บไว้ในโฟลเดอร์สคริปต์ แล้วตั้งงานแบบไม่ใช้ agent ให้ [3]

ตัวแปรที่เกี่ยวข้องชื่อ no_agent ซึ่งหมายถึงสคริปต์คือทั้งงาน ไม่มีการเรียกโมเดลในขั้นตอนใดเลย

ส่งผลเข้าห้องแชทของบอทได้

ส่วนนี้ต่อจากเรื่อง Bot Mode ในชุดเดียวกัน [2]

ผลลัพธ์ของ cron ส่งเข้าห้องแชทของบอทได้ และเมื่อไปถึง บอทตัวนั้นจะตอบกลับได้จริง [3]

ไม่ใช่แค่ทิ้งข้อความไว้ให้เราอ่าน แต่เป็นการเปิดให้ agent ทำงานต่อกับผลลัพธ์นั้นได้ทันที

เอกสารยังระบุวิธีต่อพ่วงงานหลายตัวเข้าด้วยกัน โดยให้ผลของงานหนึ่งกลายเป็นบริบทของอีกงานหนึ่ง [3]

ความสามารถเรื่องงานตามเวลาชุดนี้อยู่ในรุ่น v0.21.0 [1] และเอกสารฉบับเต็มเรื่องการมอบหมายงานให้ agent ลูกอยู่ในหน้า Delegation [5]

ผมเคยต้องเขียนตัวเชื่อมแบบนี้เองในระบบอื่น และเป็นส่วนที่พังบ่อยที่สุด เพราะไม่มีใครเห็นว่าตัวเชื่อมทำงานผิด

เรื่องที่ต้องระวังก่อนเอาไปใช้

งานตามเวลารันในเซสชันใหม่หมด

นี่คือกับดักที่ผมเคยตกเอง

งานตามเวลาของ Hermes รันในเซสชันใหม่ที่ไม่มีประวัติการคุยของเราเลย

คำสั่งแบบ "ไปดูเรื่องที่คุยกันเมื่อกี้" จึงใช้ไม่ได้

เอกสารยกตัวอย่างที่ชัด ว่าให้เขียนคำสั่งแบบที่บอกทุกอย่างที่ต้องใช้ เช่น เข้าเครื่องไหน ด้วยผู้ใช้ชื่ออะไร ตรวจด้วยคำสั่งอะไร และคาดหวังผลแบบไหน [3]

ระบบตรวจก่อนรัน

มีกลไกตรวจความพร้อมก่อนสร้างงานทุกครั้ง ทั้งการหาคีย์ของผู้ให้บริการ สกิลที่แนบมาว่าพร้อมไหม และปลายทางที่จะส่งผลว่ามีข้อมูลรับรองครบไหม

ถ้าไม่ผ่าน งานจะขึ้นสถานะว่าติดการตั้งค่า ส่งสัญญาณเตือนครั้งเดียว ไม่ส่งซ้ำทุกรอบ และไม่เรียกโมเดลเลย

ผมคิดว่านี่เป็นรายละเอียดที่ออกแบบมาดี เพราะงานที่ตั้งค่าผิดจะไม่เผาโควตาเงียบๆ อยู่เบื้องหลัง

งานไม่หยุดเพราะเราเปลี่ยนโมเดล

งานที่ไม่ได้ปักโมเดลไว้จะรันบนโมเดลและผู้ให้บริการที่โมเดลหลักตั้งไว้ตอนที่มันถึงเวลาทำงาน [3]

เปลี่ยนโมเดลหลัก งานที่ไม่ได้ปักไว้ก็เปลี่ยนตามในรอบถัดไป [3]

ถ้าต้องการให้งานตรึงอยู่กับโมเดลใดโมเดลหนึ่งตลอด ต้องปักงานไว้ หรือตั้ง cron.model เป็นค่าเริ่มต้นของทั้งฝูงงาน [3]

ผมเปลี่ยนโมเดลหลักของ Hermes บ่อยพอสมควร ส่วนงานที่ปล่อยว่างไว้ก็เปลี่ยนตามโมเดลหลักเองโดยที่ผมไม่ได้สั่ง

รุ่น v0.21.5 ที่ออก 24 กันยายน 2026 เป็นแท็กล่าสุดที่ปล่อยในเดือนนี้ [4]

แล้วมันเปลี่ยนอะไรกับคนที่ใช้ agent อยู่

สิ่งที่งานตามเวลาขาดมาตลอดคือความต่อเนื่อง

มันเริ่มใหม่ทุกครั้ง และการเริ่มใหม่ทุกครั้งในระบบที่ต้องจ่ายตามการใช้งานคือค่าใช้จ่ายที่ไม่มีใครได้อะไรกลับ

การให้งานตามเวลาจำได้ ทำให้งานแบบนี้เปลี่ยนสภาพ จากงานที่รันแล้วลืม เป็นงานที่สะสมบริบทได้เรื่อยๆ

ผมมีงานตรวจข่าว งานตรวจคลังความรู้ และงานรายงานสถานะ ที่ตอนนี้ทำงานต่างจากเดิมชัดเจนในข้อเดียว คือมันไม่รายงานเรื่องเดิมซ้ำอีก

ถ้าคุณมีงานตามเวลาที่ตั้งไว้แล้วรู้สึกว่ามันไม่ค่อยมีประโยชน์ ลองเปิดดูว่างานนั้นตั้งค่า continuity ไว้แล้วหรือยัง?

แล้วลองตอบคำถามนี้ดู งานที่รันทุกวันของเราจำได้ไหมว่ามันทำอะไรไปเมื่อวาน

ถ้าคำตอบคือไม่ นั่นคือจุดที่ควรเริ่มแก้


แหล่งอ้างอิง

[1] GitHub, NousResearch/hermes-agent "Hermes Agent v0.21.0 (v2026.8.31)" บันทึกการออก ส่วน Cron jobs that remember (31 สิงหาคม 2026 / ค.ศ. 2026) · https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.31

[2] Hermes Agent Docs, "Bot Mode" เอกสารทางการ หัวข้อ Bots across machines (เข้าถึง 4 ตุลาคม 2569 / ค.ศ. 2026) · https://hermes-agent.nousresearch.com/docs/user-guide/bot-mode

[3] Hermes Agent Docs, "Scheduled Tasks (Cron)" เอกสารทางการ (เข้าถึง 4 ตุลาคม 2569 / ค.ศ. 2026) · https://hermes-agent.nousresearch.com/docs/user-guide/features/cron

[4] GitHub, NousResearch/hermes-agent "Hermes Agent v0.21.5 (v2026.9.24)" บันทึกการออก (24 กันยายน 2026 / ค.ศ. 2026) · https://github.com/NousResearch/hermes-agent/releases/tag/v2026.9.24

[5] Hermes Agent Docs, "Subagent Delegation" เอกสารทางการ (เข้าถึง 4 ตุลาคม 2569 / ค.ศ. 2026) · https://hermes-agent.nousresearch.com/docs/user-guide/features/delegation

Top comments (0)