Skip to content

Cron — planification

源码版本v2026.7.20

Responsabilité

Permettre à l'agent de « tourner tout seul à l'heure » : rapports programmés, sauvegardes, briefings sans présence humaine. Le sous-système cron/ fournit un scheduler, un stockage des jobs, un historique d'exécution, un garde-fou du cycle de vie, un catalogue de blueprints / suggestions, ainsi qu'une isolation par toolsets dédiée (les jobs planifiés peuvent désactiver certains outils, pour éviter les actions dangereuses en mode sans surveillance). La passerelle pilote le scheduler via un heartbeat de 60 s.

Fichiers clés

Flux de données

  1. La passerelle démarre _start_cron_ticker:22335, qui déclenche le scheduler toutes les 60 s.
  2. Le scheduler lit le stockage des jobs (cron/jobs.py:106) et sélectionne les jobs dus selon l'expression cron.
  3. Pour chaque job dû :
  4. Crash en cours d'exécution → la prochaine exécution de recover_interrupted_executions (cron/executions.py:156) récupère le marquage.
  5. Le résultat est livré via la passerelle (ou mirroré vers une plateforme donnée).

Résumé

Le point clé du sous-système cron est « la sécurité en mode sans surveillance » : isolation des toolsets, lifecycle_guard contre les fausses manœuvres, machine à états d'exécution pour la récupération post-crash. Le scheduling lui-même est piloté par le heartbeat de la passerelle, sans daemon cron externe requis.

Site d'apprentissage communautaire non officiel. Basé sur le code source de NousResearch/hermes-agent (licence MIT).