📑 Table des matières

13 - Hermes Agent #13 : Cron jobs — automatiser les tâches récurrentes

Hermes Agent 🔴 Avancé ⏱️ 10 min de lecture 📅 2026-05-05

Après avoir exploré les profils et configurations multiples, abordons une fonctionnalité qui transforme Hermes Agent d'assistant réactif en véritable assistant proactif : les cron jobs. Ce système permet de planifier des tâches récurrentes ou ponctuelles qui s'exécutent automatiquement, sans aucune intervention humaine.

Qu'est-ce que le système cron de Hermes Agent ?

Le système cron d'Hermes Agent est comparable au cron traditionnel de Linux, mais avec une puissance considérablement augmentée. Là où le cron classique exécute des scripts shell, Hermes exécute des agents IA autonomes capables de raisonner, d'utiliser des outils, de naviguer sur le web et de produire des rapports intelligents.

Concrètement, les cron jobs peuvent :

  • Planifier des tâches ponctuelles ou récurrentes

  • Charger un ou plusieurs skills pour bénéficier de workflows réutilisables

  • Livrer les résultats sur votre chat Telegram, Discord, Slack, ou dans des fichiers locaux

  • S'exécuter en mode no-agent (script pur, sans LLM) pour les tâches simples comme le monitoring

  • S'exécuter dans le répertoire d'un projet spécifique pour utiliser son contexte (AGENTS.md, CLAUDE.md)

Important : les sessions cron ne peuvent pas créer de nouveaux cron jobs de manière récursive. Hermes désactive les outils de gestion cron lors des exécutions planifiées pour éviter les boucles infinies.

Anatomie d'un cron job

Chaque cron job est défini par trois éléments fondamentaux :

  • Action : ce que le scheduler doit faire (create, list, update, pause, resume, remove, run)

  • Schedule : quand exécuter la tâche

  • Prompt : ce que l'agent doit accomplir

Les actions disponibles

Toutes les opérations passent par un unique outil cronjob avec un paramètre action :

  • create — Créer un nouveau job planifié

  • list — Lister tous les jobs existants

  • update — Modifier un job existant (schedule, prompt, skills, etc.)

  • pause — Suspendre un job sans le supprimer

  • resume — Réactiver un job suspendu

  • run — Déclencher manuellement un job au prochain tick du scheduler

  • remove — Supprimer définitivement un job

Formats de planification (schedule)

Hermes Agent accepte quatre formats de planification flexibles :

Délais relatifs (ponctuel) :

30m → Exécution unique dans 30 minutes 2h → Exécution unique dans 2 heures 1d → Exécution unique dans 1 jour

Intervalles (récurrent) :

every 30m → Toutes les 30 minutes every 2h → Toutes les 2 heures every 1d → Tous les jours

Expressions cron classiques :

0 9 * * * → Tous les jours à 9h00 0 9 * * 1-5 → Les jours ouvrés à 9h00 0 */6 * * * → Toutes les 6 heures 30 8 1 * * → Le 1er de chaque mois à 8h30 0 0 * * 0 → Chaque dimanche à minuit

Horodatage ISO (ponctuel) :

2026-06-15T09:00:00 → Exécution unique le 15 juin 2026 à 9h00

Par défaut, les one-shots s'exécutent une seule fois, tandis que les intervalles et expressions cron s'exécutent indéfiniment jusqu'à suppression. Le paramètre repeat permet de limiter le nombre d'exécutions.

Créer un cron job : les différentes méthodes

Depuis le chat avec /cron

/cron add 30m "Vérifier le statut du serveur" /cron add "every 2h" "Consulter les nouvelles IA et faire un résumé" /cron add "every 1h" "Analyser les flux RSS du blog" --skill blogwatcher

Depuis la ligne de commande

hermes cron create "every 2h" "Vérifier le statut du serveur" hermes cron create "0 9 * * *" "Rapport SEO matinal" \ --workdir /home/user/projects/seo \ --deliver telegram \ --name "seo-morning-report"

Par conversation naturelle

Au lieu de syntaxe technique, demandez simplement :

Tous les matins à 9h, vérifie Hacker News pour les news IA et envoie-moi un résumé sur Telegram.

Hermes utilise l'outil cronjob en interne pour créer le job approprié.

Options avancées des cron jobs

repeat — Limiter les exécutions

cronjob(action="create", prompt="Rapport hebdomadaire", schedule="every 1w", repeat=4)

deliver — Destination des résultats

Lors de la création, vous spécifiez où les résultats sont envoyés :

  • "origin" — Retour à l'endroit où le job a été créé (défaut sur les plateformes de messagerie)

  • "local" — Sauvegarder dans ~/.hermes/cron/output/ (défaut en CLI)

  • "telegram" — Canal Telegram principal (via TELEGRAM_HOME_CHANNEL)

  • "telegram:123456" — Chat Telegram spécifique par ID

  • "discord", "slack", "whatsapp", "email", etc.

model et skills — Personnaliser l'exécution

Vous pouvez assigner un modèle spécifique et charger des skills :

cronjob(action="create", name="veille-ia", schedule="0 9 * * 1-5", model="gpt-4o", skills=["blogwatcher", "seo-analyzer"], prompt="Consulte les sources configurées, analyse les tendances IA du jour, et produit un rapport structuré.")

workdir — Travailler dans un projet spécifique

Avec workdir, le cron job hérite du contexte du projet :

  • AGENTS.md, CLAUDE.md, .cursorrules sont injectés dans le prompt système

  • Les outils terminal, read_file, write_file, etc. utilisent ce répertoire comme cwd

  • Les jobs avec workdir s'exécutent séquentiellement (pas en parallèle) pour éviter les conflits de cwd

enabled_toolsets — Contrôle fin des outils

cronjob(action="create", name="news-summary", schedule="every sunday 9am", enabled_toolsets=["web", "file"], prompt="Résume les news IA de la semaine.")

Cela limite les outils disponibles au job pour réduire les coûts et les temps de réponse.

context_from — Chaîner les jobs

Un job peut consommer les résultats d'un autre job terminé :

cronjob(action="create", name="daily-digest", schedule="every day 7am", context_from=["ai-news-fetch", "github-prs-fetch"], prompt="Rédige le digest quotidien en utilisant les résultats ci-dessus.")

Prompts autonomes : la règle d'or

Les cron jobs s'exécutent dans une session agent totalement nouvelle. Il n'y a aucun historique de conversation, aucun contexte partagé. Le prompt doit contenir tout ce dont l'agent a besoin.

❌ Mauvais exemple :

"Vérifie le problème de serveur"

✅ Bon exemple :

"SSH vers le serveur 192.168.1.100 en tant qu'utilisateur 'deploy', vérifie que nginx fonctionne avec 'systemctl status nginx', et confirme que https://example.com retourne HTTP 200. Si un problème est détecté, détaille-le."

Cas d'usage concrets

1. Veille SEO automatisée

hermes cron create "0 8 * * 1-5" \ "Analyse les positions SEO des 10 mots-clés principaux du site https://example.com via l'API Ahrefs. Compare avec les résultats de la semaine dernière. Génère un rapport markdown avec les évolutions, les nouvelles opportunités et les menaces. Format : tableau avec mot-clé, position actuelle, variation, tendance." \ --deliver telegram \ --name "seo-daily-report" \ --workdir /home/user/projects/seo

2. Rapport quotidien de santé système

hermes cron create "every 6h" \ "Connecte-toi en SSH au serveur VPS (voir credentials dans /root/.ssh/config, hôte 'prod'). Exécute : df -h, free -m, uptime, systemctl status nginx mysql redis. Si un service est down ou si le disque dépasse 85%, signale-le comme ALERTE en début de rapport. Sinon, répond avec [SILENT]." \ --deliver telegram \ --name "server-health-check"

3. Monitoring de RAM en mode no-agent

hermes cron create "every 5m" \ --no-agent \ --script memory-watchdog.sh \ --deliver telegram \ --name "memory-watchdog"

Le script memory-watchdog.sh (stocké dans ~/.hermes/scripts/) vérifie la RAM et ne produit du output que si elle dépasse 85%. Zéro coût LLM.

4. Digest hebdomadaire multi-sources

cronjob(action="create", name="weekly-ai-digest", schedule="every sunday 10am", skills=["blogwatcher", "maps"], context_from=["ai-news-fetch", "github-trending"], deliver="telegram", prompt="Rédige un digest hebdomadaire des actualités IA en français. Structure : 1) Événements marquants, 2) Projets GitHub populaires, 3) Tendances émergentes, 4) À suivre la semaine prochaine. Maximum 800 mots. Style concis et informatif.")

5. Sauvegarde automatique de base de données

hermes cron create "0 2 * * *" \ "Crée une sauvegarde de la base de données MySQL 'production' sur le serveur prod (hôte 'prod' dans ~/.ssh/config). Utilise mysqldump, compresse en gz, et transfère le fichier vers /backups/db/ avec un nom incluant la date du jour. Supprime les backups de plus de 30 jours. Confirme le succès ou signale l'erreur." \ --workdir /home/user/projects/backup \ --name "daily-db-backup"

Bonnes pratiques essentielles

Prompts self-contained

Chaque prompt doit être complet et autonome. Incluez toutes les URLs, identifiants de serveur, chemins de fichiers et instructions nécessaires. N'hésitez pas à être verbeux : un prompt de 200 mots détaillé vaut mieux qu'un prompt de 10 mots ambigu.

Pas de planification récursive

Un cron job ne peut pas en créer un autre. Si vous avez besoin de chaîner des tâches, utilisez context_from pour que le second job consomme les résultats du premier.

Utiliser [SILENT] pour le monitoring

Pour les jobs de surveillance qui ne doivent alerter qu'en cas de problème, terminez le prompt par : "Si tout est normal, réponds uniquement avec [SILENT]." L'output est sauvegardé localement pour audit, mais aucun message n'est envoyé.

Limiter les toolsets

N'attribuez que les outils nécessaires à chaque job via enabled_toolsets. Un job de veille web n'a pas besoin des outils de browser ou de délégation. Cela réduit le coût du schéma de prompt et accélère l'exécution.

Choisir le bon mode

  • Mode agent (défaut) : pour les tâches nécessitant du raisnement, de l'analyse, de la synthèse

  • Mode no-agent : pour les watchdogs, checks de seuils, heartbeats — zéro coût LLM

Utiliser le mode no-agent pour les checks simples

Pour les vérifications déterministes (RAM > 85%, disque plein, service down), le mode no-agent est nettement plus efficace : pas de tokens consommés, pas de latence LLM, exécution instantanée.

Dépannage

Consultation des logs

hermes cron list # Voir tous les jobs et leur statut hermes cron status # État du scheduler hermes gateway # Logs en temps réel

Les outputs des jobs sont sauvegardés dans ~/.hermes/cron/output/{job_id}/{timestamp}.md pour audit post-mortem.

Jobs suspendus

Un job en pause conserve sa configuration mais ne se déclenche plus. Pour le réactiver :

/cron resume <job_id> hermes cron resume <job_id>

Exécutions échouées

Les jobs échoués génèrent une alerte automatique (sauf en mode no-agent où stdout vide = tick silencieux). Causes fréquentes :

  • Prompt incomplet : l'agent manque d'informations pour accomplir la tâche

  • Timeout : les scripts prennent trop de temps (configurable via cron.script_timeout_seconds)

  • Rate limit provider : Hermes bascule automatiquement vers un provider de fallback si configuré

  • Problème de workdir : le chemin spécifié n'existe pas ou n'est pas absolu

Résilience des providers

Les cron jobs héritent de vos providers de fallback et de la rotation des credentials. Si la clé API principale est rate-limited, Hermes bascule automatiquement vers un provider alternatif. Configurez fallback_providers dans config.yaml pour une résilience maximale.

Architecture technique

L'exécution des cron jobs est gérée par le gateway daemon. Le scheduler tick toutes les 60 secondes :

  • Charge les jobs depuis ~/.hermes/cron/jobs.json

  • Vérifie next_run_at par rapport à l'heure actuelle

  • Lance une session AIAgent fraîche pour chaque job dû

  • Injecte les skills attachés si applicable

  • Exécute le prompt jusqu'à complétion

  • Livre la réponse finale

  • Met à jour les métadonnées et la prochaine exécution planifiée

Un fichier lock ~/.hermes/cron/.tick.lock empêche les ticks chevauchants de doubler les exécutions.

Pour installer le gateway :

hermes gateway install # Service utilisateur sudo hermes gateway install --system # Service système (VPS)

Si vous hébergez Hermes sur un VPS, Hostinger offre d'excellentes performances pour faire tourner le gateway 24/7.

Conclusion

Le système cron de Hermes Agent transforme radicalement la façon dont vous interagissez avec l'IA. Au lieu de déclencher manuellement chaque tâche, vous déléguez des workflows complets qui s'exécutent de manière autonome. Que ce soit pour la veille SEO, le monitoring de serveurs, les backups automatisés ou les digests hebdomadaires, les cron jobs permettent à Hermes de devenir un véritable assistant proactif.

Les points clés à retenir :

  • Utilisez des prompts détaillés et self-contained pour chaque job

  • Profitez du mode no-agent pour les tâches déterministes sans coût LLM

  • Chaînez les jobs avec context_from pour des pipelines intelligents

  • Limitez les toolsets pour optimiser coûts et performances

  • Surveillez vos logs et utilisez [SILENT] pour un monitoring non-intrusif

Avec cette fonctionnalité, Hermes Agent n'est plus seulement un outil que vous consultez — il devient un agent autonome qui travaille pour vous en permanence. Pour approfondir la configuration de votre environnement, consultez notre guide sur les profils et configurations multiples ou découvrez comment connecter Telegram à Hermes Agent pour recevoir directement vos rapports cron.

Conclusion

Les cron jobs transforment Hermes Agent d'un assistant réactif en un système proactif qui travaille en continu. Qu'il s'agisse de rapports quotidiens, de monitoring de services, ou de publications automatisées, cette fonctionnalité couvre un large spectre de cas d'usage.

Les points clés à retenir :

  • Utilisez des prompts self-contained pour chaque job — le cron n'a pas accès au contexte de conversation

  • Chaînez les jobs avec context_from pour créer des pipelines intelligents

  • Limitez les toolsets pour réduire les coûts et accélérer l'exécution

  • Surveillez les logs et utilisez [SILENT] pour un monitoring non-intrusif

Pour aller plus loin, découvrez comment les webhooks complètent les cron jobs en déclenchant des actions depuis des services externes.

Conclusion

Les cron jobs d'Hermes Agent transforment votre agent IA en un véritable système d'automatisation. La possibilité de planifier des tâches récurrentes, de les chaîner entre elles avec context_from, et de cibler la livraison vers n'importe quelle plateforme ouvre un champ immense de possibilités. Que vous automatisiez des rapports, du monitoring, ou des publications planifiées, les cron jobs s'intègrent naturellement dans l'écosystème Hermes. Les points clés à retenir : des prompts self-contained, un usage mesuré des toolsets, et une surveillance régulière des logs pour garantir la fiabilité de vos automatisations.