正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

外部エージェント

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo Core、Pro、またはEnterprise、GitLab Duo with Amazon Q
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: 実験的機能

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

GitLab Duoエージェントは、コードの作成、調査結果の収集、タスクの実行を同時に行うのに役立ちます。

エージェントを作成し、外部AIモデルプロバイダーとインテグレーションして、組織のニーズに合わせてカスタマイズできます。独自のAPIキーを使用して、モデルプロバイダーとインテグレーションします。

次に、プロジェクトのイシュー、エピック、またはマージリクエストで、コメントまたはディスカッションでその外部エージェントに言及し、エージェントにタスクの完了を依頼できます。

外部エージェント:

  • 周囲のコンテキストとリポジトリコードを読み取り、分析します。
  • プロジェクトの権限を遵守し、監査証跡を保持しながら、実行する適切なアクションを決定します。
  • CI/CDパイプラインを実行し、すぐにマージできる変更またはインラインコメントのいずれかでGitLab内で応答します。

GitLabでテスト済みの次のインテグレーションが利用可能です:

クリック可能なデモについては、GitLab Duo Agent Platform with Amazon Qを参照してください。

前提要件

エージェントを作成し、外部AIモデルプロバイダーとインテグレーションする前に、prerequisitesを満たす必要があります。

AIモデルプロバイダーの認証情報

エージェントを外部AIモデルプロバイダーとインテグレーションするには、アクセス認証情報が必要です。そのモデルプロバイダーのAPIキー、またはGitLab管理の認証情報を使用できます。

APIキー

エージェントを外部AIモデルプロバイダーとインテグレーションするには、そのモデルプロバイダーのAPIキーを使用できます:

GitLab管理の認証情報

外部AIモデルプロバイダーに独自のAPIキーを使用する代わりに、AIゲートウェイを介してGitLab管理の認証情報を使用するように外部エージェントを設定できます。これにより、APIキーを自分で管理およびローテーションする必要がなくなります。

GitLab管理の認証情報を使用する場合:

  • フロー設定ファイルでinjectGatewayToken: trueを設定します。
  • CI/CD変数からAPIキーの変数(ANTHROPIC_API_KEYなど)を削除します。
  • GitLab AIゲートウェイプロキシーエンドポイントを使用するように外部エージェントを設定します。

次の環境変数は、injectGatewayTokentrueの場合に自動的に入力されたされます:

  • AI_FLOW_AI_GATEWAY_TOKEN:AIゲートウェイの認証トークン
  • AI_FLOW_AI_GATEWAY_HEADERS:APIリクエスト用にフォーマットされたヘッダー

GitLab管理の認証情報は、Anthropic ClaudeおよびCodexでのみ使用できます。

サービスアカウントを作成する

前提要件:

  • GitLab.comでは、プロジェクトが属するトップレベルグループのオーナーロールが必要です。
  • GitLab Self-ManagedおよびGitLab GitLab Dedicatedでは、次のいずれかが必要です:

外部エージェントに言及する各プロジェクトには、一意のグループサービスアカウントが必要です。外部エージェントにタスクを割り当てるときは、サービスアカウントのユーザー名に言及してください。

複数のプロジェクトで同じサービスアカウントを使用すると、そのサービスアカウントに接続されている外部エージェントに、それらのすべてのプロジェクトへのアクセス権が付与されます。

サービスアカウントをセットアップするには、次のアクションを実行します。十分な権限がない場合は、インスタンス管理者またはトップレベルグループのオーナーに支援を求めてください。

  1. トップレベルグループの場合は、サービスアカウントを作成します。インスタンス用に作成されたサービスアカウントはサポートされていません。
  2. 次のスコープで、サービスアカウントのパーソナルアクセストークンを作成します:
    • write_repository
    • api
    • ai_features
  3. サービスアカウントをプロジェクトに追加し、デベロッパーロールを付与します。これにより、サービスアカウントに必要な最小限の権限が付与されます。

サービスアカウントをプロジェクトに追加するときは、サービスアカウントの正確な名前を入力する必要があります。間違った名前を入力すると、外部エージェントは機能しません。

CI/CD変数を設定する

前提要件:

  • プロジェクトのメンテナーロール以上が必要です。

次のCI/CD変数をプロジェクトの設定に追加します:

インテグレーション環境変数説明
すべてGITLAB_TOKEN_<integration>サービスアカウントユーザーのパーソナルアクセストークン。
すべてGITLAB_HOSTGitLabインスタンスのホスト名(gitlab.comなど)。
Anthropic Claude、OpencodeANTHROPIC_API_KEYAnthropic APIキー(injectGatewayToken: trueが設定されている場合はオプション)。
OpenAI CodexOPENAI_API_KEYOpenAI APIキー。
Amazon QAWS_SECRET_NAMEAWSシークレットマネージャーのシークレット名。
Amazon QAWS_REGION_NAMEAWSリージョン名。
Amazon QAMAZON_Q_SIGV4Amazon Q Sig V4認証情報。
Google GeminiコマンドラインインターフェースGOOGLE_CREDENTIALSJSON認証情報ファイルの内容。
Google GeminiコマンドラインインターフェースGOOGLE_CLOUD_PROJECTGoogle CloudプロジェクトID。
Google GeminiコマンドラインインターフェースGOOGLE_CLOUD_LOCATIONGoogle Cloudプロジェクトの場所。

プロジェクト設定で変数を追加または更新するには、次の手順を実行します:

  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
  2. 設定 > CI/CDを選択します。
  3. 変数を展開します。
  4. 変数を追加するを選択し、フィールドに入力します:
    • 種類: **変数 (デフォルト)**を選択します。

    • 環境: **すべて (デフォルト)**を選択します。

    • 表示レベル: 目的の表示レベルを選択します。

      APIキーとパーソナルアクセストークンの変数の場合は、マスクするまたはマスクして非表示を選択します。

    • 変数の保護チェックボックスをオフにします。

    • 変数参照を展開チェックボックスをオフにします。

    • 説明(オプション): 変数の説明を入力します。

    • キー: CI/CD変数の環境変数名(GITLAB_HOSTなど)を入力します。

    • : APIキー、パーソナルアクセストークン、またはホストの値。

  5. 変数を追加するを選択します。

詳細については、プロジェクトの設定にCI/CD変数を追加する方法を参照してください。

外部エージェントを作成する

外部エージェントを作成し、フロー設定で環境で実行するように設定します。

UIを使用する

  • 提供形態: GitLab.com、GitLab Self-Managed

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

前提要件:

  • プロジェクトのメンテナーロール以上が必要です。
  1. 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
  2. 自動化 > フローを選択します。
  3. 新しいフローを選択します。
  4. 基本情報の下:
    1. 表示名に名前を入力します。
    2. 説明に説明を入力します。
  5. 表示レベルとアクセス表示レベルで、プライベートまたは公開を選択します。
  6. 設定の下:
    1. 外部を選択します。
    2. フロー設定を入力します。独自の設定を作成するか、以下のテンプレートの1つを編集できます。
  7. フローを作成を選択します。

外部エージェントがAIカタログに表示されます。

フロー設定ファイルを使用する

フロー設定ファイルを手動で追加して外部エージェントを作成する場合は、外部エージェントごとに異なるAIフロー設定ファイルを作成する必要があります。

前提要件:

  • プロジェクトのデベロッパーロール以上を持っている必要があります。

フロー設定ファイルを作成するには:

  1. プロジェクトで、YAMLファイル(例:.gitlab/duo/flows/claude.yaml)を作成します。
  2. フロー設定ファイルの例の1つを使用して、ファイルに入力されたします。

外部エージェントを有効にする

AIカタログから外部エージェントを作成した場合は、それを使用するためにプロジェクトで有効にする必要があります。

前提要件:

  • プロジェクトのメンテナーロール以上が必要です。

プロジェクトで外部エージェントを有効にするには:

  1. 左側のサイドバーで、検索または移動先 > 検索を選択します。
  2. AIカタログを選択し、次にフロータブを選択します。
  3. 外部エージェントを選択し、次にプロジェクトで有効にするを選択します。
  4. ドロップダウンリストから、外部エージェントを有効にするプロジェクトを選択します。
  5. 有効を選択します。

外部エージェントがプロジェクトのフローリストに表示されます。

トリガーを作成する

外部エージェントがいつ実行されるかを決定するトリガーを作成する必要があります。

たとえば、ディスカッションでサービスアカウントに言及したとき、またはサービスアカウントをレビュアーとして割り当てたときに、エージェントがトリガーされるように指定できます。

外部エージェントを使用する

前提要件:

  • プロジェクトのデベロッパーロール以上を持っている必要があります。
  • AIカタログから外部エージェントを作成した場合、エージェントはプロジェクトで有効にする必要があります。
  • エージェントがワークロードブランチ(workloads/*)にプッシュできるようにするには、ブランチルールを作成する必要がある場合があります。
  1. プロジェクトで、イシュー、マージリクエスト、またはエピックを開きます。

  2. フローサービスアカウントユーザー名に言及、割り当て、またはレビューをリクエストします。例:

    @service-account-username can you help analyze this code change?
  3. 外部エージェントがタスクを完了すると、確認が表示され、すぐにマージできる変更またはインラインコメントが表示されます。