Agents IA
Des cron jobs pour agents IA et pipelines LLM
Exécutez agents, inférence par lots et rafraîchissements d'embeddings selon un planning — et sachez en quelques minutes quand un run échoue, se bloque sur un appel API ou ne produit silencieusement rien.
Le problème
Les workloads IA passent sur des plannings — un agent nocturne qui compile un digest, un rafraîchissement d'embeddings toutes les heures, une classification par lots des tickets de la veille. Ils héritent de toutes les pannes classiques du cron et y ajoutent les leurs : rate limits, appels LLM bloqués sans timeout, un ID de modèle déprécié par une mise à jour du fournisseur, une boucle d'agent qui avale une erreur d'outil et se termine avec un code 0 sans avoir rien fait. Et personne ne regarde la sortie — tourner sans surveillance était justement le but.
Comment SteadyCron le résout
- 1 Déclenchez le workload avec un job HTTP — SteadyCron appelle votre endpoint selon le planning, avec relances, backoff et timeout — ou gardez votre cron existant et ajoutez un heartbeat.
- 2 Pingez /start au début du run et /success à la fin, pour qu'un run bloqué sur un appel LLM apparaisse comme en retard plutôt que comme du silence.
- 3 Incluez un court payload — éléments traités, consommation de tokens, modèle utilisé — comme contexte dans le fil d'activité.
- 4 Alertez sur les runs manqués, échoués ou trop longs, avec des seuils d'échecs consécutifs pour qu'un simple accroc de rate limit ne réveille personne.
TOKEN=<votre-ping-token>
curl -fsS https://ping.steadycron.com/$TOKEN/start
n=$(python run_agent.py --task nightly-digest) \
&& curl -fsS --data "processed=$n" https://ping.steadycron.com/$TOKEN \
|| curl -fsS https://ping.steadycron.com/$TOKEN/fail
Jobs
| weekly-digest-email | HTTP | 0 9 * * 1 | in 2 days | 3 days ago | ||
| nightly-db-backup | Heartbeat | 0 2 * * * | in 19 h | 5 h ago | ||
| stripe-reconciliation | HTTP | 0 */4 * * * | in 38 min | 3 h ago | ||
| cache-warmup | HTTP | */15 * * * * | in 11 min | now | ||
| search-index-sync | Heartbeat | */30 * * * * | in 6 min | 24 min ago |
| seed-test-data | HTTP | 0 4 * * * | in 14 h | 10 h ago | ||
| preview-env-cleanup | Heartbeat | 0 */6 * * * | in 2 h | 4 h ago | ||
| trial-expiry-sweep | HTTP | 0 6 * * * | — | yesterday |
Statut, planning et dernière exécution de chaque tâche — en un coup d’œil.
Un code de sortie 0 n’est pas un résultat
Les frameworks d’agents sont conçus pour continuer coûte que coûte : un appel
d’outil échoue, le modèle s’excuse et passe à la suite, et le processus se
termine proprement sans avoir rien écrit. Ne pingez pas le succès parce que le
processus s’est terminé — pingez après avoir vérifié que le résultat existe (le
digest a été envoyé, les lignes ont été vectorisées, le fichier de sortie n’est
pas vide), et pingez /fail vous-même quand il manque. Le
check heartbeat alerte alors sur ce qui compte
vraiment : aucun résultat valide dans la fenêtre attendue, quelle qu’en soit la
cause.
Des modes de panne que le cron classique n’a jamais connus
- Rate limits et plafonds de dépense : une rafale de 429 ou un budget mensuel épuisé interrompt le run de ce soir — et celui de demain aussi. Les seuils d’échecs consécutifs distinguent l’accroc passager du pipeline qui reste cassé.
- Appels bloqués : une requête LLM sans timeout peut immobiliser un run
pour toujours. Parce que
/startest arrivé et que/successn’est jamais venu, le run apparaît en retard après la période de grâce — au lieu de rester bloqué des jours sans que personne ne le remarque. - Dérive de modèle : un ID de modèle déprécié ou un format de réponse modifié casse votre parsing au rythme du fournisseur, pas au rythme de vos déploiements. Le journal par exécution — statut, payload, durée — montre exactement quelle nuit cela a commencé.
Idéal pour
- Les runs d’agents nocturnes : digests, triage de tickets, génération de rapports, scrapes planifiés qui alimentent un modèle.
- La maintenance RAG : rafraîchissements d’embeddings et reconstructions d’index, dont l’obsolescence est invisible jusqu’à ce que la qualité des réponses se dégrade.
- L’inférence par lots : jobs de classification, d’enrichissement ou de résumé sur les données de la veille.
Vous déboguez un run qui s’est déjà tu ? Voir Agent IA planifié ne s’exécute pas pour un diagnostic pas à pas.
Documentation associée
Ne l’apprenez plus à vos dépens
Commencez avec l’offre gratuite — sans carte bancaire.
Commencer gratuitement