Willkommen zurück zur Automatisierungsparty
Tutorial 21: Scheduled Tasks (Cron) — easy-to-understand guide based on official docs
Willkommen zurück zur Automatisierungsparty
In Tutorial 20 haben wir einen täglichen Briefing-Bot gebaut, der dich jeden Morgen begrüßt. Süß, oder? Nun, heute legen wir eine Schippe drauf. Das Cron-System in Hermes kann viel mehr als nur “Guten Morgen” sagen. Wir reden hier über Website-Wächter, wöchentliche Zusammenfassungen, GitHub-Monitore und sogar Datenpipelines – alles im Autopilot-Modus.
Das Beste daran? Du musst kein Programmierer sein, um das einzurichten. Du musst nur wissen, was du automatisieren willst, und Hermes übernimmt die schwere Arbeit.
Die goldene Regel: In sich geschlossene Prompts
Bevor wir in die Muster eintauchen, gibt es ein Konzept, das du unbedingt verstehen musst: Cron-Jobs laufen in frischen Agent-Sitzungen. Das bedeutet, dein Agent hat null Erinnerung an deinen aktuellen Chat. Kein “Erinnerst du dich, worüber wir gestern gesprochen haben” – nichts davon.
Jeder Prompt, den du schreibst, muss also vollständig in sich geschlossen sein. Füge alles hinzu, was der Agent wissen muss: die Befehle, die ausgeführt werden sollen, die Quellen, die geprüft werden sollen, das Format, das du willst. Schreib alles aus.
Stell es dir vor wie das Schreiben von Anweisungen für einen sehr schlauen Praktikanten, der gerade zur Tür hereinkommt. Du würdest nicht sagen “mach das Ding, das wir besprochen haben”. Du würdest sagen “hier ist genau, was zu tun ist, Schritt für Schritt”.
Muster 1: Website-Änderungsmonitor
Willst du wissen, wann ein Konkurrent seine Preisseite ändert? Oder wann dein Lieblingsblog aktualisiert wird? Dieses Muster beobachtet eine URL und meldet sich nur, wenn sich tatsächlich etwas ändert.
Der Trick ist der --script-Parameter. Ein Python-Skript läuft vor jeder Ausführung, erledigt die mechanische Arbeit (Abrufen, Vergleichen), und seine Ausgabe wird zum Kontext für den Agenten. Der Agent entscheidet dann: Ist diese Änderung interessant?
Hier ist das Skript, das die schwere Arbeit erledigt:
# ~/.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")
Dann richtest du den Cron-Job ein:
/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
Profi-Tipp: Siehst du die [SILENT]-Anweisung? Das ist dein Ruhe-Marker. Wenn der Agent nur mit [SILENT] antwortet, weiß Hermes, dass es dich nicht stören soll. Kein Spam außerhalb deiner Arbeitszeiten.
Muster 2: Wochenbericht
Das ist perfekt, um in deiner Branche auf dem Laufenden zu bleiben. Es läuft jeden Montag um 9 Uhr und erstellt eine Zusammenfassung aus mehreren Quellen.
/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
Das 0 9 * * 1 ist die Standard-Cron-Syntax: Minute 0, Stunde 9, beliebiger Tag im Monat, beliebiger Monat, Montag (1). Einfach, wenn man es einmal weiß.
Muster 3: GitHub-Repository-Wächter
Behalte jedes Repo im Auge, ohne alle fünf Minuten die Seite zu aktualisieren.
/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
Siehst du, wie der Prompt die genauen gh-Befehle enthält? Das ist die in sich geschlossene Regel in Aktion. Der Agent wird sich nicht erinnern, wie du das letztes Mal gemacht hast – du musst es ihm jedes Mal sagen.
Muster 4: Datensammel-Pipeline
Das ist für die Daten-Nerds. Sammle Preise, Metriken oder beliebige API-Daten in regelmäßigen Abständen, speichere sie in Dateien und lass den Agenten Trends erkennen.
Das Skript übernimmt das Sammeln (keine LLM-Tokens für das Abrufen verschwenden), und der Agent übernimmt die Analyse. Kombiniere beides für ein leistungsstarkes Trend-Erkennungssystem.
Null-Token-Alternativen
Brauchst du das LLM gar nicht? Zwei Optionen:
-
Nur-Skript-Cron-Jobs: Wenn dein Skript bereits die exakte Nachricht erzeugt (Speicherwarnungen, Festplattenwarnungen, Heartbeats), überspringe den Agenten komplett. Bitte Hermes einfach, es einzurichten – das
cronjob-Tool weiß, wann esno_agent=Trueverwenden muss. -
Einmalig aus einem laufenden Skript: Verwende
hermes send, um stdout oder eine Datei direkt an Telegram, Discord oder Slack zu leiten. Perfekt für CI-Schritte, Post-Commit-Hooks oder Deploy-Skripte.
Zusammenfassung
Du hast die Muster. Jetzt geh und automatisiere etwas Langweiliges. Dein zukünftiges Ich wird es dir danken.
Für die vollständige Funktionsreferenz schau in die Scheduled Tasks (Cron) Dokumentation. Und denk dran: In sich geschlossene Prompts, [SILENT] für Ruhe und Skripte für die mechanische Arbeit. Das ist das ganze Spiel.
📖 Offizielle Dokumentation
この記事は Hermes Agent のOffizielle Dokumentationに基づいています:Offizielle Dokumentation › guides/automate-with-cron