Selamat Datang Kembali ke Pesta Otomasi
Tutorial 21: Scheduled Tasks (Cron) — easy-to-understand guide based on official docs
Selamat Datang Kembali ke Pesta Otomasi
Di Tutorial 20, kita membangun bot briefing harian yang menyapa kamu setiap pagi. Lucu, kan? Nah, hari ini kita naik level. Sistem cron di Hermes bisa melakukan jauh lebih banyak daripada sekadar bilang “selamat pagi.” Kita bicara soal pemantau website, ringkasan mingguan, monitor GitHub, bahkan pipeline data — semuanya berjalan otomatis.
Bagian terbaiknya? Kamu nggak perlu jadi programmer untuk mengatur semua ini. Kamu cuma perlu tahu apa yang mau kamu otomatiskan, dan Hermes yang mengurus kerja beratnya.
Aturan Emas: Prompt yang Mandiri
Sebelum kita masuk ke pola-pola ini, ada satu konsep yang wajib kamu pahami: pekerjaan cron berjalan di sesi agen yang benar-benar baru. Artinya, agen kamu punya memori nol dari chat kamu saat ini. Nggak ada “ingat nggak yang kita bahas kemarin” — nggak ada yang kayak gitu.
Jadi setiap prompt yang kamu tulis harus sepenuhnya mandiri. Sertakan semua yang perlu diketahui agen: perintah yang harus dijalankan, sumber yang harus dicek, format yang kamu inginkan. Tulis semuanya dengan lengkap.
Anggap saja seperti menulis instruksi untuk anak magang yang sangat pintar yang baru saja masuk ruangan. Kamu nggak akan bilang “kerjakan hal yang sudah kita bahas.” Kamu akan bilang “ini yang harus kamu lakukan, langkah demi langkah.”
Pola 1: Pemantau Perubahan Website
Mau tahu saat pesaing mengubah halaman harga mereka? Atau saat blog favoritmu update? Pola ini memantau sebuah URL dan hanya mengganggumu saat ada yang benar-benar berubah.
Triknya ada di parameter --script. Sebuah skrip Python berjalan sebelum setiap eksekusi, melakukan kerja mekanis (mengambil data, membandingkan), dan keluarannya menjadi konteks untuk agen. Agen kemudian memutuskan: apakah perubahan ini menarik?
Ini skrip yang melakukan kerja beratnya:
# ~/.hermes/scripts/watch-site.py
import hashlib, json, os, urllib.request
URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-site-state.json")
req = urllib.request.Request(URL, headers={"User-Agent": "Hermes-Monitor/1.0"})
content = urllib.request.urlopen(req, 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, "url": URL}, 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"\nCurrent content (first 2000 chars):\n{content[:2000]}")
else:
print("NO_CHANGE")
Lalu atur pekerjaan cron-nya:
/cron add "every 1h" "If the script output says CHANGE DETECTED, summarize what changed on the page and why it might matter. If it says NO_CHANGE, respond with just [SILENT]." --script ~/.hermes/scripts/watch-site.py --name "Pricing monitor" --deliver telegram
Tips pro: Perhatikan instruksi [SILENT]? Itu penanda diam kamu. Saat agen merespons hanya dengan [SILENT], Hermes tahu untuk tidak mengganggumu. Nggak ada spam di jam-jam santaimu.
Pola 2: Laporan Mingguan
Yang satu ini sempurna untuk tetap update dengan industrimu. Berjalan setiap Senin jam 9 pagi dan menyusun ringkasan dari berbagai sumber.
/cron add "0 9 * * 1" "Generate a weekly report covering:
1. Search the web for the top 5 AI news stories from the past week
2. Search GitHub for trending repositories in the 'machine-learning' topic
3. Check Hacker News for the most discussed AI/ML posts
Format as a clean summary with sections for each source. Include links.
Keep it under 500 words — highlight only what matters." --name "Weekly AI digest" --deliver telegram
0 9 * * 1 adalah sintaks cron standar: menit 0, jam 9, tanggal berapa pun, bulan apa pun, Senin (1). Gampang kan kalau sudah tahu.
Pola 3: Pemantau Repositori GitHub
Pantau repo apa pun tanpa perlu me-refresh halaman setiap lima menit.
/cron add "every 6h" "Check the GitHub repository NousResearch/hermes-agent for:
- New issues opened in the last 6 hours
- New PRs opened or merged in the last 6 hours
- Any new releases
Use the terminal to run gh commands:
gh issue list --repo NousResearch/hermes-agent --state open --json number,title,author,createdAt --limit 10
gh pr list --repo NousResearch/hermes-agent --state all --json number,title,author,createdAt,mergedAt --limit 10
Filter to only items from the last 6 hours. If nothing new, respond with [SILENT].
Otherwise, provide a concise summary of the activity." --name "Repo watcher" --deliver discord
Perhatikan bagaimana prompt-nya menyertakan perintah gh yang persis? Itulah aturan mandiri yang bekerja. Agen nggak akan ingat cara kamu melakukan ini sebelumnya — kamu harus memberitahunya setiap saat.
Pola 4: Pipeline Pengumpulan Data
Yang satu ini untuk para pecinta data. Kumpulkan harga, metrik, atau data API apa pun secara berkala, simpan ke file, dan biarkan agen menemukan tren.
Skrip menangani pengumpulan (nggak ada token LLM yang terbuang untuk mengambil data), dan agen menangani analisis. Gabungkan keduanya untuk sistem deteksi tren yang powerful.
Alternatif Tanpa Token
Nggak butuh LLM sama sekali? Ada dua opsi:
-
Pekerjaan cron khusus skrip: Jika skripmu sudah menghasilkan pesan yang persis (peringatan memori, peringatan disk, heartbeat), lewati agen sepenuhnya. Cukup minta Hermes untuk mengaturnya — alat
cronjobtahu kapan harus menggunakanno_agent=True. -
Sekali jalan dari skrip yang berjalan: Gunakan
hermes senduntuk mengirim stdout atau file langsung ke Telegram, Discord, atau Slack. Sempurna untuk langkah CI, hook setelah commit, atau skrip deploy.
Penutup
Kamu sudah punya pola-polanya. Sekarang pergi dan otomatiskan sesuatu yang membosankan. Diri kamu di masa depan akan berterima kasih.
Untuk referensi fitur lengkap, cek dokumentasi Tugas Terjadwal (Cron). Dan ingat: prompt yang mandiri, [SILENT] untuk mode diam, dan skrip untuk kerja mekanis. Itu inti permainannya.
📖 Dokumentasi resmi
この記事は Hermes Agent のDokumentasi resmiに基づいています:Dokumentasi resmi › guides/automate-with-cron