Script-Only Cron Jobs: Automate Without Burning Tokens
Script-Only Cron Jobs — easy-to-understand guide based on official docs
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