Agent OS
Crons

Creer un cron

Quand creer un cron, comment le declarer, les expressions courantes, tester et monitorer.

Creer un cron

Un cron automatise une action recurrente. Avant d'en creer un, verifier qu'il est vraiment necessaire.

Quand un cron est necessaire

SituationCron necessaire ?
Action repetee a heure fixeOui
Action declenchee par un evenementNon (utiliser un trigger)
Action ponctuelleNon (lancer manuellement)
Verification periodiqueOui
Rapport regulierOui

!!! warning "Pas de cron pour tout" Un cron qui tourne sans utilite consomme des tokens et du temps CPU. Chaque cron doit avoir un objectif mesurable.

Format de declaration

Les crons sont declares dans .openclaw/cron/jobs.json.

{
  "crons": [
    {
      "id": "CRON-018",
      "name": "Mon nouveau cron",
      "agent": "ops-manager",
      "schedule": "0 9 * * *",
      "action": "health_check",
      "params": {
        "scope": "all",
        "notify": true
      },
      "delivery": "telegram",
      "enabled": true
    }
  ]
}

Champs obligatoires

ChampTypeDescription
idstringIdentifiant unique (CRON-XXX)
namestringNom lisible
agentstringSlug de l'agent executant
schedulestringExpression cron standard
actionstringAction a declencher
deliverystringCanal de livraison (telegram, notion, email)
enabledbooleanActif ou non

Champs optionnels

ChampTypeDescription
paramsobjectParametres passes a l'action
timeoutnumberTimeout en secondes (defaut 300)
retrynumberNombre de tentatives en cas d'echec (defaut 1)
depends_onstring[]Crons qui doivent avoir tourne avant

Expressions cron courantes

*    *    *    *    *
|    |    |    |    |
|    |    |    |    +--- Jour de la semaine (0=Dim, 6=Sam)
|    |    |    +-------- Mois (1-12)
|    |    +------------- Jour du mois (1-31)
|    +------------------ Heure (0-23)
+----------------------- Minute (0-59)
ExpressionSignification
0 * * * *Toutes les heures
0 8 * * *Tous les jours a 8h
0 9,13,18 * * *3 fois par jour (9h, 13h, 18h)
0 */4 * * *Toutes les 4 heures
0 10 * * 0Dimanche a 10h
0 10 1 * *Le 1er de chaque mois a 10h
30 15 * * 1-5Lundi-vendredi a 15h30
0 3 * * *Tous les jours a 3h (nuit)

Tester avant d'activer

Toujours tester un cron avant de le mettre en production.

Etape 1 : Valider la syntaxe

openclaw cron validate

Etape 2 : Lancer manuellement

openclaw cron run CRON-018 --dry-run

Le --dry-run execute l'action sans envoyer de notification ni modifier de donnees.

Etape 3 : Verifier le resultat

openclaw cron logs CRON-018 --last 5

Etape 4 : Activer

Mettre "enabled": true dans jobs.json et redemarrer le scheduler.

openclaw cron reload

Monitorer

Chaque execution de cron genere un log.

# Voir les 10 derniers runs
openclaw cron logs --last 10

# Voir les echecs
openclaw cron logs --status failed

# Voir un cron specifique
openclaw cron logs CRON-018 --last 5

!!! tip "Alerte sur echec" Configurer une alerte Telegram si un cron critique echoue 2 fois de suite. Les crons CRON-001 (health) et CRON-002 (brief) sont critiques.

Checklist creation

  • Le cron a un objectif clair et mesurable
  • L'expression cron est correcte
  • L'agent cible existe et peut executer l'action
  • Le dry-run passe sans erreur
  • La notification arrive sur le bon canal
  • Le cron est documente dans la vue d'ensemble
  • L'ID suit la convention CRON-XXX

Lecture liee

On this page