カスタムフロー
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
カスタムフローは、GitLabプロジェクト全体にわたる複雑な複数ステップのタスクを自動化するために作成および設定できる、AIを活用したワークフローです。
前提条件
フローの表示レベル
カスタムフローを作成する際、管理するプロジェクトを選択し、そのフローを公開、非公開、または制限付きにするかを選びます。
公開フロー:
- インスタンス上の誰でも閲覧でき、前提条件を満たすすべてのプロジェクトで有効にできます。
制限付きフロー:
- 管理プロジェクトのトップレベルグループ内の任意のプロジェクトのメンバーが閲覧および使用できます。
- 同じトップレベルグループ内の他のプロジェクトで有効にすることができます。
- そのトップレベルグループ外では閲覧したり有効にしたりすることはできません。
- ExploreのAIカタログでは閲覧できません。
- ExploreのAIカタログからではなく、プロジェクトからのみ作成できます。
フローがそのトップレベルグループ外のプロジェクトで有効になっている場合、公開フローを制限付きにすることはできません。
非公開フロー:
- 閲覧できるのは次のユーザーのみです:
- ゲスト、プランナー、レポーター、デベロッパー、メンテナー、またはオーナーのロールを持つ管理プロジェクトのメンバー。
- トップレベルグループのオーナーロールを持つユーザー。
- 管理対象プロジェクト以外のプロジェクトや、トップレベルグループ以外のグループでは有効にできません。
フローが管理プロジェクト以外のプロジェクトで有効になっている場合、公開または制限付きフローを非公開にすることはできません。
プロジェクトのフローを表示する
前提条件:
- プロジェクトのデベロッパー、メンテナー、またはオーナーロールが必要です。
プロジェクトに関連付けられたフローのリストを表示するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- プロジェクトで有効になっているフローを表示するには、有効タブを選択します。
- プロジェクトで管理されているフローを表示するには、管理中タブを選択します。
フローを選択すると、その詳細を確認できます。
フローを作成する
VS CodeのGitLab flow builderは、VS Code拡張機能設定gitlab.featureFlags.flowBuilderによって制御されます。詳細については、履歴を参照してください。
プロジェクトから、AIカタログで、またはVS CodeのGitLab flow builderでフローを作成できます。
プロジェクトまたはAIカタログから、特定のカスタムエージェントを呼び出すカスタムフローを定義することはできません。カスタムフローは、YAML設定に基づいて独自のエージェントを作成し、使用します。
前提条件:
- プロジェクトのメンテナーまたはオーナーロールが必要です。
フローを作成するには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 新しいフローを選択します。
- 基本情報で、次の操作を行います:
- 表示名に、名前を入力します。
- 説明に、説明を入力します。
- 表示レベルとアクセスの下、表示レベルで、非公開、制限付き、または公開を選択します。
- 設定で、次の操作を行います:
フローを選択します。
エディタで、フローの設定を入力します。
- YAML構文とスキーマの詳細については、カスタムフローYAMLスキーマを参照してください。
- フローを作成を選択します。
- 上部のバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 新しいフローを選択します。
- 基本情報で、次の操作を行います:
- 表示名に、名前を入力します。
- 説明に、説明を入力します。
- 表示レベルとアクセスの下にある表示レベルで、非公開または公開を選択します。
- 設定で、次の操作を行います:
フローを選択します。
エディタで、フローの設定を入力します。
- YAML構文とスキーマの詳細については、カスタムフローYAMLスキーマを参照してください。
- フローを作成を選択します。
前提条件:
- GitLab for VS Code拡張機能をインストールして構成します。
gitlab.featureFlags.flowBuilderVS Code拡張機能設定を有効にします。- フローを実行するには: プロジェクトでGitLab Duo Agent Platformを有効にし、デベロッパーロール以上が必要です。
- フローをAIカタログに公開するには: 管理プロジェクトのメンテナーまたはオーナーロールを持っている必要があります。
GitLab flow builderからフローを公開する場合、非公開と公開の表示レベルオプションのみが利用可能です。制限付き表示レベルオプションは、GitLab UIからフローを作成する場合にのみ利用可能です。
VS Codeでは、GitLab flow builderを使用してカスタムフローを作成できます。
プロジェクトのVS Codeで、新しいYAMLファイルを開きます。
YAMLファイル内で、Open GitLab Flow Builderを選択します。
フローを構築するために、以下のコンポーネントを選択します。フィールドに入力します:
- エージェント: ツールを使用して多段階の推論を実行し、目標が完了するまでイテレーションを行います。
- ツール: 固定された入力で単一の特定のツールを実行します。決定論的で、LLMは関与しません。
- AIタスク: 単一のLLM呼び出しを行い、1つの結果を生成します(要約、分類、下書きなど)。多段階の作業ではなく、単一のモデル応答が必要な場合は、AIタスクをエージェントの代わりに使用します。エージェントはループで実行され、ツールを使用できます。AIタスクは1回のモデル呼び出しを行い、1つの結果を返します。
- Human Input: フローを一時停止し、続行する前にユーザー入力または承認を待ちます。
オプション。YAMLファイルを編集してフローを更新し、GitLab flow builderでフローを確認します。
フローのYAMLは、フローレジストリv1仕様構文に準拠する必要があります。
フローをテストするには、実行を選択します。実行コンソールで、実行を選択します。フローの出力を確認し、必要に応じてフローを更新します。
フローを保存するには、保存または名前を付けて保存を選択します。
フローをAIカタログに公開するには、公開を選択し、フィールドに入力します。
GitLab flow builderはフローをAIカタログに公開できますが、プロジェクトでフローを有効にしトリガーをアタッチするにはGitLab UIでのみ行われます。
フローがAIカタログに表示されます。
フローを有効にする
フローを有効にすると、イシュー、マージリクエスト、またはディスカッションからフローをトリガーできます。
プロジェクトでフローを有効にすると、次のようになります:
- 同時に、そのプロジェクトのトップレベルグループでもフローが有効になります。
- フローをトリガーするイベントを指定するトリガーを追加します。一部のトリガーイベントには、サービスアカウントユーザーが関与します。詳細については、複合アイデンティティを参照してください。
前提条件:
- プロジェクトのメンテナーまたはオーナーロールが必要です。
フローを有効にするには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 管理中タブを選択し、有効にするフローを選択します。
- 右上隅で有効を選択します。
- プロジェクトで、フローを有効にするプロジェクトを選択します。
- トリガーを追加で、以下を選択します:
- フローをトリガーするイベントタイプ。
- トリガーイベントタイプに必要な場合は、トリガーイベントアクション。
- 有効を選択します。
フローを有効にするには:
上部のバーで、検索または移動先 > 検索を選択します。
AIカタログを選択し、次にフロータブを選択します。
有効にするフローを選択します。
右上隅で有効を選択します。
プロジェクトで、フローを有効にするプロジェクトを選択します。
複数のプロジェクトに対して公開または制限付きフローを有効にするには、プロジェクトドロップダウンリストから関連するプロジェクトを選択します。最大100件のプロジェクトを選択できます。
トリガーを追加で、以下を選択します:
- フローをトリガーするイベントタイプ。
- トリガーイベントタイプに必要な場合は、トリガーイベントアクション。
有効を選択します。
グループとプロジェクトのAI > フローページにフローが表示されます。トップレベルグループ内にある任意のプロジェクトのメンバーは、そのプロジェクトでフローを有効にできるようになります。
グループ内にサービスアカウントが作成されます。アカウント名は次の命名規則に従います: ai-<flow>-<group>。
プロジェクトで有効にする
フローがトップレベルグループで既に有効になっている場合、そのグループのプロジェクトでフローを有効にできます。
前提条件:
- プロジェクトのメンテナーまたはオーナーロールが必要です。
- プロジェクトのトップレベルグループでフローを有効にする必要があります。
プロジェクトでフローを有効にするには:
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 右上隅で、グループからのフローを有効にするを選択します。
- ドロップダウンリストから、有効にするフローを選択します。
- トリガーを追加で、以下を選択します:
- フローをトリガーするイベントタイプ。
- トリガーイベントタイプに必要な場合は、トリガーイベントアクション。
- 有効を選択します。
フローが、プロジェクトのAI > フローリストに表示されます。
トップレベルグループのサービスアカウントがプロジェクトに追加されます。このアカウントにはデベロッパーロールが割り当てられます。
トリガー条件を管理する
フローのトリガーは、その設定ページから管理できます。
トリガーの作成方法など、トリガーの詳細については、トリガーを参照してください。
前提条件:
- プロジェクトのメンテナーまたはオーナーのロール。
トリガーのオン/オフを切り替える
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 管理するフローを選択します。
- トリガー条件セクションで、オンまたはオフにしたいトリガーの切り替えを選択します。
トリガーを編集する
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 管理するフローを選択します。
- トリガー条件セクションで、変更したいトリガーのトリガーアクション( )> 編集を選択します。
- 変更を加えて、変更を保存を選択します。
トリガーを削除する
- 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 左側のサイドバーで、AI > フローを選択します。
- 管理するフローを選択します。
- トリガー条件セクションで、削除したいトリガーのトリガーアクション( )> 削除を選択します。
- 確認ダイアログで、削除を選択します。
フローを無効にする
前提条件:
- グループの場合、メンテナーまたはオーナーロールが必要です。
- プロジェクトの場合、メンテナーまたはオーナーロールが必要です。
フローを無効にするには:
- 上部のバーで検索または移動先を選択し、グループまたはプロジェクトを見つけます。
- AI > フローを選択します。
- 削除したいフローを見つけて、アクション( )> 無効を選択します。
- 確認ダイアログで、無効を選択します。
フローはプロジェクトまたはグループに表示されなくなり、実行できなくなります。フローに関連付けられていたサービスアカウントまたはトリガーもすべて削除されます。
フローを使用する
前提条件:
- プロジェクトのデベロッパー、メンテナー、またはオーナーロールが必要です。
- プロジェクトでフローが有効になっている必要があります。
フローを使用するには:
プロジェクトで、イシュー、マージリクエスト、またはエピックを開きます。
フローをトリガーするには、フローサービスアカウントユーザーに対して、メンション、割り当て、またはレビューのリクエストを行います。デフォルトでは、ユーザーの名前は
ai-<flow>-<group>です。たとえば、
GitLab DuoグループでSecurity scannerという名前のフローを有効にした場合、サービスアカウントユーザーはai-security-scanner-gitlab-duoです。フローがタスクを完了すると、確認メッセージが表示され、すぐにマージ可能な変更またはインラインコメントが表示されます。
フローがプロジェクトで有効になっている場合は、GitLab Duo Agentic Chatスラッシュコマンドからフローを開始することもできます。
サービスアカウントは、次の両方の条件を満たすすべてのプロジェクトにアクセスできます:
- ユーザーがアクセスできる。
- フローが追加されている。
フローを複製する
元のフローを上書きせずに変更を加えるには、既存のフローのコピーを作成します。
前提条件:
- プロジェクトのメンテナーまたはオーナーロールが必要です。
フローを複製するには:
- 上部のバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 複製するフローを選択します。
- 右上隅で、アクション( )> 複製を選択します。
- フローを複製したいプロジェクトを選択します。
- オプション。変更するフィールドを編集します。
- フローを作成を選択します。
GitLab flow builderには専用の複製アクションがありません。フローのコピーを作成するには、名前を付けて保存を使用します。これにより、開いているフローが新しいファイルとして保存されます。コピーしたYAMLファイルをflow builderで直接開くこともできます。
コピーを公開すると、元のアイテムにリンクされていない新しいカタログアイテムが作成されます。
フローを編集する
フローを編集して設定を変更します。
前提条件:
- 管理プロジェクトのメンバーであり、メンテナーまたはオーナーロールが必要です。
- 上部のバーで検索または移動先を選択し、グループまたはプロジェクトを見つけます。
- AI > フローを選択します。
- 編集するフローを選択します。
- 右上隅で、編集を選択します。
- 変更するフィールドを編集し、変更を保存を選択します。
- プロジェクトのVS Codeで、フローのYAMLファイルを開きます。
- YAMLファイル内で、Open GitLab Flow Builderを選択します。
- GitLab flow builderでフローを編集します。
- フローをテストするには、実行を選択します。実行コンソールで、実行を選択します。フローの出力を確認し、必要に応じてフローを更新します。
- フローを保存するには、保存または名前を付けて保存を選択します。
フローを非表示にする
フローを非表示にして、AIカタログから削除します。
フローを非表示にすると、ユーザーはそのフローを有効にできなくなります。ただし、フローが既に有効になっているグループやプロジェクトでは、引き続きそのフローをトリガーできます。
前提条件:
- 管理プロジェクトのメンバーであり、メンテナーまたはオーナーロールが必要です。
フローを非表示にするには:
- 上部のバーで検索または移動先を選択し、グループまたはプロジェクトを見つけます。
- AI > フローを選択します。
- 非表示にしたいフローを見つけて、アクション( )> 非表示を選択します。
- 確認ダイアログで、確認を選択します。
フローを削除する
フローを削除して、インスタンスから完全に削除します。
前提条件:
- 管理者である必要があります。
- 上部のバーで検索または移動先を選択し、グループまたはプロジェクトを見つけます。
- AI > フローを選択します。
- 削除したいフローを見つけて、アクション( )> 削除を選択します。
- 確認ダイアログで、削除を選択します。
GitLab APIに認証する
カスタムフローには、GITLAB_TOKENとして利用可能なGitLab OAuthトークンがあります(GITLAB_OAUTH_TOKENとしても公開されます)。これらのトークンは、付与されたスコープに限定されます。それらはGitLab APIエンドポイントにai_workflowsスコープでのみアクセスできます。そのスコープ外のエンドポイントは、トークンが正しく送信されても拒否されます。
GitLab APIを直接呼び出すスクリプトを作成する場合は、Authorization: Bearerトークンとしてトークンを送信します。PRIVATE-TOKENヘッダーを使用してトークンを送信すると、APIは401 Unauthorizedを返します。
curl --header "Authorization: Bearer $GITLAB_TOKEN" \
"$GITLAB_BASE_URL/api/v4/user"フローのビルトインツールとglab CLIは、APIを正しく呼び出します。
グループ共有とフロー
グループでフローを有効にすると、関連するサービスアカウントが自動的に作成されます。このサービスアカウントには次の特性があります:
- 複合アイデンティティ認証を使用し、フローを実行するユーザー以上のアクセス権をフローが持たないようにします。
- フローを有効にしたトップレベルグループ配下のすべてのプロジェクトのメンバーとして追加されるため、フローがそのグループ外のリソースにアクセスすることはできません。
- トップレベルグループと共有されている追加のグループへのアクセス権が付与されます。グループ共有においては、このサービスアカウントは他のグループメンバーと同様に扱われます。
複数のトップレベルグループ間でフローのサービスアカウントを共有すると、意図しないアクセス権限やセキュリティリスクが発生する可能性があります。
カスタムフローをオンまたはオフにする
デフォルトでは、カスタムフローはオンになっています。トップレベルグループまたはインスタンスでオン/オフを切り替えることができます。
カスタムフローがオフになっている場合:
- ユーザーはカスタムフローを作成、有効化、無効化、または実行できません。
- 既存のカスタムフローは、プロジェクトのAI > フロー > 有効に表示されなくなります。
- プロジェクトで作成されたカスタムフローは、AI > フロー > 管理中に表示されますが、実行できません。
- 基本フローは引き続き利用可能です。
前提条件:
- グループのオーナーのロールを持っている必要があります。
- 上部のバーで、検索または移動先を選択して、グループを見つけます。
- 左側のサイドバーで、設定 > GitLab Duoを選択します。
- 設定の変更を選択します。
- カスタムエージェントと外部エージェント、およびフローで、カスタムフローを許可チェックボックスをオンまたはオフにします。
- 変更を保存を選択します。
この設定は、グループ内のすべてのサブグループにカスケードされます。
前提条件:
- 管理者である必要があります。
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- 設定の変更を選択します。
- カスタムエージェントと外部エージェント、およびフローで、カスタムフローを許可チェックボックスをオンまたはオフにします。
- 変更を保存を選択します。
インスタンスレベルの設定がオフの場合、グループレベルの設定でそれをオーバーライドすることはできません。