
# Workflows et tâches

Un **workflow** est une suite d'étapes que vos agents exécutent pour vous :
lire chaque matin les nouveaux messages d'un contexte et publier un résumé,
lire les documents qui arrivent et en extraire les données, répondre à un
webhook d'un autre système. Vous le construisez une fois dans SweetHive et il
tourne tout seul.

Les workflows s'exécutent **sur vos propres ordinateurs**, pas dans le cloud :
sur votre [SweetHive Agents Node](agents-node) ou sur
l'[Agents Server](agents-server) de votre entreprise. Les modèles d'IA, les
documents et les données qu'ils traitent restent sur ces machines.

Tout ce qui s'exécute pour vous est listé dans **My agents, Tâches** : vos
workflows et les demandes venant des apps SweetHive (par exemple SweetTimetable
qui lit vos tickets, ou SweetReach qui crée une vidéo).

## Créer un workflow

1. Ouvrez **My agents** et choisissez l'onglet **Workflows**.
2. Cliquez sur **Nouveau workflow**. L'éditeur s'ouvre avec une zone de
   travail :
   - à gauche, la liste des **étapes** que vous pouvez ajouter ;
   - au centre, la **zone de travail** avec vos étapes et les liens entre
     elles ;
   - à droite, les **réglages** de l'étape sélectionnée.
3. Cliquez sur une étape de la liste pour l'ajouter après celle qui est
   sélectionnée. Pour relier deux étapes, faites glisser le point à droite
   d'une étape vers une autre étape.
4. Choisissez l'**agent** avec lequel le workflow s'exécute (barre du haut).
   Les étapes qui lisent ou publient dans vos hives utilisent cet agent : le
   workflow ne voit donc jamais plus que ce que l'agent peut voir.
5. **Enregistrez**. Chaque modification des étapes enregistre une nouvelle
   version ; les exécutions déjà lancées gardent la version avec laquelle
   elles ont commencé.
6. Appuyez sur **Exécuter** pour l'essayer : chaque étape de la zone de
   travail affiche son état en direct (en attente, en cours, terminée,
   échouée) et, une fois finie, son résultat.

## Quand un workflow démarre

Sélectionnez la première étape (le déclencheur) pour choisir comment le
workflow démarre :

- **Manuel** - quand vous appuyez sur Exécuter, dans l'éditeur ou dans la
  liste des Workflows.
- **Planifié** - à heures fixes : toutes les heures, tous les jours à 8h00, du
  lundi au vendredi à 9h00, ou toute planification que vous écrivez (cron)
  dans votre fuseau horaire.
- **Événement de la hive** - quand il y a un nouveau message, fichier, tâche,
  événement ou e-mail dans un hive (éventuellement dans un seul contexte).
- **Webhook** - quand un autre système appelle l'URL du workflow. Le secret
  n'est affiché qu'une fois : copiez-le au moment de sa création.
- **Événement d'une app** - quand une app connectée émet un événement (par
  exemple un nouveau lead dans SweetCRM).

Vous pouvez mettre un workflow en pause à tout moment avec son interrupteur
**Actif**.

## Les étapes

| Groupe | Étapes |
|---|---|
| SweetHive | **Lire le contexte** (messages, fichiers, tâches d'un contexte), **Publier dans le contexte** |
| IA sur votre ordinateur | **Générer du texte**, **Extraire des données** (du texte vers des données structurées), **Lire un document** (PDF, scans et photos vers du texte et des données), **Créer une vidéo** |
| Intégrations | **Requête HTTP** (https uniquement ; les réseaux privés sont bloqués) |
| Données | **Définir des valeurs**, **Transformer la liste**, **Filtrer la liste** |
| Flux | **Si** (deux branches), **Aiguiller** (une branche par cas), **Attendre** |

Une étape peut utiliser les résultats des précédentes. Dans n'importe quel
champ de texte, insérez une variable avec les boutons sous les réglages, par
exemple `{{ $steps.summary.output.text }}` (le texte généré par l'étape
nommée *summary*) ou `{{ $trigger }}` (ce qui a démarré le workflow). Il n'y
a pas de code à écrire.

## Où s'exécutent les étapes

Chaque étape s'exécute sur l'un de vos ordinateurs :

- par défaut, elle reste sur le **même ordinateur que l'étape précédente**
  (le modèle est déjà chargé, les fichiers sont déjà là) ;
- elle passe sur **un autre ordinateur** quand elle a besoin de quelque chose
  que le premier n'a pas : un modèle qui voit les images, un contexte plus
  grand, un render worker. Vous pouvez aussi laisser une étape s'exécuter sur
  **n'importe quel ordinateur disponible** (*Où elle s'exécute* dans ses
  réglages).

Si aucun de vos ordinateurs ne peut exécuter une étape pour le moment, la
tâche attend et vous explique pourquoi (par exemple *En attente d'un de vos
ordinateurs : ouvrez SweetHive Agents Node et elle démarre toute seule*).
Elle démarre d'elle-même dès qu'un ordinateur adapté est en ligne.

## Suivre vos tâches

**My agents, Tâches** liste ce qui est en cours et ce qui a été exécuté, les
plus récentes en premier. Chaque tâche indique qui l'a lancée (un workflow ou
une app), combien d'étapes sont terminées, quel ordinateur l'exécute et,
quand quelque chose ne va pas, la raison en mots simples : le modèle n'est pas
installé, le document est trop long pour le modèle, le lien du fichier a
expiré, l'ordinateur a cessé de répondre.

- **Annuler** arrête une tâche en attente ou en cours.
- **Réessayer** relance une tâche échouée ou annulée.
- Ouvrez une tâche pour voir chaque étape, l'ordinateur et le modèle
  utilisés, sa durée et son résultat.

Quand le problème vient de l'ordinateur (un modèle manquant, un contexte trop
petit, l'ordinateur éteint), la tâche n'épuise pas ses tentatives : elle
passe sur un autre ordinateur ou elle attend. Quand le problème vient des
données d'entrée (un document illisible, une réponse que le modèle n'a pas su
mettre en forme), elle est relancée une fois puis signalée.

Le SweetHive Agents Node affiche la même liste dans sa section **Tâches** :
ce qu'il fait maintenant et ce qu'il a fait récemment.

## Confidentialité

- Un workflow s'exécute **en tant que l'un de vos agents** : il ne voit que
  les hives et les contextes que cet agent peut voir, et il ne peut publier
  que si cet agent peut publier.
- Les étapes d'IA s'exécutent **sur vos ordinateurs** avec des modèles
  locaux.
- Les fichiers passés d'une étape à l'autre sont conservés 7 jours puis
  supprimés. Les liens vers les documents envoyés par les apps ne sont jamais
  affichés dans les listes de tâches.
