---
title: Arêtes et conditions
description: >-
  Comment une arête décide du passage au nœud suivant : les quatre types de
  transition, les chemins avant et arrière, et l'écriture d'une condition.
---
<Badge variant="accent">Agents à flux</Badge>

Une arête relie deux nœuds et porte la condition sous laquelle la conversation
l'emprunte. Sélectionner l'étiquette d'une arête ouvre **Configure Edge Connection**
(configurer la connexion de l'arête) dans le panneau de droite. Une arête sans
condition est toujours empruntée ; une arête avec une condition n'est empruntée que
lorsque la condition est remplie, et un nœud comportant plusieurs arêtes sortantes
est l'endroit où le flow se ramifie.

:::tip[Rédigez les conditions comme une personne les formulerait]
Le type de transition le plus courant est une condition en langage naturel. Décrivez
la situation, pas les mots : `The caller has confirmed their date of birth`
fonctionne mieux qu'une liste de formulations à faire correspondre.
:::

![L'éditeur d'arête pour l'arête entre un nœud Prompt et End Call.](/media/build/edge-panel.webp)

## Fonctionnement

Tant que la conversation se trouve à un nœud, l'agent vérifie en continu les arêtes
sortantes de ce nœud. Dès que la condition d'une arête est remplie, la conversation
passe au nœud cible de cette arête et les instructions de la cible prennent le
relais. Les conditions en langage naturel sont évaluées par un modèle à partir de la
transcription obtenue jusque-là ; les conditions de résultat d'outil et de variable
sont vérifiées par rapport aux faits dont le flow dispose déjà.

Une arête est créée lorsque vous ajoutez un nœud depuis une poignée **+**. Faites
glisser depuis une poignée vers un autre nœud pour relier deux nœuds existants.

## Configurer une arête

Le panneau comporte deux onglets, **Forward Path** (chemin avant) et **Backward
Path** (chemin arrière), avec les mêmes champs. Le chemin avant est la direction
normale, du nœud de départ vers le nœud que vous avez ajouté. Le chemin arrière
s'applique lorsque le flow revient en arrière le long de l'arête, pour des boucles
de nouvelle tentative ou de correction ; sa valeur par défaut est **None (Always)**
(aucune condition, toujours).

| Champ | Type | Signification |
|---|---|---|
| **Transition Type** (type de transition) | Sélection | L'un des 4 types ci-dessous. |
| **Edge Label** (étiquette de l'arête) | Texte | Le texte affiché sur le canevas, par exemple `User confirms`. Affiché pour les conditions en langage naturel. |
| **Natural Language Condition** (condition en langage naturel) | Texte | La condition elle-même, avec **Natural Language Condition**. |
| **Tool Execution Result** (résultat de l'exécution de l'outil) | Interrupteur | Avec **Tool Result Condition** (condition de résultat d'outil) : activé, il affiche **Success** (réussite) et le chemin est emprunté lorsque l'outil a réussi ; désactivé, il affiche **Failure** (échec) et le chemin est emprunté lorsqu'il a échoué. |

Le type de transition d'une nouvelle arête dépend du nœud qu'elle quitte : **Natural
Language Condition** depuis un nœud **Start Call** (début d'appel) ou **Prompt**,
**Tool Result Condition** avec **Success** depuis un nœud **Webhook**.

**Save Changes** (enregistrer les modifications) applique l'arête ; **Delete Edge**
(supprimer l'arête) la supprime après une confirmation ; **Cancel** (annuler) annule
les modifications du panneau. Le flow est enregistré lorsque vous choisissez
**Save** (enregistrer) en haut de la page.

## Types de transition

![Les 4 types de transition.](/media/build/edge-transition-types.webp)

### None (Always)

L'arête est toujours empruntée, sans aucune condition. Utilisez-la lorsqu'un nœud
n'a qu'une seule étape suivante : après un nœud **Webhook** qui doit toujours être
suivi d'une confirmation, ou depuis le dernier nœud **Prompt** vers **End Call** (fin
d'appel). Si un nœud possède une arête toujours empruntée et d'autres arêtes
conditionnelles, l'arête toujours empruntée l'emporte dès que les instructions du
nœud sont terminées : réservez-la donc aux nœuds n'ayant qu'une seule sortie.

### Natural Language Condition

Le type par défaut pour les arêtes sortant d'un nœud **Start Call** ou **Prompt**.
L'agent évalue la condition
au regard de la conversation. Deux champs : **Edge Label**, qui correspond à ce
qu'affiche le canevas, et **Natural Language Condition**, la phrase qui est évaluée.
Les exemples fournis par le panneau lui-même : `When the user wants to talk to support`, `If the customer mentions a
billing issue`.

Rédigez une seule condition par arête, rendez les conditions sœurs mutuellement
exclusives et donnez au nœud une arête de repli (`The caller does not want any of these`) afin que la conversation ne reste jamais bloquée.

### Tool Result Condition

Pour les arêtes sortant d'un nœud **Webhook**, ou d'un nœud **Prompt** qui appelle
des outils. L'arête est empruntée lorsque l'appel de l'outil a réussi (**Success**)
ou a échoué (**Failure**). Associez deux arêtes, une de chaque type, afin qu'une
recherche échouée mène à un nœud qui s'excuse et prend un message au lieu
d'interrompre le flow.

### Variable Condition

Se ramifie selon la valeur d'une variable extraite dans l'onglet **Extract**
(extraire) d'un nœud **Prompt**. **Select Variable** (sélectionner une variable)
liste les variables extraites sur le nœud que quitte l'arête et sur les nœuds qui le
précèdent, chacune avec son type et le nœud dont elle provient ; s'il n'y en a
aucune, il n'y a rien à choisir : définissez donc d'abord la variable. Voir
[Nodes](/fr/build/flow-agents/nodes#extract).

| Champ | Signification |
|---|---|
| **Select Variable** | La variable à tester. |
| **Operator** (opérateur) | Dépend du type de la variable. Texte : **Equals** (égal à), **Not equals** (différent de), **Contains** (contient), **Does not contain** (ne contient pas), **Starts with** (commence par), **Ends with** (se termine par), **Is one of** (fait partie de), **Is not one of** (ne fait pas partie de), **Is empty** (est vide), **Is not empty** (n'est pas vide). Nombres : **Equals**, **Not equals**, **Greater than** (supérieur à), **Less than** (inférieur à), **Greater than or equal** (supérieur ou égal à), **Less than or equal** (inférieur ou égal à). Booléen : **Equals**, **Not equals**. |
| **Compare Value** (valeur de comparaison) | La valeur à comparer : un interrupteur **True**/**False** (vrai/faux) pour un booléen, une liste des valeurs possibles de la variable lorsqu'elle en comporte, des valeurs séparées par des virgules pour **Is one of** et **Is not one of**, ou une valeur libre. Non affiché pour **Is empty** et **Is not empty**. |

**Condition Preview** (aperçu de la condition) affiche la condition telle qu'elle est
rédigée, et l'étiquette de l'arête en est tirée, par exemple
`{{order_status}} equals shipped`.

## Comportement et limites

- Les conditions sont évaluées au nœud qu'elles quittent. Une arête ne peut pas voir
  ce qui se passe après sa cible.
- Une condition en langage naturel est une appréciation, pas une correspondance
  exacte. Testez-la dans **Chat** (discussion) avec plusieurs formulations de la même
  intention avant de publier.
- Les étiquettes d'arête sont destinées aux personnes. L'agent lit la condition, pas
  l'étiquette : une arête étiquetée `Yes` avec une condition vide n'est donc pas une
  condition.
- **Auto Layout** (disposition automatique) dans la barre d'outils redessine le
  canevas le long des arêtes lorsque les ramifications en rendent la lecture
  difficile.

## Voir aussi

- [Flow editor](/fr/build/flow-agents/flow-editor)
- [Nodes](/fr/build/flow-agents/nodes)
- [Dynamic variables](/fr/build/dynamic-variables)
- [Testing in the browser](/fr/test-and-improve/testing-in-the-browser)
