Bentornato alla Festa dell'Automazione
Tutorial 21: Scheduled Tasks (Cron) — easy-to-understand guide based on official docs
Bentornato alla Festa dell’Automazione
Nel Tutorial 20, abbiamo creato un bot di briefing quotidiano che ti saluta ogni mattina. Carino, vero? Bene, oggi saliamo di livello. Il sistema cron di Hermes può fare molto più che dire semplicemente “buongiorno”. Parliamo di monitoraggio di siti web, riepiloghi settimanali, sorveglianza di repository GitHub e persino pipeline di dati — tutto in modalità pilota automatico.
La parte migliore? Non devi essere un programmatore per configurarli. Devi solo sapere cosa vuoi automatizzare, e Hermes si occupa del lavoro pesante.
La Regola d’Oro: Prompt Autosufficienti
Prima di immergerci nei pattern, c’è un concetto che devi assolutamente capire: i job cron vengono eseguiti in sessioni agente nuove di zecca. Questo significa che il tuo agente ha zero memoria della chat corrente. Niente “ricorda quello di cui abbiamo parlato ieri” — niente di tutto questo.
Quindi ogni prompt che scrivi deve essere completamente autosufficiente. Includi tutto ciò di cui l’agente ha bisogno: i comandi da eseguire, le fonti da controllare, il formato che desideri. Scrivi tutto per esteso.
Pensalo come scrivere istruzioni per uno stagista molto intelligente che è appena entrato dalla porta. Non diresti “fai quella cosa di cui abbiamo parlato”. Diresti “ecco esattamente cosa fare, passo dopo passo”.
Pattern 1: Monitoraggio Modifiche Sito Web
Vuoi sapere nel momento esatto in cui un concorrente modifica la pagina dei prezzi? O quando il tuo blog preferito si aggiorna? Questo pattern osserva un URL e ti disturba solo quando qualcosa cambia davvero.
Il trucco è il parametro --script. Uno script Python viene eseguito prima di ogni esecuzione, fa il lavoro meccanico (recupero, confronto), e il suo output diventa contesto per l’agente. L’agente poi decide: questo cambiamento è interessante?
Ecco lo script che fa il lavoro pesante:
# ~/.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")
Poi configura il job cron:
/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
Consiglio da pro: Noti l’istruzione [SILENT]? È il tuo marcatore di silenzio. Quando l’agente risponde solo con [SILENT], Hermes sa di non disturbarti. Niente spam durante le tue ore libere.
Pattern 2: Report Settimanale
Questo è perfetto per restare al passo con il tuo settore. Viene eseguito ogni lunedì alle 9:00 e compila un riepilogo da più fonti.
/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
Il 0 9 * * 1 è la sintassi cron standard: minuto 0, ora 9, qualsiasi giorno del mese, qualsiasi mese, lunedì (1). Facile una volta che lo conosci.
Pattern 3: Osservatore di Repository GitHub
Tieni d’occhio qualsiasi repository senza dover aggiornare la pagina ogni cinque minuti.
/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
Noti come il prompt includa i comandi gh esatti? È la regola dell’autosufficienza in azione. L’agente non ricorderà come hai fatto l’ultima volta — devi dirglielo ogni singola volta.
Pattern 4: Pipeline di Raccolta Dati
Questo è per gli appassionati di dati. Raccogli prezzi, metriche o qualsiasi dato API a intervalli regolari, salvali in file e lascia che l’agente individui le tendenze.
Lo script gestisce la raccolta (niente token LLM sprecati per il recupero), e l’agente gestisce l’analisi. Combinali per un potente sistema di rilevamento delle tendenze.
Alternative a Zero Token
Non ti serve affatto l’LLM? Due opzioni:
-
Job cron solo script: Se il tuo script produce già il messaggio esatto (avvisi di memoria, avvisi disco, heartbeat), salta del tutto l’agente. Chiedi semplicemente a Hermes di configurarlo — lo strumento
cronjobsa quando usareno_agent=True. -
One-shot da uno script in esecuzione: Usa
hermes sendper inviare l’output standard o un file direttamente a Telegram, Discord o Slack. Perfetto per passi CI, hook post-commit o script di deploy.
Conclusione
Hai i pattern. Ora vai ad automatizzare qualcosa di noioso. Il tuo io futuro ti ringrazierà.
Per il riferimento completo alle funzionalità, dai un’occhiata alla documentazione delle Attività Pianificate (Cron). E ricorda: prompt autosufficienti, [SILENT] per il silenzio e script per il lavoro meccanico. Questo è tutto il gioco.
📖 Documentazione ufficiale
この記事は Hermes Agent のDocumentazione ufficialeに基づいています:Documentazione ufficiale › guides/automate-with-cron