Tâches Cron Script-Only : Automatisez Sans Brûler de Tokens
Script-Only Cron Jobs — easy-to-understand guide based on official docs
Tâches Cron Script-Only : Automatisez Sans Brûler de Tokens
Si vous avez déjà joué avec les tâches cron d’Hermes, vous savez à quel point elles sont puissantes. Mais voici une question : et si vous n’avez pas besoin d’un LLM pour réfléchir — vous avez juste besoin que quelque chose s’exécute selon un planning et vous dise ce qui s’est passé ?
C’est là que les tâches cron script-only entrent en jeu. Considérez-les comme votre couche d’automatisation sans fioritures : même planificateur, même livraison, zéro token LLM dépensé.
Quand Utiliser les Tâches Cron Script-Only ?
Les tâches script-only brillent lorsque le script lui-même produit déjà le message exact que vous voulez voir. Pas besoin de raisonnement, pas besoin de résumé. Juste une sortie pure et déterministe.
Voici les cas d’usage classiques :
- Alertes mémoire – votre script vérifie l’utilisation de la RAM et affiche « Mémoire à 92 % »
- Avertissements d’espace disque – même idée, métrique différente
- Heartbeats – votre service est toujours vivant, voici la preuve
- Toute surveillance où le script connaît la réponse – si c’est cassé, dites-le ; si tout va bien, restez silencieux
Ce qui est génial ? Vous obtenez la fiabilité d’un script avec la puissance de livraison d’Hermes. Pas de coûts de tokens, pas de latence, pas de délai « laissez-moi réfléchir ».
Comment en Configurer Une
Le plus simple ? Demandez simplement à Hermes dans le chat. L’outil cronjob est assez intelligent pour savoir quand utiliser no_agent=True. Il écrira le script pour vous et configurera tout.
Mais si vous voulez le faire manuellement, voici le modèle :
/cron add "every 1h" "Ce prompt ne sera pas utilisé" --script ~/.hermes/scripts/my-check.py --name "Mon moniteur" --deliver telegram
Attendez, ce prompt semble bizarre. Laissez-moi vous expliquer.
Le Script Fait le Travail
Avec les tâches cron script-only, la sortie standard du script devient le message. Pas de LLM entre les deux. Votre script doit donc produire exactement ce que vous voulez voir livré.
Voici un exemple simple :
#!/usr/bin/env python3
import shutil
total, used, free = shutil.disk_usage("/")
percent = used / total * 100
if percent > 90:
print(f"⚠️ Disque à {percent:.1f}% — nettoyez maintenant !")
else:
print("[SILENT]")
Vous voyez ce [SILENT] à la fin ? C’est le marqueur magique de silence. Quand Hermes voit [SILENT] dans la sortie, il n’envoie rien. Votre script décide de ce qui mérite de vous déranger.
L’astuce [SILENT]
C’est la fonctionnalité killer pour les scripts de surveillance. Au lieu d’être notifié toutes les heures avec « tout va bien », vous n’entendez parler d’Hermes que lorsque quelque chose nécessite réellement votre attention.
La logique de votre script :
- Problème détecté ? Affichez le message d’alerte
- Tout est clair ? Affichez
[SILENT]
Hermes s’occupe du reste. Pas de notifications pendant les heures calmes, pas de fatigue de notification, pas de « pourquoi mon téléphone vibre à 3 h du matin pour un serveur en bonne santé ? »
Script-Only vs. hermes send
Il existe une autre option zéro token qui vaut le coup d’être connue : hermes send. Utilisez-la lorsque vous avez un script qui s’exécute déjà quelque part — une étape CI, un hook post-commit, un script de déploiement — et que vous voulez simplement envoyer la sortie vers Telegram ou Discord.
./my-deploy-script.sh | hermes send --channel telegram
La différence ? Les tâches cron script-only sont pour les vérifications récurrentes et planifiées. hermes send est pour les moments ponctuels où votre script décide qu’il est temps de parler.
Exemple Concret : Moniteur de Changement de Site Web
Mettons tout ensemble. Voici un script qui surveille une page web et ne parle que lorsque quelque chose change :
import hashlib, json, os, urllib.request
URL = "https://example.com/pricing"
STATE_FILE = os.path.expanduser("~/.hermes/scripts/.watch-state.json")
content = urllib.request.urlopen(URL, 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}, f)
if prev_hash and prev_hash != current_hash:
print(f"CHANGEMENT DÉTECTÉ sur {URL}")
print(f"Hash précédent : {prev_hash}")
print(f"Hash actuel : {current_hash}")
print(f"\nPremiers 2000 caractères :\n{content[:2000]}")
else:
print("[SILENT]")
Configurez-le avec :
/cron add "every 1h" "inutilisé" --script ~/.hermes/scripts/watch-site.py --name "Moniteur de tarifs" --deliver telegram
Le script récupère la page, compare les hashs, et ne parle que lorsque quelque chose est différent. Pas de tokens LLM, pas de bruit, juste de l’automatisation pure.
En Résumé
Les tâches cron script-only sont votre cheval de trait d’automatisation zéro token. Elles sont parfaites pour :
- Les vérifications déterministes où la réponse est binaire
- La surveillance à haute fréquence où les coûts LLM s’accumuleraient
- Tout ce où vous faites confiance au jugement du script plutôt qu’à l’interprétation d’un LLM
Et le meilleur ? Vous n’avez pas à choisir entre les tâches script-only et celles propulsées par LLM. Mélangez-les dans le même flux de travail. Utilisez des scripts pour les vérifications mécaniques, et laissez le LLM gérer les choses intéressantes — comme résumer pourquoi ce changement de site web compte.
Vous voulez aller plus loin ? Consultez la documentation complète sur cron ou le tutoriel du bot de briefing quotidien pour voir le côté propulsé par LLM.
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › guides/automate-with-cron