> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fanifyai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ré-évaluer la stratégie

> Action de stratégie qui déclenche une nouvelle passe d'évaluation des règles avec l'état mis à jour. Permet aux règles qui dépendent d'un changement d'état de matcher dans la même génération (évaluation multi-pass).

L'action **"Ré-évaluer la stratégie"** s'utilise dans une règle de stratégie pour **relancer une passe d'évaluation** des règles quand la règle matche, sans redémarrer le [job AutoReply](/fr/advanced/jobs/autoreply). Elle existe pour un cas précis : quand une action a **modifié l'état de l'utilisateur** en cours d'évaluation (classification d'une liste de cas, accomplissement débloqué, variable posée) et que **d'autres règles** dépendent de ce nouvel état.

Par défaut, les règles sont évaluées une seule fois, contre l'état de l'utilisateur tel qu'il était au début du traitement. Une règle dont la condition n'était pas encore satisfaite à ce moment-là ne matche pas — même si une action l'a rendue vraie juste après. Cette action déclenche une **nouvelle passe** qui relit toutes les règles avec l'état à jour, de sorte que ces règles nouvellement satisfaites matchent enfin et contribuent leurs [injections](/fr/advanced/jobs/autoreply#workflow) au prompt final.

## Cas d'usage typiques

* **Classification puis réaction** : une première règle évalue une liste de cas (par exemple le profil du fan), une seconde règle injecte des consignes uniquement pour un cas donné. La ré-évaluation permet à la seconde règle de matcher dans la même génération.
* **Accomplissement débloqué en cours de traitement** : une action débloque un accomplissement, une autre règle conditionnée sur cet [accomplissement](/fr/advanced/strategy/conditions/achievements/user_hasachievement) doit s'appliquer immédiatement.
* **Variable posée par une action** : une action écrit une [variable utilisateur](/fr/advanced/strategy/conditions/user-variables/uservar_exists), et une règle conditionnée sur cette variable doit prendre effet sans attendre le prochain message.
* **Chaînage de logique** : enchaîner plusieurs étapes de décision qui dépendent chacune du résultat de la précédente.

## Comment fonctionne une passe

L'évaluation initiale est la **passe 1**. Chaque exécution de cette action demande une **passe supplémentaire** : la stratégie est relue en entier avec l'état courant.

<Steps>
  <Step title="La règle matche et exécute ses actions">
    L'action **"Ré-évaluer la stratégie"** s'exécute. Les actions **restantes** de la même règle ne sont pas exécutées : la passe s'arrête ici.
  </Step>

  <Step title="Une nouvelle passe démarre">
    Toutes les règles sont réévaluées avec l'état mis à jour. Les règles nouvellement satisfaites matchent et exécutent leurs actions à leur tour.
  </Step>

  <Step title="Le processus se répète jusqu'à stabilisation">
    Tant qu'une action redemande une ré-évaluation et que la limite de passes n'est pas atteinte, une nouvelle passe est lancée. Sinon, le traitement se poursuit normalement.
  </Step>
</Steps>

<Note>
  Une règle déjà exécutée lors d'une passe précédente n'est **jamais ré-exécutée** dans le même job. Chaque règle s'exécute donc au plus une fois, quel que soit le nombre de passes.
</Note>

## Options

### Raison *(optionnel)*

Le champ **"Raison (optionnel)"** est un texte libre documentant pourquoi la ré-évaluation est déclenchée. Il n'a **aucun effet** sur le comportement ; il sert uniquement de repère lorsque vous analysez le déroulé de la stratégie.

### Ignorer la règle actuelle aux prochaines passes *(activé par défaut)*

L'option **"Ignorer la règle actuelle aux prochaines passes"** (`skipCurrentRule`) exclut la règle contenant cette action des passes suivantes. C'est une **protection contre les boucles** : la règle qui a déclenché la ré-évaluation ne peut pas la redéclencher en boucle.

<Warning>
  Laissez cette option **activée** dans la quasi-totalité des cas. Elle fait partie des garde-fous anti-boucle de l'action.
</Warning>

### Nombre maximum de passes *(défaut : 3)*

L'option **"Nombre maximum de passes"** (`maxPasses`) borne le nombre total de passes d'évaluation autorisées pour ce job, **passe initiale incluse**.

| Valeur           | Signification                                                  |
| ---------------- | -------------------------------------------------------------- |
| **1**            | Valeur minimale : limite les ré-évaluations au strict minimum. |
| **3** *(défaut)* | 1 passe initiale + 2 ré-évaluations maximum.                   |
| **10**           | Maximum absolu autorisé par le moteur.                         |

<Info>
  La limite est plafonnée à **10** par le moteur, quelle que soit la valeur saisie. La valeur est bornée entre 1 et 10 dans l'éditeur.
</Info>

## Comportement à l'exécution

* Quand la ré-évaluation est acceptée, elle **arrête** l'exécution des actions restantes de la règle courante, puis **arrête** l'évaluation des règles restantes de la passe en cours pour passer à la passe suivante.
* Le **prompt final** utilisé pour la réponse est celui construit lors de la **dernière passe** : il reflète donc l'état pleinement mis à jour.
* L'action **ne stoppe pas** le job et **ne redémarre pas** le job : la génération de la réponse se poursuit normalement une fois toutes les passes terminées.

## Cas limites

* **Limite de passes atteinte** : si une action redemande une ré-évaluation alors que le nombre maximum de passes est déjà atteint, la demande est **ignorée silencieusement** et le traitement se poursuit avec l'état courant. Aucune erreur, aucun blocage.
* **Aucune nouvelle règle satisfaite** : si la passe suivante ne fait matcher aucune règle qui n'a pas déjà été exécutée, la ré-évaluation n'a aucun effet visible — elle consomme simplement une passe.
* **`Nombre maximum de passes` hors bornes** : sur une stratégie importée dont la valeur serait inférieure à 1 ou supérieure à 10, la carte d'action affiche un **avertissement** dans l'éditeur. Le moteur applique de toute façon le plafond absolu de 10.

## Voir aussi

* [Réponses automatiques (AutoReply)](/fr/advanced/jobs/autoreply#workflow) — Le workflow d'évaluation des règles et le mécanisme multi-pass.
* [Conditions sur les listes de cas](/fr/advanced/strategy/conditions/custom-enums/customenum_hascase) — Réagir à une classification posée par une action précédente.
* [Conditions sur les variables utilisateur](/fr/advanced/strategy/conditions/user-variables/uservar_exists) — Réagir à une variable posée en cours de traitement.
