Vous utilisez déjà cron sur votre serveur Linux pour lancer des scripts à heures fixes ? Imaginez maintenant un système qui ne se contente pas d'exécuter aveuglément une commande, mais qui réfléchit, analyse le contexte et décide intelligemment de la meilleure action à entreprendre. C'est exactement ce que permet la combinaison de cron et d'une IA autonome.
Dans ce guide, nous allons explorer en profondeur comment passer du cron classique au cron intelligent propulsé par l'IA, en utilisant OpenClaw comme plateforme d'orchestration. Vous découvrirez les différences fondamentales entre les deux approches, des exemples concrets d'automatisation, et un guide pas à pas pour configurer vos propres tâches intelligentes fonctionnant 24h/24, 7j/7.
🔄 Cron classique vs Cron IA : deux philosophies
Le cron traditionnel : fiable mais aveugle
Le cron Unix existe depuis les années 1970. Son principe est simple : exécuter une commande à un moment précis, selon une expression temporelle (la fameuse syntaxe * * * * *).
# Exemple classique : backup tous les jours à 3h du matin
0 3 * * * /usr/local/bin/backup.sh
# Vérification de l'espace disque toutes les heures
0 * * * * /usr/local/bin/check_disk.sh
Le problème ? Ce script s'exécute quoi qu'il arrive. Même si le backup est inutile (aucune modification), même si l'espace disque est parfait. Il ne sait pas adapter son comportement au contexte.
Le cron IA : contextuel et intelligent
Avec un agent IA, le paradigme change complètement. L'agent reçoit une instruction, mais il raisonne avant d'agir :
- Il vérifie si l'action est nécessaire
- Il adapte sa réponse au contexte
- Il peut escalader (alerter) ou ignorer selon la gravité
- Il produit des résumés lisibles pour l'humain
| Critère | Cron classique | Cron IA (OpenClaw) |
|---|---|---|
| Exécution | Aveugle, toujours | Contextuelle, intelligente |
| Réponse | Code retour (0/1) | Analyse en langage naturel |
| Adaptation | Aucune | Ajuste selon le contexte |
| Escalade | Script if/else manuel | Décision autonome |
| Coût | Quasi nul | Tokens LLM (optimisable) |
| Maintenance | Scripts à maintenir | Prompts en langage naturel |
| Monitoring | Logs bruts | Résumés intelligents |
| Multi-tâches | 1 cron = 1 script | 1 heartbeat = N vérifications |
🧠 Les deux mécanismes d'OpenClaw : Heartbeat et Cron
OpenClaw propose deux mécanismes complémentaires pour l'automatisation temporelle. Comprendre leurs différences est essentiel pour bien architecturer vos automatisations.
Le Heartbeat : le pouls de votre agent
Le heartbeat est un tour d'agent périodique dans la session principale. Par défaut, il se déclenche toutes les 30 minutes. L'agent "se réveille", consulte sa checklist (HEARTBEAT.md), et décide quoi faire.
// Configuration dans openclaw config
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "last",
activeHours: { start: "08:00", end: "22:00" },
}
}
}
}
Points forts du heartbeat :
- Batch multiple checks : un seul tour d'agent peut vérifier l'email, le calendrier, les notifications et l'état d'un projet
- Contextuel : l'agent a accès à tout l'historique de la session principale
- Économique : un seul appel API au lieu de 5 cron jobs séparés
- Suppression intelligente : si rien ne nécessite attention, l'agent répond
HEARTBEAT_OKet aucun message n'est délivré
Exemple de HEARTBEAT.md :
# Checklist Heartbeat
- Scanner les emails urgents
- Vérifier le calendrier pour les 2 prochaines heures
- Si une tâche de fond est terminée, résumer les résultats
- Vérifier l'état des services monitorés
- Si inactif depuis 8h+, faire un check-in léger
Le Cron OpenClaw : précision et isolation
Le cron OpenClaw est un scheduler intégré au Gateway. Il persiste les jobs, réveille l'agent au bon moment, et peut optionnellement délivrer le résultat dans un chat.
Deux modes d'exécution :
- Session principale (
main) : injecte un événement système traité au prochain heartbeat - Session isolée (
isolated) : lance un tour d'agent dédié danscron:<jobId>, sans polluer l'historique principal
# Job isolé récurrent avec livraison sur Telegram
openclaw cron add \
--name "Rapport quotidien" \
--cron "0 8 * * *" \
--tz "Europe/Paris" \
--session isolated \
--message "Génère le rapport quotidien : état des services, métriques clés, alertes." \
--announce \
--channel telegram \
--to "-100123456789"
Tableau de décision : Heartbeat ou Cron ?
| Cas d'usage | Recommandé | Pourquoi |
|---|---|---|
| Vérifier les emails toutes les 30 min | Heartbeat | Se combine avec d'autres checks |
| Rapport quotidien à 9h pile | Cron (isolated) | Timing exact nécessaire |
| Monitoring calendrier | Heartbeat | Adapté au check périodique |
| Analyse hebdomadaire approfondie | Cron (isolated) | Tâche autonome, peut utiliser un modèle différent |
| Rappel dans 20 minutes | Cron (main, --at) |
One-shot avec timing précis |
| Nettoyage de fichiers temporaires | Heartbeat | Piggyback sur le cycle existant |
| Génération de contenu nocturne | Cron (isolated) | Isolation + modèle dédié |
🛠️ Configurer ses premiers Cron Jobs IA
Prérequis
Avant de commencer, assurez-vous d'avoir :
- OpenClaw installé et le Gateway en fonctionnement
- Un provider LLM configuré (Claude, GPT, ou via OpenRouter)
- Un canal de communication configuré (Telegram, WhatsApp, Discord...)
Job 1 : Rappel one-shot
Le plus simple. Vous voulez un rappel dans 20 minutes :
openclaw cron add \
--name "Rappel réunion" \
--at "20m" \
--session main \
--system-event "Rappel : la réunion commence dans 10 minutes. Prépare un résumé des points à aborder." \
--wake now \
--delete-after-run
L'agent recevra cet événement système, et comme il tourne dans la session principale, il aura tout le contexte de vos conversations récentes pour préparer le résumé.
Job 2 : Briefing matinal récurrent
Chaque matin à 7h30, un rapport complet est généré et envoyé sur Telegram :
openclaw cron add \
--name "Briefing matinal" \
--cron "30 7 * * *" \
--tz "Europe/Paris" \
--session isolated \
--message "Génère le briefing matinal : météo Paris, résumé des emails importants, événements du calendrier aujourd'hui, actualités tech majeures." \
--model "opus" \
--announce \
--channel telegram \
--to "-100123456789"
Pourquoi isolated ? Ce job n'a pas besoin du contexte de la session principale. Il effectue une tâche autonome et délivre le résultat directement.
Pourquoi --model opus ? Pour un briefing de qualité, on peut utiliser un modèle plus puissant. Les jobs isolés permettent de choisir le modèle indépendamment de la session principale.
Job 3 : Monitoring intelligent
openclaw cron add \
--name "Health check services" \
--cron "*/15 * * * *" \
--tz "UTC" \
--session isolated \
--message "Vérifie l'état des services : ping les endpoints listés dans /root/services.json. Si un service est down, analyse les logs récents et propose un diagnostic. Si tout est OK, réponds HEARTBEAT_OK." \
--announce \
--channel telegram \
--to "-100123456789"
Ici, l'agent vérifie toutes les 15 minutes l'état de vos services. Mais contrairement à un script de monitoring classique, il analyse les logs en cas de problème et propose un diagnostic en langage naturel.
Job 4 : Revue hebdomadaire avec thinking élevé
openclaw cron add \
--name "Revue hebdomadaire" \
--cron "0 9 * * 1" \
--tz "Europe/Paris" \
--session isolated \
--message "Analyse approfondie de la semaine : progression des projets, métriques clés, points de blocage, recommandations pour la semaine à venir." \
--model "opus" \
--thinking high \
--announce \
--channel telegram \
--to "-100123456789"
Le flag --thinking high active le raisonnement étendu du modèle, idéal pour des analyses complexes qui demandent de la réflexion.
📋 Exemples concrets d'automatisation
Monitoring de site web intelligent
Au lieu d'un simple ping, l'agent IA peut :
- Vérifier le temps de réponse
- Comparer avec l'historique
- Détecter des tendances (dégradation progressive)
- Analyser le contenu de la page (erreurs visuelles, contenu manquant)
- Suggérer des actions correctives
openclaw cron add \
--name "Monitor site" \
--cron "*/30 * * * *" \
--session isolated \
--message "Vérifie https://mon-site.fr : temps de réponse, code HTTP, contenu. Compare avec les dernières vérifications. Alerte uniquement si anomalie détectée." \
--announce \
--channel telegram \
--to "-100123456789"
Génération de contenu planifiée
Chaque nuit, l'agent prépare du contenu à publier :
openclaw cron add \
--name "Night content worker" \
--cron "0 2 * * *" \
--tz "Europe/Paris" \
--session isolated \
--message "Consulte la base de données des articles en attente. Pour le prochain article en statut draft, rédige le contenu complet en suivant le brief. Mets à jour le statut en need_review_human." \
--model "opus" \
--announce \
--channel telegram \
--to "-100123456789"
Pour aller plus loin sur ce sujet, consultez notre guide Générer du contenu automatiquement avec l'IA.
Backups intelligents
Pour aller plus loin sur ce sujet, consultez notre guide Créer des vidéos virales avec l'IA de A à Z.
Au lieu de sauvegarder aveuglément chaque nuit :
openclaw cron add \
--name "Smart backup" \
--cron "0 3 * * *" \
--tz "Europe/Paris" \
--session isolated \
--message "Vérifie les fichiers modifiés depuis le dernier backup. Si des changements significatifs existent, lance le backup incrémental. Vérifie l'intégrité du backup. Nettoie les backups de plus de 30 jours. Résume les actions effectuées." \
--announce
L'agent décide si un backup est nécessaire, vérifie son intégrité, et gère la rotation — le tout en un seul prompt.
Veille concurrentielle automatique
openclaw cron add \
--name "Veille concurrence" \
--cron "0 10 * * 1,4" \
--tz "Europe/Paris" \
--session isolated \
--message "Effectue une veille concurrentielle : visite les sites des concurrents listés dans /root/concurrents.json, détecte les changements de prix, nouvelles features, articles de blog. Résume les points importants." \
--model "opus" \
--announce \
--channel telegram \
--to "-100123456789"
⚡ Combiner Heartbeat et Cron : la configuration optimale
La configuration la plus efficace utilise les deux mécanismes ensemble :
Architecture recommandée
Heartbeat (toutes les 30 min)
├── Scan emails urgents
├── Vérification calendrier (2h)
├── État des tâches en cours
└── Check-in léger si inactif
Cron isolé (timings précis)
├── 07:30 → Briefing matinal (Opus)
├── 02:00 → Génération contenu nocturne
├── */15 → Monitoring services
├── Lundi 09:00 → Revue hebdomadaire (Opus + thinking high)
└── One-shots → Rappels et deadlines
Configuration complète
{
agents: {
defaults: {
heartbeat: {
every: "30m",
target: "telegram",
to: "-100123456789",
activeHours: {
start: "07:00",
end: "23:00",
timezone: "Europe/Paris"
}
}
}
},
cron: {
enabled: true,
maxConcurrentRuns: 1
}
}
Le HEARTBEAT.md associé :
# Heartbeat - Checks réguliers
- Emails urgents : scanner et alerter si critique
- Calendrier : événements dans les 2 prochaines heures
- Tâches en cours : progression et blocages
- Si rien d'urgent → HEARTBEAT_OK
💰 Optimisation des coûts
Les cron jobs IA consomment des tokens. Voici comment optimiser :
| Stratégie | Économie estimée | Comment |
|---|---|---|
| Batching via heartbeat | ~70% | 1 heartbeat au lieu de 5 cron jobs |
HEARTBEAT_OK suppression |
~30% | Pas de livraison si rien à signaler |
| Modèle adapté par job | ~50% | Flash pour le monitoring, Opus pour l'analyse |
| Active hours | ~30-50% | Pas de heartbeat la nuit |
target: "none" |
~10% | Traitement interne uniquement |
| Prompts courts | ~20% | Moins de tokens en entrée |
Exemple de configuration économique
# Monitoring fréquent → modèle économique
openclaw cron add \
--name "Quick check" \
--cron "*/15 * * * *" \
--session isolated \
--message "Ping services. OK ou alerte." \
--model "flash"
# Analyse approfondie → modèle premium, moins fréquent
openclaw cron add \
--name "Deep analysis" \
--cron "0 9 * * 1" \
--session isolated \
--message "Analyse complète de la semaine..." \
--model "opus" \
--thinking high
🔧 Gestion et debugging
Commandes CLI essentielles
# Lister tous les jobs
openclaw cron list
# Voir l'historique d'exécution d'un job
openclaw cron runs --id <jobId> --limit 50
# Forcer l'exécution immédiate
openclaw cron run <jobId>
# Modifier un job existant
openclaw cron edit <jobId> --message "Nouveau prompt"
# Désactiver temporairement
openclaw cron edit <jobId> --enabled false
# Supprimer un job
openclaw cron remove <jobId>
Retry et gestion des erreurs
OpenClaw gère automatiquement les erreurs avec un backoff exponentiel :
- 1ère erreur → retry après 30 secondes
- 2ème erreur → retry après 1 minute
- 3ème erreur → retry après 5 minutes
- 4ème erreur → retry après 15 minutes
- 5ème erreur+ → retry après 60 minutes
Le backoff se réinitialise automatiquement après un run réussi.
Stagger automatique
Pour les jobs récurrents planifiés en début d'heure (comme 0 * * * *), OpenClaw applique un décalage déterministe de 0 à 5 minutes pour éviter les pics de charge. Vous pouvez contrôler ce comportement :
# Forcer un timing exact (pas de stagger)
openclaw cron edit <jobId> --exact
# Définir un stagger personnalisé
openclaw cron edit <jobId> --stagger 30s
🔒 Bonnes pratiques et sécurité
-
Ne mettez pas de secrets dans les prompts : les messages des jobs cron sont stockés en clair dans
~/.openclaw/cron/jobs.json. Référencez des fichiers de configuration à la place. -
Utilisez des sessions isolées pour les tâches sensibles : elles ne partagent pas l'historique de la session principale.
-
Limitez les active hours : pas besoin de heartbeat à 3h du matin si vous dormez (sauf pour le monitoring critique en cron isolé).
-
Gardez HEARTBEAT.md court : ce fichier est inclus dans le prompt à chaque heartbeat. Plus il est long, plus il coûte cher.
-
Monitorez vos coûts : vérifiez régulièrement
openclaw cron runspour identifier les jobs qui consomment trop. -
Un événement système immédiat sans créer de job persistant :
openclaw system event --text "Vérifie les logs Apache maintenant" --mode now
🎯 Conclusion
Le passage du cron classique au cron IA représente un changement de paradigme dans l'automatisation. Là où le cron traditionnel exécute mécaniquement des scripts, le cron IA d'OpenClaw raisonne, contextualise et s'adapte.
En combinant le heartbeat (pour les vérifications régulières et groupées) avec les cron jobs isolés (pour les tâches précises et autonomes), vous obtenez un système d'automatisation complet qui fonctionne 24h/24 avec un minimum d'intervention humaine.
La clé est de commencer simple — un heartbeat avec quelques checks et un ou deux cron jobs — puis d'étendre progressivement en fonction de vos besoins réels. L'avantage du prompt en langage naturel est que vous pouvez itérer rapidement sans réécrire de scripts.
📚 Articles liés
- Automatiser sa vie avec OpenClaw — Vue d'ensemble de toutes les possibilités d'automatisation
- Qu'est-ce qu'OpenClaw ? — Comprendre la plateforme avant de configurer
- Installer OpenClaw sur un VPS — Prérequis technique pour démarrer
- Configurer OpenClaw : SOUL, AGENTS et Skills — La configuration complète de votre agent
- Sécuriser son installation OpenClaw — Protéger vos automatisations