Bienvenue à la Fête de l'Automatisation
Tutorial 21: Scheduled Tasks (Cron) — easy-to-understand guide based on official docs
Bienvenue à la Fête de l’Automatisation
Dans le tutoriel 20, nous avons construit un bot de briefing quotidien qui prend de vos nouvelles chaque matin. Sympa, non ? Eh bien, aujourd’hui, on passe au niveau supérieur. Le système cron d’Hermes peut faire bien plus que simplement dire « bonjour ». On parle de surveillants de sites web, de résumés hebdomadaires, de moniteurs GitHub, et même de pipelines de données — le tout en pilote automatique.
Le meilleur dans tout ça ? Pas besoin d’être programmeur pour les configurer. Il suffit de savoir ce que vous voulez automatiser, et Hermes s’occupe du travail de fond.
La Règle d’Or : Des Prompts Autonomes
Avant de plonger dans les modèles, il y a un concept que vous devez absolument comprendre : les tâches cron s’exécutent dans des sessions d’agent vierges. Cela signifie que votre agent n’a aucun souvenir de votre conversation actuelle. Pas de « souviens-toi de ce dont on a parlé hier » — rien de tout ça.
Chaque prompt que vous écrivez doit donc être complètement autonome. Incluez tout ce dont l’agent a besoin : les commandes à exécuter, les sources à vérifier, le format souhaité. Épelez tout.
Pensez-y comme à la rédaction d’instructions pour un stagiaire très intelligent qui vient d’arriver. Vous ne diriez pas « fais ce truc dont on a parlé ». Vous diriez « voici exactement quoi faire, étape par étape ».
Modèle 1 : Moniteur de Changement de Site Web
Vous voulez savoir dès que votre concurrent modifie sa page de tarifs ? Ou quand votre blog préféré publie un nouvel article ? Ce modèle surveille une URL et ne vous dérange que lorsqu’un changement se produit réellement.
L’astuce réside dans le paramètre --script. Un script Python s’exécute avant chaque exécution, effectue le travail mécanique (récupération, comparaison), et sa sortie devient le contexte pour l’agent. L’agent décide ensuite : ce changement est-il intéressant ?
Voici le script qui fait le travail de fond :
# ~/.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")
Ensuite, configurez la tâche 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
Astuce de pro : Vous remarquez l’instruction [SILENT] ? C’est votre marqueur de silence. Lorsque l’agent répond avec uniquement [SILENT], Hermes sait qu’il ne doit pas vous déranger. Pas de spam pendant vos heures de repos.
Modèle 2 : Rapport Hebdomadaire
Celui-ci est parfait pour rester à la pointe de votre secteur. Il s’exécute tous les lundis à 9h et compile un résumé à partir de multiples sources.
/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
Le 0 9 * * 1 est la syntaxe cron standard : minute 0, heure 9, n’importe quel jour du mois, n’importe quel mois, lundi (1). Facile une fois qu’on le sait.
Modèle 3 : Surveillant de Dépôt GitHub
Gardez un œil sur n’importe quel dépôt sans avoir à rafraîchir la page toutes les cinq minutes.
/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
Remarquez comment le prompt inclut les commandes gh exactes ? C’est la règle de l’autonomie en action. L’agent ne se souviendra pas de comment vous avez fait la dernière fois — vous devez le lui dire à chaque fois.
Modèle 4 : Pipeline de Collecte de Données
Celui-ci est pour les passionnés de données. Collectez des prix, des métriques, ou n’importe quelles données d’API à intervalles réguliers, sauvegardez-les dans des fichiers, et laissez l’agent repérer les tendances.
Le script gère la collecte (pas de tokens LLM gaspillés pour la récupération), et l’agent gère l’analyse. Combinez-les pour un puissant système de détection de tendances.
Alternatives Zéro-Token
Pas besoin du LLM du tout ? Deux options :
-
Tâches cron script-only : Si votre script produit déjà le message exact (alertes mémoire, avertissements de disque, heartbeats), contournez complètement l’agent. Demandez simplement à Hermes de le configurer — l’outil
cronjobsait quand utiliserno_agent=True. -
Envoi unique depuis un script en cours d’exécution : Utilisez
hermes sendpour rediriger stdout ou un fichier directement vers Telegram, Discord, ou Slack. Parfait pour les étapes CI, les hooks post-commit, ou les scripts de déploiement.
Pour Conclure
Vous avez les modèles. Maintenant, allez automatiser quelque chose d’ennuyeux. Vous vous remercierez plus tard.
Pour la référence complète des fonctionnalités, consultez la documentation sur les Tâches Planifiées (Cron). Et rappelez-vous : des prompts autonomes, [SILENT] pour le silence, et des scripts pour le travail mécanique. C’est tout le jeu.
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › guides/automate-with-cron