Cron Job Chỉ Dùng Script: Tự Động Hóa Mà Không Tốn Token
Script-Only Cron Jobs — easy-to-understand guide based on official docs
Cron Job Chỉ Dùng Script: Tự Động Hóa Mà Không Tốn Token
Nếu bạn đã từng chơi với cron job của Hermes, bạn biết chúng mạnh mẽ đến mức nào. Nhưng đây là câu hỏi: nếu bạn không cần LLM phải suy nghĩ—mà chỉ cần thứ gì đó chạy theo lịch trình và báo cho bạn biết chuyện gì đã xảy ra thì sao?
Đó là lúc cron job chỉ dùng script xuất hiện. Hãy nghĩ về chúng như lớp tự động hóa không rườm rà của bạn: cùng bộ lập lịch, cùng cơ chế gửi tin, nhưng tốn 0 token LLM.
Khi Nào Nên Dùng Cron Job Chỉ Dùng Script?
Cron job chỉ dùng script tỏa sáng khi bản thân script đã tạo ra chính xác thông điệp bạn muốn nhận. Không cần suy luận, không cần tóm tắt. Chỉ là kết quả thuần túy, xác định trước.
Dưới đây là các trường hợp sử dụng kinh điển:
- Cảnh báo bộ nhớ – script của bạn kiểm tra RAM và xuất ra “Memory at 92%”
- Cảnh báo dung lượng ổ đĩa – ý tưởng tương tự, chỉ khác chỉ số
- Tín hiệu heartbeat – dịch vụ của bạn vẫn đang hoạt động, đây là bằng chứng
- Bất kỳ hoạt động giám sát nào mà script đã biết câu trả lời – nếu hỏng thì nói hỏng; nếu ổn thì im lặng
Điểm hay nhất? Bạn có độ tin cậy của một script kết hợp với sức mạnh gửi tin của Hermes. Không tốn token, không độ trễ, không kiểu “để tôi nghĩ đã”.
Cách Thiết Lập
Cách dễ nhất? Chỉ cần hỏi Hermes trong chat. Công cụ cronjob đủ thông minh để biết khi nào nên dùng no_agent=True. Nó sẽ viết script cho bạn và thiết lập mọi thứ.
Nhưng nếu bạn muốn làm thủ công, đây là mẫu:
/cron add "every 1h" "This prompt won't be used" --script ~/.hermes/scripts/my-check.py --name "My monitor" --deliver telegram
Khoan, cái prompt đó trông kỳ lạ. Để tôi giải thích.
Script Sẽ Nói Chuyện
Với cron job chỉ dùng script, stdout của script chính là thông điệp. Không có LLM ở giữa. Vì vậy script của bạn cần xuất ra chính xác những gì bạn muốn gửi đi.
Đây là một ví dụ đơn giản:
#!/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]")
Thấy chữ [SILENT] ở cuối không? Đó là dấu hiệu im lặng thần kỳ. Khi Hermes thấy [SILENT] trong output, nó sẽ không gửi gì cả. Script của bạn tự quyết định điều gì đáng để làm phiền bạn.
Mẹo [SILENT]
Đây là tính năng “sát thủ” cho các script giám sát. Thay vì bị ping mỗi giờ với thông báo “mọi thứ ổn”, bạn chỉ nhận tin từ Hermes khi thực sự có vấn đề cần chú ý.
Logic của script bạn:
- Phát hiện vấn đề? In thông báo cảnh báo
- Mọi thứ ổn? In
[SILENT]
Hermes lo phần còn lại. Không thông báo trong giờ yên tĩnh, không hội chứng mệt mỏi vì thông báo, không kiểu “sao điện thoại tôi rung lúc 3 giờ sáng vì một con server khỏe mạnh?”
Script-Only vs. hermes send
Có một lựa chọn zero-token khác đáng biết: hermes send. Dùng nó khi bạn có một script đang chạy ở đâu đó—một bước CI, một hook sau commit, một script deploy—và bạn chỉ muốn chuyển output sang Telegram hoặc Discord.
./my-deploy-script.sh | hermes send --channel telegram
Sự khác biệt? Cron job chỉ dùng script dành cho các kiểm tra định kỳ, theo lịch trình. hermes send dành cho những thời điểm một lần khi script của bạn quyết định đã đến lúc lên tiếng.
Ví Dụ Thực Tế: Trình Giám Sát Thay Đổi Website
Hãy kết hợp tất cả lại. Đây là một script theo dõi một trang web và chỉ lên tiếng khi có gì đó thay đổi:
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]")
Thiết lập với:
/cron add "every 1h" "unused" --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram
Script tải trang, so sánh hash, và chỉ lên tiếng khi có gì đó khác biệt. Không tốn token LLM, không ồn ào, chỉ là tự động hóa thuần túy.
Kết Luận
Cron job chỉ dùng script là con ngựa thồ tự động hóa zero-token của bạn. Chúng hoàn hảo cho:
- Các kiểm tra xác định khi câu trả lời là nhị phân
- Giám sát tần suất cao khi chi phí LLM sẽ tăng vọt
- Bất cứ điều gì bạn tin vào phán đoán của script hơn là sự diễn giải của LLM
Và phần tuyệt nhất? Bạn không phải chọn giữa script-only và LLM-powered jobs. Trộn chúng trong cùng một quy trình. Dùng script cho các kiểm tra cơ học, và để LLM xử lý những thứ thú vị—như tóm tắt tại sao thay đổi trên website đó lại quan trọng.
Muốn tìm hiểu sâu hơn? Xem tài liệu cron đầy đủ hoặc hướng dẫn bot bản tin hàng ngày để thấy khía cạnh vận hành bằng LLM.
📖 Tài liệu chính thức
この記事は Hermes Agent のTài liệu chính thứcに基づいています:Tài liệu chính thức › guides/automate-with-cron