Pattern Fallback-Recovery Agent : reprise apres echec

Construisez un agent qui se remet des erreurs d'outils et de modele avec des strategies fallback, des retries et une degradation controlee.
Sur cette page
  1. Essence du pattern
  2. Probleme
  3. Solution
  4. Comment ca fonctionne
  5. En code, ca ressemble a ceci
  6. Exemple pendant l'execution
  7. Quand c'est adapte - et quand ca ne l'est pas
  8. Adapte
  9. Non adapte
  10. Difference avec Supervisor
  11. Quand utiliser Fallback-Recovery (vs autres patterns)
  12. Combiner avec d'autres patterns
  13. En bref
  14. Avantages et Inconvenients
  15. FAQ
  16. Et ensuite

Essence du pattern

Fallback-Recovery Agent est un pattern dans lequel l'agent ne s'arrete pas simplement sur erreur, mais suit un processus de reprise controle: classifier l'echec, appliquer un fallback et tenter de reprendre l'execution.

Quand l'utiliser : quand il est important de ne pas tomber sur la premiere erreur, mais de reprendre l'execution via un scenario controle.


Dans les systemes reels, les pannes sont inevitables :

  • timeouts d'API externes
  • indisponibilite temporaire d'un outil
  • erreurs de validation de sortie
  • outages partiels des dependances

L'approche Fallback-Recovery transforme "erreur = stop" en "erreur = scenario de reprise controle".

Pattern Fallback-Recovery Agent : reprise apres echec

Probleme

Imaginez qu'un agent prepare un rapport quotidien pour un client :

  1. lire les metriques depuis une API
  2. construire le tableau
  3. envoyer le resultat

A l'etape 2, l'API renvoie timeout.

Sans logique de recovery, le workflow s'arrete.

Une erreur locale ne devrait pas faire tomber tout le processus si le reste des etapes est encore operationnel.

Ce que vous obtenez :

  • delai manque
  • progression intermediaire perdue
  • redemarrage manuel depuis zero
  • comportement imprevisible en production

C'est le probleme central : sans strategie de reprise, meme une panne unique casse tout le scenario.

Solution

Fallback-Recovery introduit une recovery-policy pour une reprise controlee apres incident.

Analogie : c'est comme l'auto-sauvegarde dans un editeur. Si le programme plante, vous ne recommencez pas de zero, vous reprenez depuis le dernier etat sur. La logique est la meme ici, avec des limites explicites.

Principe cle : toutes les erreurs ne doivent pas finir en stop immediat. Certaines doivent etre classees puis reprises en securite.

L'agent peut proposer retry, mais la couche d'execution decide :

  • si retry est autorise
  • si fallback est necessaire
  • si escalation/stop est requis

Processus controle :

  1. Detecter : enregistrer la panne
  2. Classifier : determiner le type d'erreur
  3. Decider : retry/fallback/escalation
  4. Reprendre : continuer depuis un checkpoint
  5. Terminer en securite : s'arreter avec un stop_reason clair

Cela apporte :

  • reprise des processus longs apres pannes temporaires
  • degradation douce (cached/partial result)
  • pas de duplication des etapes deja reussies
  • raison d'arret transparente

Ca fonctionne bien si :

  • des limites max_retries et max_fallbacks existent
  • le checkpoint est sauvegarde apres progression sure
  • la classification separe retriable/non-retriable
  • les cas high-risk ne sont pas repris automatiquement

Le modele peut "vouloir" retry a l'infini, mais c'est la recovery-policy qui fixe les limites de reprise sure.

Comment ca fonctionne

Diagram

Critique : la reprise doit avoir des bornes.

  • max_retries et max_fallbacks
  • step_timeout et total_timeout
  • stop_reason pour chaque sortie
  • interdire “fallback -> retry -> fallback” sans compteur
Description complete du flow : Detect → Classify → Recover → Resume/Stop

Detecter
Le systeme enregistre une panne : timeout, tool error, invalid output ou policy violation.

Classifier
La panne est classee par type : retriable, tool_unavailable, invalid_output, non_retriable, high_risk.

Reprendre
Appliquer la politique : retry avec backoff, fallback vers un autre outil, mode degrade (partial result / cached data) ou escalation vers un humain.

Reprendre/Stopper
Si la reprise reussit, le processus continue depuis le dernier checkpoint. Sinon, arret controle.

En code, ca ressemble a ceci

PYTHON
fallbacks_used = 0

for attempt in range(max_retries + 1):
    try:
        result = run_step(goal, context, timeout_sec=step_timeout)
        checkpoint.save(task_id, context, result)
        return result

    except TimeoutError as err:
        kind = "retriable"

    except ToolUnavailableError as err:
        kind = "tool_unavailable"

    except ValidationError as err:
        kind = "invalid_output"

    except Exception as err:
        kind = classify_error(err)

    if kind == "retriable" and attempt < max_retries:
        sleep(backoff(attempt))
        continue

    if kind == "tool_unavailable" and fallbacks_used < max_fallbacks:
      fallbacks_used += 1
      context.append(f"fallback_used={fallbacks_used}")
      context.append("route=secondary_tool")  # ou alt_model / cached_path
      continue

    if kind == "high_risk":
        return escalate_to_human(goal, err, stop_reason="high_risk")

    return stop_with_reason(goal, stop_reason=kind, detail=str(err))

Sauvegardez des checkpoints apres une etape reussie ou une progression partielle sure (idempotent state). Sinon, retry peut dupliquer une action.

Exemple pendant l'execution

TEXT
Goal: generer un rapport client

Step 1: collecter les metriques
- timeout sur l'API analytics primaire
- classify: retriable
- retry #1 -> fail
- retry #2 -> fail

Fallback:
- bascule vers l'API read-replica
- succes

Resume:
- rapport assemble
- etape terminee sans rupture totale du processus

Exemple complet d'agent Fallback-Recovery

PYPython
TSTypeScript · bientot

Quand c'est adapte - et quand ca ne l'est pas

Adapte

SituationPourquoi Recovery est adapte
✅Outils externes instables et APIs/tooling flakyFallback + retries permettent de traverser des pannes temporaires sans effondrement total du processus.
✅Taches longues ou la progression ne doit pas etre perdueCheckpoint et resume permettent de repartir depuis la derniere etape stable.
✅Exigences SLA/SLO de resilience du processusUne boucle de recovery aide a tenir les objectifs de disponibilite et de fiabilite.
✅Besoin de stop reasons explicites plutot que silent failLe pattern formalise les causes d'arret et ameliore l'observabilite des pannes.

Non adapte

SituationPourquoi Recovery n'est pas adapte
❌Scenario ponctuel ou l'erreur n'est pas critiqueUne couche de recovery complexe coute plus cher que le benefice potentiel.
❌Retry/fallback interdits par les regles metierAucun chemin de reprise autorise, donc le pattern n'est pas applicable.
❌Pas de gestion de checkpoint/stateTechniquement impossible de reprendre correctement la progression apres echec.

Car ce pattern ajoute de la complexite operationnelle : logique d'erreur, gestion d'etat et surcout de maintenance.

Difference avec Supervisor

SupervisorFallback-Recovery
Quand il se declencheAvant l'execution d'une actionApres panne ou erreur
Role principalcontrole de policy et limitation du risqueresilience d'execution et reprise
Type de decisionsapprouver / retravailler / bloquer / escaladerretry / fallback / resume / stop
Valeur cleEviter les actions dangereusesEviter l'effondrement du processus sur erreur

Supervisor = prevention. Fallback-Recovery = restauration apres echec.

Quand utiliser Fallback-Recovery (vs autres patterns)

Utilisez Fallback-Recovery quand il faut restaurer l'execution apres incident, au lieu de casser tout le processus.

Test rapide :

  • si vous avez besoin de "retry/fallback/escalation apres erreur" -> Fallback-Recovery
  • si vous devez "arreter une action risquee avant execution" -> Guarded-Policy Agent
Comparaison avec d'autres patterns et exemples

Aide-memoire rapide :

Si la tache ressemble a ceci...Utilisez
Une verification rapide avant la reponse finaleReflection Agent
Une critique approfondie avec criteres et reecritureSelf-Critique Agent
Il faut reprendre le processus apres timeout, exception ou crash d'outilFallback-Recovery Agent
Des verifications de policy strictes avant une action risqueeGuarded-Policy Agent

Exemples :

Reflection: "Avant la reponse finale, verifie vite la logique, la completude et les erreurs evidentes."

Self-Critique: "Evalue la reponse via checklist (precision, completude, risques), puis reecris."

Fallback-Recovery: "Si l'API ne repond pas, fais retry -> source fallback -> escalation."

Guarded-Policy: "Avant d'envoyer des donnees vers l'exterieur, verifie la policy: est-ce autorise ?"

Combiner avec d'autres patterns

  • Fallback-Recovery + ReAct: si l'echec arrive au milieu de la boucle, l'agent relance seulement l'etape en echec au lieu de repartir de zero.
  • Fallback-Recovery + Orchestrator: en execution parallele, seule la branche en panne est reprise, les autres sous-taches continuent.
  • Fallback-Recovery + Supervisor: avant reprise, on verifie les policies pour que le fallback ne viole pas les regles de securite.

En bref

En bref

Fallback-Recovery Agent:

  • Detecte et classe les pannes
  • Applique des policies retry/fallback
  • Reprend l'execution via checkpoint
  • Stoppe de facon controlee si la reprise est impossible

Avantages et Inconvenients

Avantages

reprend rapidement apres une panne

reduit les temps d'indisponibilite

garde le processus stable pendant les erreurs

les scenarios critiques sont plus faciles a controler

Inconvenients

les scenarios fallback doivent etre penses a l'avance

la logique supplementaire complique le systeme

toutes les pannes ne peuvent pas etre reprises automatiquement

FAQ

Q: Ajouter des retries suffit-il ?
A: Non. Le minimum sur est : max_retries + backoff + step_timeout + stop_reason. Sans cela, les retries deviennent une boucle qui brule le budget.

Q: Quand preferer fallback a retry ?
A: Quand l'erreur est systemique : outil indisponible, quota epuisee ou endpoint degrade.

Q: Pourquoi checkpoint si on a deja fallback ?
A: Le fallback change le chemin d'execution, mais le checkpoint preserve la progression pour eviter de relancer tout le scenario depuis le debut.

Et ensuite

Fallback-Recovery ajoute de la resilience aux pannes.

Mais comment faire pour que des actions dangereuses ne demarrent jamais sans controles de policy ?

⏱ 11 min de lecture ‱ Mis Ă  jour Mars, 2026DifficultĂ©: ★★★
Suite pratique

Exemples d’implĂ©mentation du patron

Passe Ă  l’implĂ©mentation avec des projets d’exemple.

Intégré : contrÎle en productionOnceOnly
Ajoutez des garde-fous aux agents tool-calling
Livrez ce pattern avec de la gouvernance :
  • Budgets (steps / plafonds de coĂ»t)
  • Permissions outils (allowlist / blocklist)
  • Kill switch & arrĂȘt incident
  • Idempotence & dĂ©duplication
  • Audit logs & traçabilitĂ©
Mention intĂ©grĂ©e : OnceOnly est une couche de contrĂŽle pour des systĂšmes d’agents en prod.
Auteur

Cette documentation est organisée et maintenue par des ingénieurs qui déploient des agents IA en production.

Le contenu est assistĂ© par l’IA, avec une responsabilitĂ© Ă©ditoriale humaine quant Ă  l’exactitude, la clartĂ© et la pertinence en production.

Les patterns et recommandations s’appuient sur des post-mortems, des modes de dĂ©faillance et des incidents opĂ©rationnels dans des systĂšmes dĂ©ployĂ©s, notamment lors du dĂ©veloppement et de l’exploitation d’une infrastructure de gouvernance pour les agents chez OnceOnly.