# Flux de travail dynamiques

Permet GitHub Copilot d’orchestrer le travail sur des tâches complexes, de combiner potentiellement des opérations déterministes, des agents, des outils, des appels d’API et des interactions utilisateur.

> \[!NOTE] Cette fonctionnalité est en préversion publique et peut être modifiée.

Cet article explique ce que sont les flux de travail dynamiques et ce qu’ils peuvent faire. Pour plus d’informations sur leur utilisation, consultez [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows).

## À propos des flux de travail dynamiques

Un flux de travail dynamique est un programme qui définit la façon dont une tâche est effectuée. Il peut combiner des étapes automatisées avec le travail d’un ou de plusieurs agents. Les étapes peuvent s’exécuter l’une après l’autre, en parallèle ou sous la forme d’un mélange des deux.

Les flux de travail dynamiques sont particulièrement utiles pour les tâches complexes, multi-étapes et les tâches que vous souhaitez pouvoir répéter avec un ensemble déterministe d’actions effectuées à chaque fois. Par exemple, vous pouvez utiliser un flux de travail dynamique pour examiner un incident d’interruption de service, en collectant des journaux et des données de télémétrie, en attribuant des agents indépendants à l’analyse de différents systèmes et en combinant leurs résultats structurés en une chronologie et un rapport d’analyse des causes racines.

Les flux de travail dynamiques peuvent :

* Exécutez des commandes, utilisez des outils ou appelez d’autres services.
* Divisez un objectif en tâches et exécutez des tâches indépendantes en parallèle.
* Transférer les résultats d’une étape à l’autre.
* Les sous-éléments vérifient les résultats des uns des autres.
* Combinez les résultats en une seule réponse.
* Demandez-vous une entrée si l’application que vous utilisez le prend en charge.
* Suspendre à un point de contrôle pour pouvoir passer en revue les résultats et reprendre l’exécution lorsque vous êtes prêt.

Tout est défini dans le code : les étapes, quand faire intervenir des agents et comment utiliser leurs résultats. Les agents gèrent les parties qui ont besoin d’analyse ou de jugement.

Un flux de travail peut demander aux agents de retourner des résultats dans un format spécifié afin que les étapes ultérieures puissent les utiliser.
Copilot peut demander à un agent de corriger le format si nécessaire.

Les flux de travail dynamiques sont définis dans les Copilot extensions. Ce peut être :

* **Rédigé par Copilot.** Décrivez la tâche et le processus que vous souhaitez que le flux de travail suive.
* **Créé par vous.** Vous pouvez écrire l’extension vous-même à l’aide Copilotdes instructions de création intégrées.
* **Partagé avec vous.** Une fois l’extension chargée, ses flux de travail dynamiques sont disponibles pour une utilisation.

Pour utiliser un flux de travail dynamique, vous pouvez demander Copilot en langage naturel de l’exécuter par son nom. Par exemple:

```copilot copy
Run the java-security-review dynamic workflow on the java files in the current directory.
```

Lorsque vous démarrez un flux de travail dynamique à partir d’une invite, Copilot exécute-le en arrière-plan et signale une fois terminé. Vous pouvez continuer à travailler dans votre session pendant qu’elle s’exécute.

> \[!IMPORTANT]
> Votre agent conversationnel ne crée ou n’exécute un flux de travail dynamique que lorsque vous le lui demandez explicitement, ou lorsqu’une compétence ou une commande barre oblique lui indique de le faire.

Dans Copilot CLI, vous pouvez également exécuter un flux de travail dynamique existant directement à partir de votre terminal avec `copilot workflow run WORKFLOW-NAME`. Vous n’avez pas besoin d’ouvrir une conversation interactive ou de demander à un agent de le démarrer. Le flux de travail peut toujours utiliser des agents pour effectuer ses étapes.

La commande attend que l’exécution se termine ou s’arrête avant de retourner le contrôle à votre interpréteur de commandes. Utilisez cette approche pour répéter un workflow avec des entrées spécifiques, enregistrer son résultat ou l’exécuter depuis un script ou un pipeline CI/CD. Pour plus d’informations, consultez « [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows#running-a-dynamic-workflow-from-the-command-line) ».

Vous pouvez également démarrer un flux de travail par le biais de la commande de barre oblique d’une extension, d’un outil personnalisé ou d’un hook programmatique, ou à partir d’un autre code qui utilise le GitHub Copilot SDK. Dans l’extension Copilot app, une extension peut fournir un canevas ( une interface personnalisée) avec des contrôles pour démarrer le flux de travail. Ces alternatives dépendent de l’extension et du client que vous utilisez.

Pour plus d’informations sur les canevas, consultez [Utiliser les extensions de canvas dans l’application GitHub Copilot](/fr/copilot/how-tos/github-copilot-app/working-with-canvas-extensions).

Pour voir quels flux de travail dynamiques sont disponibles, demandez Copilotsimplement :

```copilot copy
What dynamic workflows are available?
```

## En quoi les flux de travail dynamiques diffèrent d’Autopilot et de Fleet

Si vous utilisez déjà le mode Autopilot et la `/fleet` commande, un flux de travail dynamique peut sembler être le même genre de chose. La principale différence est la façon dont le travail est planifié et contrôlé, pas simplement le nombre d’agents utilisés.

* **Autopilot** est un mode qui concerne l’autonomie. Il permet de Copilot continuer à travailler via une tâche sans interrompre l’obtention de votre entrée après chaque étape.
* **`/fleet`** encourage Copilot à déléguer le travail à des sous-agents et à coordonner leur travail en parallèle. Copilot détermine comment décomposer la tâche à chaque fois.
* **Un flux de travail dynamique** exécute un processus défini dans le code. L’auteur du flux de travail définit les étapes, les conditions et les documents. Le processus peut utiliser un agent ou plusieurs, avec le travail en séquence, en parallèle ou les deux.

La réutilisation d’un flux de travail signifie réutiliser ses étapes et ses règles. Le chemin d’accès à ces étapes peut changer avec les entrées ou les constatations, et les agents peuvent donner des réponses différentes sur différentes exécutions.

| Aspect                                                  | Pilote automatique                                                               | Fleet                                                    | Flux de travail dynamique                                                               |
| ------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| Objectif principal                                      | Laissez Copilot continuer à travailler de manière autonome                       | Encourager Copilot à déléguer le travail aux sous-titres | Exécuter un processus défini par le code                                                |
| Qui définit le processus ?                              |                                                                                  |                                                          |                                                                                         |
| Copilot décide des étapes suivantes                     |                                                                                  |                                                          |                                                                                         |
| Copilot décide comment diviser et coordonner le travail | L’auteur du flux de travail définit les étapes, les conditions et les transferts |                                                          |                                                                                         |
| Fonctionnement d’une tâche                              | Dépend de la tâche et Copilotdes décisions prises                                | Le travail indépendant peut être délégué en parallèle    | Séquentiellement, en parallèle, ou les deux, à l’aide d’un agent ou de plusieurs agents |

Pour plus d’informations sur le contrôle des exécutions de flux de travail, consultez [Limitation d’un flux de travail dynamique](#limiting-a-dynamic-workflow) et [surveillance, arrêt, suspension et reprise des exécutions](#watching-stopping-pausing-and-resuming-runs).

## Quand utiliser un flux de travail dynamique

Utilisez un workflow dynamique lorsque vous souhaitez définir un processus réutilisable, ou lorsqu’une tâche unique nécessite des étapes claires, des contrôles ou des limites. Les candidats parfaits sont :

* Exécution des vérifications de publication, demande à un agent d’évaluer les échecs, puis mise en pause pour vous permettre d’examiner les résultats avant la reprise.
* Révision en parallèle de nombreux fichiers modifiés dans une pull request.
* Utilisation du code pour rechercher des commentaires de révision non résolus sur les demandes de tirage fusionnées, puis demander à deux modèles si les commentaires sont toujours importants. Le code du flux de travail signale des résultats uniquement lorsque les deux sont d’accord.
* Balayage d’une base de code volumineuse pour un modèle( par exemple, des tests ou des utilisations manquants d’une API que vous supprimez) sur de nombreux répertoires à la fois.
* Recherche d’un changement, planification de sa mise en œuvre à partir des résultats, puis changement.
* Lancer une longue exécution potentiellement coûteuse que vous souhaiterez peut-être suspendre et reprendre ultérieurement.

Pour une réponse rapide ou une simple modification, une requête normale en mode de chat standard est généralement suffisante.

## Autorisations pour les flux de travail dynamiques

Les sous-agents d’un flux de travail dynamique utilisent le système d’autorisation du CLI et héritent des autorisations accordées de la session qui les a lancés. Tout ce que vous avez déjà autorisé dans votre session s’applique aux sous-agents du flux de travail dynamique.

Si l’un des sous-éléments d’un flux de travail tente d’effectuer quelque chose qui n’est pas déjà autorisé, sa requête s’affiche comme une invite d’autorisations normale dans votre session CLI interactive. Vous l’approuvez là, de la même manière que vous le feriez pour l’agent principal. Le sous-agent qui a besoin d’une permission attend simplement votre réponse.

Si un sous-agent demande une autorisation et que vous l’accordez pendant la durée de la session, cette octroi s’applique à tous les sous-titres qui ont besoin de la même autorisation.

Lorsque vous utilisez `copilot workflow run`, la commande n’affiche pas les demandes de confirmation d’autorisation. Accordez les autorisations dont les agents du flux de travail ont besoin avant de commencer l’exécution. Consultez « [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows#running-a-dynamic-workflow-from-the-command-line) ».

Une extension peut également exécuter son propre code directement, en dehors de ces invites d’autorisation.

## Création d’un flux de travail dynamique

Vous pouvez créer un flux de travail dynamique en demandant à Copilot de le faire dans une session interactive. Dites à Copilot ce que vous voulez que le flux de travail accomplisse.

Par défaut, Copilot crée une extension pour votre session en cours. Vous pouvez plutôt lui demander de créer une extension personnelle ou de projet, ou écrire l’extension vous-même à l’aide Copilotdes conseils de création intégrés.

Pour plus d’informations, consultez « [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows) ».

## Révision d’un flux de travail dynamique

En général, la première fois que vous utilisez un flux de travail dynamique, vous le testerez en l’exécutant sur un périmètre limité. Par exemple, pour un flux de travail dynamique conçu pour traiter plusieurs fichiers, vous pouvez initialement indiquer Copilot d’exécuter le flux de travail sur seulement deux ou trois fichiers. Vous pouvez ensuite évaluer le résultat. Si nécessaire, vous pouvez ensuite demander à Copilot de réviser le flux de travail avant de l’exécuter à nouveau.

Utilisez une requête en langage naturel pour demander à Copilot de modifier la définition enregistrée du workflow, plutôt que d’outrepasser une limite le temps d’une seule exécution. Par exemple:

```copilot copy
Update the check-python-style dynamic workflow to use no more than 10 subagents in total.
```

Les révisions sont enregistrées dans l’extension du flux de travail dynamique, qu’elle soit stockée pour une session, dans votre répertoire d’extensions personnelles ou dans un dépôt de projet. Les nouvelles exécutions utilisent la version révisée après le chargement de l’extension mise à jour. Cela ne remplace pas les résultats enregistrés dans une exécution en pause.

Si vous modifiez un flux de travail dynamique que vous avez partagé dans le référentiel d’un projet, les personnes travaillant sur ce projet doivent récupérer la version mise à jour du référentiel, puis recharger leurs extensions, avant de pouvoir utiliser la version révisée.

## Réutilisation et partage de flux de travail dynamiques

Par défaut, les flux de travail que Copilot crée pour vous sont limités à la session active. Vous pouvez copier l’extension dans votre répertoire d’extensions personnelles pour l’utiliser entre les sessions, ou dans le répertoire des extensions d’un dépôt pour le partager avec des personnes travaillant sur ce projet. Cela partage la définition, et non l’historique d’exécution de la session d’origine ou la progression enregistrée. Pour plus d’informations, consultez « [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows#reusing-and-sharing-dynamic-workflows) ».

Pour partager plus largement un flux de travail dynamique, vous pouvez le conditionner sous forme de plug-in et le distribuer via le système de gestion des plug-ins de votre choix. Pour plus d’informations, consultez « [Création d’un plug-in pour GitHub Copilot CLI](/fr/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating) ».

## Limiter un workflow dynamique

Vous pouvez définir les limites suivantes pour un flux de travail dynamique :

* Nombre maximal d’agents appartenant au flux de travail qui peuvent être actifs en même temps.
* Nombre maximal d’agents appartenant au flux de travail qui peuvent être lancés, au total, au cours d’une exécution.
* Temps d’exécution actif maximal, y compris le temps utilisé avant une pause. L’heure pendant laquelle l’exécution est suspendue ne compte pas.
* Nombre maximal approximatif de AI credits que les agents du flux de travail et leurs sous-agents peuvent consommer.

  > \[!NOTE]
  > Copilot suit les crédits utilisés par les agents du workflow et arrête le nouveau travail lorsque le total atteint la limite. L’utilisation est signalée une fois qu’elle se produit, de sorte que le travail déjà en cours peut faire dépasser la limite au total. Il s’agit d’un maximum approximatif, pas d’une limite stricte.

Les limites peuvent être définies à trois endroits :

* **Dans votre prompt :** Spécifiez une limite en langage naturel dans le prompt que vous utilisez pour exécuter un flux de travail dynamique. Par exemple:

  ```copilot
  Use the architecture-research dynamic workflow on this repo, with a timeout of 1 hour.
  ```

* **Dans le code du workflow :** Lorsque vous créez un workflow dynamique, vous pouvez, si vous le souhaitez, définir des limites à utiliser lors de l’exécution du workflow dynamique.

* **Dans vos paramètres personnels :** Vous pouvez définir des limites par défaut dans vos paramètres personnels pour Copilot. Ces limites s’appliquent à tout flux de travail dynamique que vous exécutez, si aucune limite du même type n’est spécifiée dans la requête ou dans le code du flux de travail.

  Dans Copilot CLI vous pouvez utiliser les paramètres suivants avec la commande `/settings` pour configurer vos limites par défaut personnelles pour les flux de travail dynamiques.

  * `workflows.defaultLimits.maxConcurrentSubagents`
  * `workflows.defaultLimits.maxTotalSubagents`
  * `workflows.defaultLimits.timeoutSeconds` (doit être spécifié en secondes)
  * `workflows.defaultLimits.maxAiCredits`

  Par exemple:

  ```copilot
  /settings workflows.defaultLimits.timeoutSeconds 3600
  ```

Les limites sont classées par ordre de priorité dans l’ordre indiqué ci-dessus. Si vous spécifiez une limite dans votre prompt, elle remplace toute limite correspondante définie dans le flux de travail dynamique ou dans vos paramètres personnels.

La limite de sous-agents simultanés fait attendre d’autres sous-agents jusqu’à ce que d’autres se terminent. L’atteindre n’interrompt pas le workflow.

Les autres limites peuvent arrêter une exécution, mais son état et les résultats enregistrés sont conservés afin que vous puissiez le reprendre ultérieurement. Lorsque vous reprenez une exécution qui s’est arrêtée en raison d’une limite, augmentez cette limite pour autoriser davantage de travail. La nouvelle limite est un total pour l’exécution, y compris l’utilisation avant son arrêt, et non une nouvelle allocation.

### Empêcher l’utilisation inattendue de AI credit

Un flux de travail qui lance de nombreux sous-agents peut prendre beaucoup de temps à s’exécuter entièrement et consommer un grand nombre de AI credits.

Pour éviter une consommation élevée inattendue de AI credits, vous devez tester un flux de travail dynamique avec une portée limitée avant de l’utiliser pour un travail à grande échelle. Après avoir effectué une petite exécution, vérifiez l’utilisation réelle de AI credit, puis définissez une limite appropriée sur AI credits pour l’exécution à grande échelle.

## Surveiller, arrêter, suspendre et reprendre des exécutions

Vous pouvez utiliser la `/workflows` commande slash dans une Copilot CLI session, ou le bouton **Flux de travail** dans le Copilot app, pour afficher les exécutions actuelles ou passées du flux de travail.

Les détails indiquent l’utilisation de AI credits ainsi que toutes les phases, messages de progression et sous-agents que le flux de travail signale. Vous pouvez annuler ou suspendre un flux de travail en cours d’exécution à partir d’ici. Une extension peut également fournir son propre affichage de progression, par exemple dans un canvas dans le Copilot app.

Si vous avez suspendu une exécution ou si elle s’est arrêtée parce qu’une limite a été atteinte, vous pouvez la sélectionner dans la liste des exécutions pour la reprendre. Le flux de travail peut réutiliser les résultats enregistrés à partir des étapes et des sous-agents terminés. Le travail qui n’a pas été enregistré doit peut-être être réexécuté.

Pour plus d’informations, consultez « [Utilisation de flux de travail dynamiques](/fr/copilot/how-tos/use-copilot-agents/use-dynamic-workflows#monitoring-and-managing-dynamic-workflow-runs) ».