🤖HermesBlog
Hermes Feature Guides · Parte 168/9/2026

Script-Only Cron Jobs: Automate Without Burning Tokens

Script-Only Cron Jobs — easy-to-understand guide based on official docs

guide-cron-script-only

Script-Only Cron Jobs: ระบบอัตโนมัติแบบไม่เผา Token

ถ้าคุณเคยลองเล่นกับ Hermes cron jobs คุณก็คงรู้แล้วว่ามันทรงพลังแค่ไหน แต่คำถามคือ ถ้าคุณไม่ต้องการให้ LLM คิดอะไร—แค่ต้องการให้อะไรบางอย่างทำงานตามตารางเวลาแล้วบอกคุณว่ามันเกิดอะไรขึ้นล่ะ?

นั่นคือจุดที่ script-only cron jobs เข้ามามีบทบาท ให้คิดว่ามันคือเลเยอร์ระบบอัตโนมัติแบบไม่มีการปรุงแต่ง: ตัวจัดตารางเวลาเดียวกัน, การส่งข้อความเดียวกัน, แต่ใช้ LLM tokens เป็นศูนย์

เมื่อไหร่ควรใช้ Script-Only Cron Jobs?

งานแบบ script-only จะโดดเด่นเมื่อสคริปต์สร้างข้อความที่คุณอยากเห็นออกมาได้ตรงๆ อยู่แล้ว ไม่ต้องใช้การคิดวิเคราะห์ ไม่ต้องสรุปความ แค่ผลลัพธ์ที่แน่นอนและตรงไปตรงมา

นี่คือกรณีการใช้งานคลาสสิก:

  • การแจ้งเตือนหน่วยความจำ – สคริปต์ของคุณเช็คการใช้งาน RAM แล้วแสดงผล “Memory at 92%”
  • การแจ้งเตือนพื้นที่ดิสก์ – ไอเดียเดียวกัน ต่างกันที่ตัววัด
  • Heartbeats – บริการของคุณยังทำงานอยู่ นี่คือหลักฐาน
  • การมอนิเตอร์ใดๆ ที่สคริปต์รู้คำตอบอยู่แล้ว – ถ้ามันพังก็บอกไปเลย ถ้าปกติดีก็เงียบไว้

ความสวยงาม? คุณได้ความน่าเชื่อถือของสคริปต์ ผสานพลังการส่งข้อความของ Hermes ไม่มีค่า token ไม่มีความหน่วง ไม่มีดีเลย์แบบ “ขอคิดก่อนนะ”

วิธีตั้งค่า

วิธีที่ง่ายที่สุด? แค่บอก Hermes ในแชทไปตรงๆ เครื่องมือ cronjob ฉลาดพอที่จะรู้ว่าเมื่อไหร่ควรใช้ no_agent=True มันจะเขียนสคริปต์ให้คุณเองและตั้งค่าทุกอย่างให้เรียบร้อย

แต่ถ้าอยากทำด้วยตัวเอง นี่คือแพทเทิร์น:

/cron add "every 1h" "This prompt won't be used" --script ~/.hermes/scripts/my-check.py --name "My monitor" --deliver telegram

เดี๋ยว โปรนต์นั้นดูแปลกๆ ขออธิบายก่อน

สคริปต์คือคนพูด

สำหรับ script-only cron jobs ผลลัพธ์จาก stdout ของสคริปต์จะกลายเป็นข้อความที่ส่งออกไป ไม่มี LLM มาคั่นกลาง ดังนั้นสคริปต์ของคุณต้องแสดงผลสิ่งที่อยากให้ส่งออกไปตรงๆ

นี่คือตัวอย่างง่ายๆ:

#!/usr/bin/env python3
import shutil

total, used, free = shutil.disk_usage("/")
percent = used / total * 100

if percent > 90:
    print(f"⚠️ Disk at {percent:.1f}% — clean up now!")
else:
    print("[SILENT]")

เห็น [SILENT] ตรงท้ายไหม? นั่นคือเครื่องหมายเงียบมหัศจรรย์ เมื่อ Hermes เจอ [SILENT] ในผลลัพธ์ มันจะไม่ส่งอะไรออกมา สคริปต์ของคุณเป็นคนตัดสินใจว่าอะไรควรค่าแก่การรบกวนคุณ

เทคนิค [SILENT]

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

ตรรกะของสคริปต์คุณ:

  • เจอปัญหา? พิมพ์ข้อความแจ้งเตือน
  • ทุกอย่างปกติ? พิมพ์ [SILENT]

Hermes จัดการที่เหลือให้ ไม่มีการแจ้งเตือนในช่วงเวลาที่เงียบสงบ ไม่มีอาการเบื่อการแจ้งเตือน ไม่มีคำถามว่า “ทำไมโทรศัพท์ฉันสั่นตอนตี 3 ทั้งที่เซิร์ฟเวอร์ปกติดี?”

Script-Only เทียบกับ hermes send

มีอีกหนึ่งตัวเลือกแบบ zero-token ที่น่ารู้จัก: hermes send ใช้มันเมื่อคุณมีสคริปต์ที่รันอยู่ที่ไหนสักแห่งแล้ว—ขั้นตอน CI, post-commit hook, สคริปต์ deploy—และคุณแค่อยากส่งผลลัพธ์ต่อไปยัง Telegram หรือ Discord

./my-deploy-script.sh | hermes send --channel telegram

ความแตกต่าง? Script-only cron jobs มีไว้สำหรับการเช็คแบบ เป็นรอบ ตามตารางเวลา ส่วน hermes send มีไว้สำหรับจังหวะ ครั้งเดียวจบ เมื่อสคริปต์ของคุณตัดสินใจว่าถึงเวลาต้องพูด

ตัวอย่างโลกจริง: ตัวมอนิเตอร์การเปลี่ยนแปลงเว็บไซต์

ลองประกอบทุกอย่างเข้าด้วยกัน นี่คือสคริปต์ที่เฝ้าดูหน้าเว็บและจะพูดก็ต่อเมื่อมีอะไรเปลี่ยนแปลง:

import hashlib, json, os, urllib.request

URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-state.json")

content = urllib.request.urlopen(URL, timeout=30).read().decode()
current_hash = hashlib.sha256(content.encode()).hexdigest()

prev_hash = None
if os.path.exists(STATE_FILE):
    with open(STATE_FILE) as f:
        prev_hash = json.load(f).get("hash")

with open(STATE_FILE, "w") as f:
    json.dump({"hash": current_hash}, f)

if prev_hash and prev_hash != current_hash:
    print(f"CHANGE DETECTED on {URL}")
    print(f"Previous hash: {prev_hash}")
    print(f"Current hash: {current_hash}")
    print(f"\nFirst 2000 chars:\n{content[:2000]}")
else:
    print("[SILENT]")

ตั้งค่าด้วย:

/cron add "every 1h" "unused" --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram

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

สรุป

Script-only cron jobs คือม้างานระบบอัตโนมัติแบบ zero-token ของคุณ เหมาะสำหรับ:

  • การเช็คแบบตายตัว ที่คำตอบเป็นได้แค่สองทาง
  • การมอนิเตอร์ความถี่สูง ที่ค่าใช้จ่าย LLM จะบานปลาย
  • อะไรก็ตามที่คุณไว้ใจการตัดสินใจของสคริปต์ มากกว่าการตีความของ LLM

และที่เจ๋งที่สุด? คุณไม่ต้องเลือกระหว่างงานแบบ script-only กับงานที่ใช้ LLM ผสมกันได้ในเวิร์กโฟลว์เดียวกัน ใช้สคริปต์สำหรับการเช็คเชิงกลไก แล้วให้ LLM จัดการเรื่องที่น่าสนใจ—อย่างการสรุป ว่าทำไม การเปลี่ยนแปลงบนเว็บไซต์นั้นถึงสำคัญ

อยากเจาะลึกมากขึ้น? ลองดู เอกสาร cron ฉบับเต็ม หรือ บทช่วยสอนบอทสรุปข่าวประจำวัน เพื่อดูด้านที่ใช้พลัง LLM

📖 เอกสารทางการ

この記事は Hermes Agent のเอกสารทางการに基づいています:เอกสารทางการ › guides/automate-with-cron