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 (viaTELEGRAM_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,.cursorrulessont injectés dans le prompt système -
Les outils
terminal,read_file,write_file, etc. utilisent ce répertoire comme cwd -
Les jobs avec
workdirs'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_atpar rapport à l'heure actuelle -
Lance une session
AIAgentfraî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_frompour 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_frompour 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.