Améliorez votre jeu Cron : 5 modèles d'automatisation à utiliser dès aujourd'hui
Cron Troubleshooting Guide — easy-to-understand guide based on official docs
Améliorez votre jeu Cron : 5 modèles d’automatisation à utiliser dès aujourd’hui
Vous avez configuré votre premier cron job avec Hermes Agent et vous êtes accro. Mais saviez-vous qu’il y a tellement plus à faire ? Le tutoriel du bot de briefing quotidien n’est que le début. Explorons cinq modèles d’automatisation concrets qui vous simplifieront la vie.
La règle d’or : des prompts autonomes
Avant de plonger, voici la chose la plus importante à retenir : les cron jobs s’exécutent dans des sessions d’agent vierges. Votre agent n’a aucune mémoire de votre conversation actuelle. Chaque prompt doit donc être complètement autonome — incluez tout ce dont l’agent a besoin, du contexte aux commandes exactes.
Passez votre tour sur le LLM quand vous n’en avez pas besoin
Toutes les automatisations n’ont pas besoin d’un modèle de langage. Vous avez deux options zéro token :
- Watchdog récurrent : Si votre script produit déjà le message exact (comme des alertes mémoire ou des heartbeats), utilisez les cron jobs script-only. Demandez simplement à Hermes dans le chat — l’outil
cronjobsait quand utiliserno_agent=Trueet écrit le script pour vous. - One-shot depuis un script en cours d’exécution : Pour les étapes CI ou les hooks de déploiement, utilisez
hermes sendpour envoyer la sortie directement sur Telegram ou Discord sans aucune configuration cron.
Modèle 1 : Moniteur de changement de site web
Vous voulez savoir quand une page de tarification change ou quand un concurrent met à jour son site ? Ce modèle utilise un script Python pour le travail mécanique, et l’agent gère le raisonnement.
Commencez par créer votre script de surveillance :
mkdir -p ~/.hermes/scripts
import hashlib, json, os, urllib.request
URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-site-state.json")
# Fetch current content
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()
# Load previous state
prev_hash = None
if os.path.exists(STATE_FILE):
with open(STATE_FILE) as f:
prev_hash = json.load(f).get("hash")
# Save current state
with open(STATE_FILE, "w") as f:
json.dump({"hash": current_hash, "url": URL}, f)
# Output for the agent
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")
Maintenant, configurez le cron job :
/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 : L’astuce [SILENT] est en or. Quand rien n’a changé, l’agent répond avec juste [SILENT], et la livraison cron traite cela comme le marqueur silencieux. Vous n’êtes notifié que lorsque quelque chose se passe réellement — pas de spam pendant les heures calmes.
Modèle 2 : Rapport hebdomadaire
Compilez des informations provenant de plusieurs sources dans un résumé formaté. Ceci s’exécute tous les lundis à 9h :
/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
Depuis la CLI, cela ressemble à ceci :
hermes cron create "0 9 * * 1" \
"Generate a weekly report covering the top AI news, trending ML GitHub repos, and most-discussed HN posts. Format with sections, include links, keep under 500 words." \
--name "Weekly AI digest" \
--deliver telegram
Le 0 9 * * 1 est une expression cron standard : 9h00 tous les lundis.
Modèle 3 : Surveillant de dépôt GitHub
Gardez un œil sur n’importe quel dépôt pour les nouvelles issues, PRs ou releases :
/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
Attention : Remarquez comment le prompt inclut les commandes gh exactes ? C’est intentionnel. L’agent cron n’a aucun historique de conversation — épellez tout. (La mémoire persistante se charge bien, donc les préférences durables enregistrées dans MEMORY.md sont conservées, mais ne vous y fiez pas pour les détails critiques du travail.)
Modèle 4 : Pipeline de collecte de données
Récupérez des données à intervalles réguliers, enregistrez-les dans des fichiers, et détectez les tendances au fil du temps. Ceci combine un script pour la collecte avec l’agent pour l’analyse :
import json, os, urllib.request
from datetime import datetime
DATA_DIR = os.path.expanduser("~/.hermes/data/prices")
os.makedirs(DATA_DIR, exist_ok=True)
# Fetch current data (example: crypto prices)
url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd"
data = json.loads(urllib.request.urlopen(url, timeout=30).read())
# Append to history file
entry = {"timestamp": datetime.now().isoformat(), "prices": data}
history_file = os.path.join(DATA_DIR, "history.jsonl")
with open(history_file, "a") as f:
f.write(json.dumps(entry) + "\n")
print(f"Collected prices at {entry['timestamp']}: BTC ${data['bitcoin']['usd']}, ETH ${data['ethereum']['usd']}")
Ensuite, configurez un cron job qui exécute le script et demande à l’agent d’analyser les données collectées pour détecter les tendances.
Modèle 5 : Le watchdog script-only
Pour les alertes où le script produit déjà le message exact, zappez complètement le LLM :
/cron add "every 5m" --script ~/.hermes/scripts/check-disk.py --no-agent --deliver slack
L’outil cronjob choisit automatiquement no_agent=True quand cela a du sens, et écrit le script pour vous.
Prêt à automatiser ?
Ces modèles ne sont que des points de départ. Mélangez-les et combinez-les — utilisez des scripts pour le travail mécanique, des agents pour le raisonnement, et [SILENT] pour garder vos notifications propres. Pour la référence complète des fonctionnalités, consultez la documentation sur les Tâches planifiées (Cron). Bonne automatisation !
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › guides/automate-with-cron