🤖HermesBlog
Hermes Feature Guides · Partie 88/9/2026

Automatisez tout avec Cron

Automate Everything with Cron — easy-to-understand guide based on official docs

guide-automate-cron

Automatisez tout avec Cron

Si vous avez lu notre tutoriel sur le bot de briefing quotidien, vous connaissez déjà les bases des tâches cron. Mais ce n’est que la partie émergée de l’iceberg. Aujourd’hui, nous allons plus loin — cinq schémas d’automatisation concrets que vous pouvez récupérer et adapter à vos propres flux de travail.

Avant de plonger, voici la règle d’or : les tâches cron s’exécutent dans des sessions d’agent vierges, sans mémoire de votre conversation en cours. Vos instructions doivent être complètement autonomes. Incluez tout ce dont l’agent a besoin — commandes, contexte, attentes. Pensez-y comme à la rédaction d’instructions pour un stagiaire très intelligent qui vient tout juste d’arriver.

Alternatives zéro token (Économisez vos appels LLM)

Toutes les automatisations n’ont pas besoin d’un LLM. Deux options vous permettent d’éviter complètement le coût en tokens :

  • Chien de garde récurrent — si votre script produit déjà le message exact (alertes mémoire, avertissements disque, heartbeats), utilisez les tâches cron script-only. Même planificateur, aucun LLM. Il suffit de demander à Hermes dans le chat — l’outil cronjob sait quand choisir no_agent=True et écrit le script pour vous.
  • Envoi ponctuel depuis un script en cours d’exécution — pour les étapes CI, les hooks post-commit ou les scripts de déploiement, utilisez hermes send pour envoyer la sortie standard ou un fichier directement vers Telegram, Discord, Slack, etc. Aucune entrée cron nécessaire.

Schéma 1 : Surveillance de changement de site web

Surveillez une URL et soyez notifié uniquement lorsque quelque chose change réellement. L’arme secrète ici est le paramètre script — un script Python s’exécute avant chaque exécution, et sa sortie standard devient le contexte pour l’agent. Le script gère le travail mécanique (récupération, comparaison) ; l’agent gère le raisonnement (ce changement est-il intéressant ?).

Commencez par créer le 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 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

L’astuce [SILENT] : Pour les tâches de surveillance, demandez à l’agent de répondre uniquement avec [SILENT] lorsque rien n’a changé. La livraison cron traite cela comme un marqueur silencieux — vous n’êtes notifié que lorsque quelque chose se produit réellement. Pas de spam pendant les heures calmes.


Schéma 2 : Rapport hebdomadaire

Compilez des informations provenant de plusieurs sources dans un résumé formaté. Cette tâche s’exécute une fois par semaine et livre le résultat sur votre canal principal.

/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 :

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

0 9 * * 1 est une expression cron standard : 9h00 chaque lundi.


Schéma 3 : Surveilleur de dépôt GitHub

Surveillez un dépôt pour détecter les nouvelles issues, PR ou versions.

/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

Les instructions autonomes sont essentielles. Remarquez comment l’invite inclut les commandes gh exactes. L’agent cron n’a aucun historique de conversation des exécutions précédentes — explicitez tout. (La mémoire persistante se charge bien, donc les préférences durables enregistrées dans MEMORY.md sont conservées, mais ne comptez pas dessus pour les détails critiques de la tâche.)


Schéma 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. Ce schéma 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")

# Output for the agent
print(f"Collected prices at {entry['timestamp']}: {data}")

Ensuite, configurez une tâche cron qui exécute le script et demande à l’agent d’analyser les données collectées :

/cron add "every 30m" "Run the collection script, then analyze the price history in ~/.hermes/data/prices/history.jsonl. If you notice a significant trend (more than 5% change in the last hour), summarize it. Otherwise respond with [SILENT]." --script ~/.hermes/scripts/collect-prices.py --name "Price tracker" --deliver telegram

Schéma 5 : L’approche « Demandez simplement »

Vous ne voulez pas écrire de scripts ni mémoriser la syntaxe cron ? Décrivez simplement ce que vous voulez en langage naturel :

/cron add "every 2h" "Check if there are any new articles about AI regulation on Google News. If there are, summarize the top 3. If nothing new, respond with [SILENT]." --name "AI regulation watch" --deliver telegram

L’agent se débrouille pour le reste — recherche sur le web, filtrage des résultats et mise en forme de la sortie.


Pour conclure

Ces cinq schémas couvrent les scénarios d’automatisation les plus courants : surveillance, reporting, veille de dépôts, collecte de données et tâches simples « demandez simplement ». Les points clés à retenir :

  1. Les scripts gèrent le travail mécanique — récupération, comparaison, collecte
  2. Les agents gèrent le raisonnement — est-ce intéressant ? qu’est-ce qui a changé ? pourquoi est-ce important ?
  3. [SILENT] vous évite le spam — vous n’êtes notifié que lorsque quelque chose compte vraiment
  4. Les instructions autonomes sont non négociables — l’agent repart de zéro à chaque fois

Pour la référence complète des fonctionnalités, consultez la documentation 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