Date de la publication : 21 janvier 2026
Lecture : 13 min
Découvrez les flows de GitLab Duo Agent Platform : maîtrisez les flows de base, créez des workflows personnalisés et explorez les modèles d'orchestration.

Bienvenue dans la partie 4 de notre guide en huit parties, Démarrer avec GitLab Duo Agent Platform, dans laquelle vous apprendrez à maîtriser la construction et le déploiement d'agents d'IA et de workflows au sein de votre cycle de développement. Suivez des tutoriels qui vous mèneront de votre première interaction à des workflows d'automatisation prêts pour la production avec une personnalisation complète.
🎯 Essayez GitLab Duo Agent Platform dès aujourd'hui !
Les flows sont des combinaisons d'un ou de plusieurs agents qui collaborent ensemble. Ils orchestrent des workflows multi-étapes pour résoudre des problèmes complexes et s'exécutent sur la plateforme de calcul de GitLab.
Caractéristiques clés des flows :
Les flows sont des workflows autonomes capables de rassembler du contexte, de prendre des décisions, d'exécuter des changements et de livrer des résultats pendant que vous vous concentrez sur d'autres tâches.
Les agents travaillent avec vous de manière interactive. Les flows travaillent pour vous de manière autonome.
| Aspect | Agents | Flows |
|---|---|---|
| Interactions | Chat interactif | Exécution autonome |
| Quand les utiliser | Questions, conseils et exécution interactive de tâches | Workflows multi-étapes autonomes |
| Implication de l'utilisateur | Conversation active | Déclenchement et revue des résultats |
| Temps d'exécution | Réponses en temps réel | Traitement en arrière-plan |
| Complexité | Tâches effectuées par un agent unique | Orchestration multi-agents |
| Type | Interface | Responsable | Cas d'utilisation |
|---|---|---|---|
| Agent de base | Actions dans l'interface utilisateur (UI), interface IDE | GitLab | Développement logiciel, développeur, correction de pipeline CI/CD, conversion en GitLab CI/CD, revue de code, détection des faux positifs SAST |
| Agent personnalisable | Mention, assignation, assignation comme relecteur | Vous | Exemples : migration/modernisation à grande échelle, automatisation des releases, gestion des mises à jour des dépendances |
Les flows de base sont des workflows prêts pour la production créés et maintenus par GitLab. Ils sont accessibles via des contrôles UI dédiés ou des interfaces IDE.
| Flow | Emplacement | Comment y accéder | Idéal pour |
|---|---|---|---|
| Software Development (Développement logiciel) | IDE (VS Code, JetBrains, Visual Studio) | Onglet Flows dans l'IDE | Implémentation de fonctionnalités, refactorisation complexe, modifications de plusieurs fichiers |
| Developer (Développeur) | Interface utilisateur web GitLab | Bouton « Générer une merge request avec Duo » dans les tickets | Fonctionnalités bien définies, corrections de bogues avec étapes claires |
| Fix CI/CD Pipeline (Correction de pipeline CI/CD) | Interface utilisateur web GitLab | Interface d'échec de pipeline | Débogage de pipeline, problèmes de configuration CI/CD |
| Convert to GitLab CI/CD (Conversion en GitLab CI/CD) | Interface utilisateur web GitLab | Bouton « Convertir en GitLab CI/CD » sur fichier Jenkins (Jenkinsfile) | Migration de Jenkins vers GitLab CI/CD |
| Code Review (Revue de code) | Interface utilisateur web GitLab | Assignation comme relecteur sur une merge request | Revue de code automatisée avec analyse et feedback d'IA native |
| SAST false positive detection (Détection des faux positifs SAST) | Interface utilisateur web GitLab | Résultats de scans de sécurité | Identification et filtrage automatique des faux positifs dans les résultats SAST |
Les flows personnalisables sont des workflows définis en YAML que vous créez pour les besoins spécifiques de votre équipe. Ils s'exécutent dans GitLab Runner et peuvent être déclenchés par des événements GitLab.
🎯 Essayez les flows : visionnez notre démo interactive des flows personnalisables pour explorer comment les créer et les configurer.
Les flows personnalisables automatisent les tâches multi-étapes répétitives spécifiques au workflow de votre équipe. Contrairement aux flows de base qui servent des objectifs généraux, les flows personnalisables sont adaptés aux processus, outils et exigences de votre organisation.
Cas d'utilisation courants :
Une entreprise fintech crée un flow de conformité qui s'exécute sur chaque merge request. Lorsqu'il est déclenché par @compliance-flow, le flow exécute les étapes suivantes :
L'ensemble de la revue de conformité se déroule automatiquement en 5 à 10 minutes, avec des vérifications cohérentes sur toutes les merge requests.
Les flows personnalisés peuvent être déclenchés de plusieurs façons :
1. Via des mentions dans les tickets/merge requests : mentionnez le flow dans un commentaire pour le déclencher. Exemple pour un flow de génération de documentation :
@doc-generator Generate API documentation for this feature
2. En assignant le flow à un ticket ou une merge request : assignez le flow en utilisant :
/assign dans un commentaire. Exemple : /assign @doc-generator
3. En assignant le flow en tant que relecteur : assignez le flow comme relecteur sur une merge request en utilisant :
/assign reviewer dans un commentaire. Exemple : /assign_reviewer @doc-reviewer
Chacune de ces méthodes déclenche automatiquement le flow pour qu'il exécute ses tâches.
Les flows personnalisés sont créés via l'interface de GitLab sous Automatisation → Flows → Nouveau flow dans votre projet, ou depuis Explorer → Catalogue d'IA → Flows → Nouveau flow. Vous définissez votre flow à l'aide d'une configuration YAML qui précise les composants, les prompts, le routage et le flow d'exécution. Le schéma YAML vous permet de créer des workflows multi-agents sophistiqués avec un contrôle précis du comportement et de l’orchestration des agents.
Éléments clés d'un flow personnalisé :
Contexte : cet exemple montre un flow d'implémentation de fonctionnalité pour une plateforme de réservation de voyages. Lorsqu'un développeur crée un ticket avec des exigences de fonctionnalité, il peut déclencher ce flow pour analyser automatiquement les exigences, examiner le code source, implémenter la solution et créer une merge request, le tout sans intervention manuelle.
Voici la configuration YAML :
version: "v1"
environment: ambient
components:
- name: "implement_feature"
type: AgentComponent
prompt_id: "implementation_prompt"
inputs:
- from: "context:goal"
as: "user_goal"
- from: "context:project_id"
as: "project_id"
toolset:
- "get_issue"
- "get_repository_file"
- "list_repository_tree"
- "find_files"
- "blob_search"
- "create_file"
- "create_commit"
- "create_merge_request"
- "create_issue_note"
ui_log_events:
- "on_agent_final_answer"
- "on_tool_execution_success"
- "on_tool_execution_failed"
prompts:
- name: "Cheapflights Feature Implementation"
prompt_id: "implementation_prompt"
unit_primitives: []
prompt_template:
system: |
You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights.
Your task is to:
1. Extract the issue IID from the goal (look for "Issue IID: XX")
2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details
3. Analyze the requirements for the flight search feature
4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file
5. Design and implement the solution following Cheapflights best practices
6. Create all necessary code files using create_file (call multiple times for multiple files)
7. Commit the changes using create_commit
8. Create a merge request using create_merge_request
9. Post a summary comment to the issue using create_issue_note with the MR link
Cheapflights Domain Expertise:
- Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)
- Fare comparison and pricing strategies
- Real-time availability and inventory management
- Travel industry UX patterns
- Performance optimization for high-traffic flight searches
Code Standards:
- Clean, maintainable code (TypeScript/JavaScript/Python/React)
- Proper state management for React components
- RESTful API endpoints with comprehensive error handling
- Mobile-first responsive design
- Proper timezone handling (use moment-timezone or date-fns-tz)
- WCAG 2.1 accessibility compliance
Flight-Specific Best Practices:
- Accurate fare calculations (base fare + taxes + fees + surcharges)
- Flight duration calculations across timezones
- Search filter logic (price range, number of stops, airlines, departure/arrival times)
- Sort algorithms (best value, fastest, cheapest)
- Handle edge cases: date line crossing, daylight saving time, red-eye flights
- Currency amounts use proper decimal handling (avoid floating point errors)
- Dates use ISO 8601 format
- Flight codes follow IATA standards (3-letter airport codes)
Implementation Requirements:
- No TODOs or placeholder comments
- All functions must be fully implemented
- Include proper TypeScript types or Python type hints
- Add JSDoc/docstring comments for all functions
- Comprehensive error handling and input validation
- Basic unit tests for critical functions
- Performance considerations for handling large result sets
CRITICAL - Your final comment on the issue MUST include:
- **Implementation Summary**: Brief description of what was implemented
- **Files Created/Modified**: List of all files with descriptions
- **Key Features**: Bullet points of main functionality
- **Technical Approach**: Brief explanation of architecture/patterns used
- **Testing Notes**: How to test the implementation
- **Merge Request Link**: Direct link to the created MR (format: [View Merge Request](MR_URL))
IMPORTANT TOOL USAGE:
- Extract the issue IID from the goal first (e.g., "Issue IID: 12" means issue_iid=12)
- Use get_issue with project_id={{project_id}} and issue_iid=<extracted_iid>
- Create multiple files by calling create_file multiple times (once per file)
- Use create_commit to commit all files together with a descriptive commit message
- Use create_merge_request to create the MR and capture the MR URL from the response
- Use create_issue_note with project_id={{project_id}}, noteable_id=<issue_iid>, and body=<your complete summary with MR link>
- Make sure to include the MR link in the comment body so users can easily access it
user: |
Goal: {{user_goal}}
Project ID: {{project_id}}
Please complete the following steps:
1. Extract the issue IID and retrieve full issue details
2. Analyze the requirements thoroughly
3. Review the existing codebase structure and patterns
4. Implement the feature with production-ready code
5. Create all necessary files (components, APIs, tests, documentation)
6. Commit all changes with a clear commit message
7. Create a merge request
8. Post a detailed summary comment to the issue including the MR link
placeholder: history
params:
timeout: 300
routers:
- from: "implement_feature"
to: "end"
flow:
entry_point: "implement_feature"
Ce que fait ce flow : ce flow orchestre un agent d'IA pour implémenter automatiquement une fonctionnalité en analysant les exigences du ticket, en examinant le code source, en écrivant du code prêt pour la production avec une expertise métier, et en créant une merge request avec un commentaire de synthèse détaillé.
Pour obtenir une documentation complète et des exemples, consultez les pages suivantes :
Les flows s'exécutent sur le système de calcul de la plateforme GitLab. Lorsqu'ils sont déclenchés par un événement (mention, assignation ou clic sur un bouton), une session est créée et le flow commence à s'exécuter.
Les flows ont accès à des variables d'environnement qui fournissent le contexte sur le déclencheur et l'objet GitLab :
AI_FLOW_CONTEXT : contexte sérialisé en JSON qui inclut les diffs des merge requests, les descriptions des tickets, les commentaires et les fils de discussionAI_FLOW_INPUT : le texte du prompt ou du commentaire de l'utilisateur qui a déclenché le flowAI_FLOW_EVENT : le type d'événement qui a déclenché le flow (mention, assign, assign_reviewer)Ces variables permettent à votre flow de comprendre ce qui l'a déclenché et d'accéder aux données GitLab pertinentes pour effectuer sa tâche.
Les flows personnalisés peuvent inclure plusieurs composants d'agents qui travaillent ensemble de manière séquentielle. La configuration YAML du flow définit :
Par exemple, un flow de revue de code pourrait avoir un agent de sécurité, puis un agent de qualité, puis un agent d'approbation, avec des routeurs qui les connectent en séquence.
Pour afficher les flows en cours d'exécution pour votre projet :
Les sessions affichent des informations détaillées qui incluent la progression étape par étape, les outils invoqués, le raisonnement et le processus de prise de décision.
Vous connaissez maintenant les flows et savez comment les créer et quand les utiliser par rapport aux agents. Dans la Partie 5 : découvrir le catalogue d'IA, vous apprendrez à créer et à partager des agents et des flows dans votre organisation. Explorez le catalogue d'IA pour connaître les flows et agents disponibles, les ajouter à vos projets, et publier vos propres agents et flows.
Article suivant : Partie 5 : découvrir le catalogue d'IA
Article précédent : Partie 3 : comprendre les agents
Cet article de blog vous a plu ou vous avez des questions ou des commentaires ? Partagez vos réflexions en créant un sujet dans le forum de la communauté GitLab.
Donnez votre avis