公開:2026年1月14日
23分で読めます
GitLab Duo Agent Platformのフローを詳しく解説。基本フロー、カスタムユーザー定義ワークフローの作成、フローオーケストレーションパターンについて学びます。

8部構成ガイド「GitLab Duo Agent Platformを始める」のパート4へようこそ。開発ライフサイクル内でのAIエージェントとワークフローの構築・デプロイをマスターします。最初の対話から完全カスタマイズ可能なプロダクション対応の自動化ワークフローまで、段階的なチュートリアルに従ってください。
この記事の内容:
🎯 今すぐGitLab Duo Agent Platformをお試しください!
フローは、1つ以上のエージェントが協働する組み合わせです。複雑な問題を解決するために複数ステップのワークフローを調整し、GitLabプラットフォームコンピュート上で実行されます。
フローの主な特徴:
フローは、情報収集から意思決定、変更の実行、結果の提供まで、すべて自動で行う自律的なワークフローです。あなたは他の作業に集中できます。
エージェントはあなたと対話的に作業します。フローはあなたのために自律的に作業します。
| 側面 | エージェント | フロー |
|---|---|---|
| インタラクション | 対話型チャット | 自律的な実行 |
| 使用タイミング | 質問、ガイダンス、対話的なタスク実行 | 自律的な複数ステップワークフロー |
| ユーザーの関与 | アクティブな会話 | トリガーと結果のレビュー |
| 実行時間 | リアルタイム応答 | バックグラウンド処理 |
| 複雑さ | 単一エージェントタスク | マルチエージェントオーケストレーション |
| タイプ | インターフェース | メンテナー | ユースケース |
|---|---|---|---|
| 基本フロー | UIアクション、IDEインターフェース | GitLab | ソフトウェア開発、イシュー内のデベロッパー、CI/CDパイプライン修正、GitLab CI/CDへの変換、コードレビュー、SAST誤検知判定 |
| カスタムフロー | メンション、割り当て、レビュアー割り当て | 自分 | 例: 大規模な移行/最新化、リリース自動化、依存関係更新管理 |
基本フローは、GitLabが作成・保守するプロダクション対応のワークフローです。専用のUIコントロールまたはIDEインターフェースからアクセスできます。
| フロー | 利用可能な場所 | アクセス方法 | 最適な用途 |
|---|---|---|---|
| ソフトウェア開発フロー | IDE(VS Code、JetBrains、Visual Studio) | IDEのFlowsタブ | 機能実装、複雑なリファクタリング、複数ファイルの変更 |
| デベロッパーフロー | GitLab Web UI | イシューの「Duoでマージリクエストを生成」ボタン | 明確に定義された機能、明確な手順のあるバグ修正 |
| CI/CDパイプライン修復フロー | GitLab Web UI | 失敗したパイプラインインターフェース | パイプラインデバッグ、CI/CD設定の問題 |
| GitLab CI/CD変換フロー | GitLab Web UI | Jenkinsfileの「Convert to GitLab CI/CD」ボタン | JenkinsからGitLab CI/CDへの移行 |
| コードレビューフロー | GitLab Web UI | MRでレビュアーとして割り当て | AIネイティブ分析とフィードバックによる自動コードレビュー |
| SAST誤検出判定フロー | GitLab Web UI | セキュリティスキャン結果 | SAST検出結果の誤検知を自動的に特定してフィルタリング |
カスタムフローは、チームの特定のニーズに合わせて作成するYAML定義のワークフローです。GitLab Runnerで実行され、GitLabイベントによってトリガーできます。
🎯 今すぐ試す:カスタムフローのインタラクティブデモ — カスタムフローの作成と設定方法を探索します。
カスタムフローは、チームのワークフローに固有の反復的な複数ステップタスクを自動化します。一般的な目的に使用される基本フローとは異なり、カスタムフローは組織のプロセス、ツール、要件に合わせて調整されます。
一般的なユースケース:
フィンテック企業は、すべてのマージリクエストで実行されるコンプライアンスフローを作成します。@compliance-flowでトリガーされると、フローは次のステップを実行します。
コンプライアンスレビュー全体が5〜10分で自動的に実行され、すべてのマージリクエストで一貫したチェックが提供されます。
カスタムフローは複数の方法でトリガーできます。
1. イシュー/MRでのメンション: コメントでフローをメンションしてトリガーします。ドキュメント生成フローの例:
@doc-generator Generate API documentation for this feature
2. イシューまたはMRへのフローの割り当て: 次のいずれかを使用してフローを割り当てます。
/assignコマンドを使用。例: /assign @doc-generator
3. レビュアーとしてのフローの割り当て: 次のいずれかを使用してマージリクエストにレビュアーとしてフローを割り当てます。
/assign_reviewerコマンドを使用。例: /assign_reviewer @doc-reviewer
これらの方法のいずれかにより、フローが自動的にトリガーされ、タスクを実行します。
カスタムフローは、プロジェクトの自動化 → フロー → 新しいフロー、または検索 → AIカタログ → フロー → 新しいフローからGitLab UIを通じて作成されます。コンポーネント、プロンプト、ルーティング、実行フローを指定するYAML設定を使用してフローを定義します。YAMLスキーマにより、エージェントの動作とオーケストレーションを正確に制御できる洗練されたマルチエージェントワークフローを作成できます。
カスタムフローの主要要素:
背景: この例は、旅行予約プラットフォームの機能実装フローを示しています。デベロッパーが機能要件を含むイシューを作成すると、このフローをトリガーして、要件の分析、コードベースのレビュー、ソリューションの実装、マージリクエストの作成まで、すべて手動介入なしで自動的に実行できます。 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(Cheapflights機能実装)"
prompt_id: "implementation_prompt"
unit_primitives: []
prompt_template:
system: |
You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights(あなたは旅行予約プラットフォーム、特に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
1. ゴールからイシューIIDを抽出する(「Issue IID: XX」を探す)
2. project_id={{project_id}}とissue_iidを使用してget_issueでイシューの詳細を取得
3. フライト検索機能の要件を分析
4. list_repository_tree、find_files、get_repository_fileを使用して既存のコードベースをレビュー
5. Cheapflightsのベストプラクティスに従ってソリューションを設計・実装
6. create_fileを使用して必要なコードファイルをすべて作成(複数ファイルの場合は複数回呼び出し)
7. create_commitを使用して変更をコミット
8. create_merge_requestを使用してマージリクエストを作成
9. create_issue_noteを使用してMRリンク付きの概要コメントをイシューに投稿
Cheapflights Domain Expertise(Cheapflightsドメインの専門知識):
- 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
- フライト検索・予約システム(Amadeus、Sabre、Skyscanner API)
- 運賃比較と価格戦略
- リアルタイムの空席状況と在庫管理
- 旅行業界のUXパターン
- 高トラフィックのフライト検索のためのパフォーマンス最適化
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
- クリーンで保守性の高いコード(TypeScript/JavaScript/Python/React)
- Reactコンポーネントの適切な状態管理
- 包括的なエラーハンドリングを備えたRESTful APIエンドポイント
- モバイルファーストのレスポンシブデザイン
- 適切なタイムゾーン処理(moment-timezoneまたはdate-fns-tzを使用)
- WCAG 2.1アクセシビリティ準拠
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)
- 正確な運賃計算(基本運賃 + 税金 + 手数料 + 追加料金)
- タイムゾーンをまたぐフライト時間の計算
- 検索フィルターロジック(価格帯、経由便数、航空会社、出発/到着時刻)
- ソートアルゴリズム(ベストバリュー、最速、最安値)
- エッジケースの処理: 日付変更線の通過、サマータイム、深夜便
- 通貨金額は適切な小数処理を使用(浮動小数点エラーを回避)
- 日付はISO 8601形式を使用
- フライトコードはIATA標準に従う(3文字の空港コード)
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
- To-Doやプレースホルダーコメントは不可
- すべての関数を完全に実装
- 適切なTypeScript型またはPython型ヒントを含める
- すべての関数にJSDoc/docstringコメントを追加
- 包括的なエラーハンドリングと入力検証
- 重要な関数の基本的な単体テスト
- 大規模な結果セットを処理するためのパフォーマンス考慮
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))
- 実装概要: 実装内容の簡潔な説明
- 作成/変更されたファイル: すべてのファイルのリストと説明
- 主要機能: 主な機能の箇条書き
- 技術的アプローチ: アーキテクチャ/パターンの簡潔な説明
- テストに関する注意事項: 実装のテスト方法
- マージリクエストリンク: 作成されたMRへの直接リンク(形式: [マージリクエストを見る](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
- まずゴールからイシューIIDを抽出(例: 「Issue IID: 12」はissue_iid=12を意味する)
- project_id={{project_id}}とissue_iid=<抽出したiid>でget_issueを使用
- create_fileを複数回呼び出して複数のファイルを作成(ファイルごとに1回)
- create_commitを使用して、わかりやすいコミットメッセージですべてのファイルを一緒にコミット
- create_merge_requestを使用してMRを作成し、レスポンスからMR URLを取得
- project_id={{project_id}}、noteable_id=<issue_iid>、body=<MRリンクを含む完全な概要>でcreate_issue_noteを使用
- ユーザーが簡単にアクセスできるように、コメント本文にMRリンクを必ず含める
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
1. イシューIIDを抽出し、イシューの詳細を取得
2. 要件を徹底的に分析
3. 既存のコードベース構造とパターンをレビュー
4. 本番環境対応のコードで機能を実装
5. 必要なすべてのファイルを作成(コンポーネント、API、テスト、ドキュメント)
6. 明確なコミットメッセージですべての変更をコミット
7. マージリクエストを作成
8. MRリンクを含む詳細な概要コメントをイシューに投稿
placeholder: history
params:
timeout: 300
routers:
- from: "implement_feature"
to: "end"
flow:
entry_point: "implement_feature"
このフローの機能: このフローは、AIエージェントがイシュー要件の分析、コードベースのレビュー、ドメイン知識に基づく本番環境対応コードの作成、詳細なサマリー付きマージリクエストの作成まで、機能実装を自動で行います。
完全なドキュメントと例については、以下を参照してください。
フローはGitLabプラットフォームコンピュート上で実行されます。イベント(メンション、割り当て、ボタンクリック)によってトリガーされると、セッションが作成され、フローが実行を開始します。
フローは、トリガーとGitLabオブジェクトに関するコンテキストを提供する環境変数にアクセスできます。
AI_FLOW_CONTEXT — MR差分、イシュー説明、コメント、ディスカッションスレッドを含むJSON形式のコンテキストAI_FLOW_INPUT — フローをトリガーしたユーザーのプロンプトまたはコメントテキストAI_FLOW_EVENT — フローをトリガーしたイベントタイプ(mention、assign、assign_reviewer)これらの変数により、フローは何がトリガーしたかを理解し、関連するGitLabデータにアクセスしてタスクを実行できます。
カスタムフローには、順次連携する複数のエージェントコンポーネントを含めることができます。フローのYAML設定は次を定義します。
たとえば、コードレビューフローには、セキュリティエージェント、次に品質エージェント、次に承認エージェントがあり、ルーターがそれらを順番に接続します。
プロジェクトで実行中のフローを表示するには:
セッションには、ステップバイステップの進行状況、ツール呼び出し、推論、意思決定プロセスを含む詳細情報が表示されます。
フローの概念、作成方法、エージェントとの使い分けを理解しました。次に、パート5: AIカタログで組織全体でエージェントとフローを検索、作成、共有する方法を学びます。AIカタログを活用して、利用可能なフローとエージェントの閲覧、プロジェクトへの追加、独自コンテンツの公開を行います。
次へ: パート5: AIカタログ
このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
フィードバックを共有する