外部エージェント
- プラン: 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キーを使用できます:
- Anthropic ClaudeおよびOpencodeの場合は、Anthropic API keyを使用します。
- OpenAI Codexの場合は、OpenAI API keyを使用します。
GitLab管理の認証情報
外部AIモデルプロバイダーに独自のAPIキーを使用する代わりに、AIゲートウェイを介してGitLab管理の認証情報を使用するように外部エージェントを設定できます。これにより、APIキーを自分で管理およびローテーションする必要がなくなります。
GitLab管理の認証情報を使用する場合:
- フロー設定ファイルで
injectGatewayToken: trueを設定します。 - CI/CD変数からAPIキーの変数(
ANTHROPIC_API_KEYなど)を削除します。 - GitLab AIゲートウェイプロキシーエンドポイントを使用するように外部エージェントを設定します。
次の環境変数は、injectGatewayTokenがtrueの場合に自動的に入力されたされます:
AI_FLOW_AI_GATEWAY_TOKEN:AIゲートウェイの認証トークンAI_FLOW_AI_GATEWAY_HEADERS:APIリクエスト用にフォーマットされたヘッダー
GitLab管理の認証情報は、Anthropic ClaudeおよびCodexでのみ使用できます。
サービスアカウントを作成する
前提要件:
- GitLab.comでは、プロジェクトが属するトップレベルグループのオーナーロールが必要です。
- GitLab Self-ManagedおよびGitLab GitLab Dedicatedでは、次のいずれかが必要です:
- インスタンスの管理者権限。
- トップレベルグループのオーナーロールと、サービスアカウントを作成する権限。
外部エージェントに言及する各プロジェクトには、一意のグループサービスアカウントが必要です。外部エージェントにタスクを割り当てるときは、サービスアカウントのユーザー名に言及してください。
複数のプロジェクトで同じサービスアカウントを使用すると、そのサービスアカウントに接続されている外部エージェントに、それらのすべてのプロジェクトへのアクセス権が付与されます。
サービスアカウントをセットアップするには、次のアクションを実行します。十分な権限がない場合は、インスタンス管理者またはトップレベルグループのオーナーに支援を求めてください。
- トップレベルグループの場合は、サービスアカウントを作成します。インスタンス用に作成されたサービスアカウントはサポートされていません。
- 次のスコープで、サービスアカウントのパーソナルアクセストークンを作成します:
write_repositoryapiai_features
- サービスアカウントをプロジェクトに追加し、デベロッパーロールを付与します。これにより、サービスアカウントに必要な最小限の権限が付与されます。
サービスアカウントをプロジェクトに追加するときは、サービスアカウントの正確な名前を入力する必要があります。間違った名前を入力すると、外部エージェントは機能しません。
CI/CD変数を設定する
前提要件:
- プロジェクトのメンテナーロール以上が必要です。
次のCI/CD変数をプロジェクトの設定に追加します:
| インテグレーション | 環境変数 | 説明 |
|---|---|---|
| すべて | GITLAB_TOKEN_<integration> | サービスアカウントユーザーのパーソナルアクセストークン。 |
| すべて | GITLAB_HOST | GitLabインスタンスのホスト名(gitlab.comなど)。 |
| Anthropic Claude、Opencode | ANTHROPIC_API_KEY | Anthropic APIキー(injectGatewayToken: trueが設定されている場合はオプション)。 |
| OpenAI Codex | OPENAI_API_KEY | OpenAI APIキー。 |
| Amazon Q | AWS_SECRET_NAME | AWSシークレットマネージャーのシークレット名。 |
| Amazon Q | AWS_REGION_NAME | AWSリージョン名。 |
| Amazon Q | AMAZON_Q_SIGV4 | Amazon Q Sig V4認証情報。 |
| Google Geminiコマンドラインインターフェース | GOOGLE_CREDENTIALS | JSON認証情報ファイルの内容。 |
| Google Geminiコマンドラインインターフェース | GOOGLE_CLOUD_PROJECT | Google CloudプロジェクトID。 |
| Google Geminiコマンドラインインターフェース | GOOGLE_CLOUD_LOCATION | Google Cloudプロジェクトの場所。 |
プロジェクト設定で変数を追加または更新するには、次の手順を実行します:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 設定 > CI/CDを選択します。
- 変数を展開します。
- 変数を追加するを選択し、フィールドに入力します:
種類: **変数 (デフォルト)**を選択します。
環境: **すべて (デフォルト)**を選択します。
表示レベル: 目的の表示レベルを選択します。
APIキーとパーソナルアクセストークンの変数の場合は、マスクするまたはマスクして非表示を選択します。
変数の保護チェックボックスをオフにします。
変数参照を展開チェックボックスをオフにします。
説明(オプション): 変数の説明を入力します。
キー: CI/CD変数の環境変数名(
GITLAB_HOSTなど)を入力します。値: APIキー、パーソナルアクセストークン、またはホストの値。
- 変数を追加するを選択します。
詳細については、プロジェクトの設定にCI/CD変数を追加する方法を参照してください。
外部エージェントを作成する
外部エージェントを作成し、フロー設定で環境で実行するように設定します。
UIを使用する
- 提供形態: GitLab.com、GitLab Self-Managed
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
前提要件:
- プロジェクトのメンテナーロール以上が必要です。
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。新しいナビゲーションをオンにしている場合、このフィールドは上部のバーにあります。
- 自動化 > フローを選択します。
- 新しいフローを選択します。
- 基本情報の下:
- 表示名に名前を入力します。
- 説明に説明を入力します。
- 表示レベルとアクセスの表示レベルで、プライベートまたは公開を選択します。
- 設定の下:
- 外部を選択します。
- フロー設定を入力します。独自の設定を作成するか、以下のテンプレートの1つを編集できます。
- フローを作成を選択します。
外部エージェントがAIカタログに表示されます。
フロー設定ファイルを使用する
フロー設定ファイルを手動で追加して外部エージェントを作成する場合は、外部エージェントごとに異なるAIフロー設定ファイルを作成する必要があります。
前提要件:
- プロジェクトのデベロッパーロール以上を持っている必要があります。
フロー設定ファイルを作成するには:
- プロジェクトで、YAMLファイル(例:
.gitlab/duo/flows/claude.yaml)を作成します。 - フロー設定ファイルの例の1つを使用して、ファイルに入力されたします。
外部エージェントを有効にする
AIカタログから外部エージェントを作成した場合は、それを使用するためにプロジェクトで有効にする必要があります。
前提要件:
- プロジェクトのメンテナーロール以上が必要です。
プロジェクトで外部エージェントを有効にするには:
- 左側のサイドバーで、検索または移動先 > 検索を選択します。
- AIカタログを選択し、次にフロータブを選択します。
- 外部エージェントを選択し、次にプロジェクトで有効にするを選択します。
- ドロップダウンリストから、外部エージェントを有効にするプロジェクトを選択します。
- 有効を選択します。
外部エージェントがプロジェクトのフローリストに表示されます。
トリガーを作成する
外部エージェントがいつ実行されるかを決定するトリガーを作成する必要があります。
たとえば、ディスカッションでサービスアカウントに言及したとき、またはサービスアカウントをレビュアーとして割り当てたときに、エージェントがトリガーされるように指定できます。
外部エージェントを使用する
前提要件:
- プロジェクトのデベロッパーロール以上を持っている必要があります。
- AIカタログから外部エージェントを作成した場合、エージェントはプロジェクトで有効にする必要があります。
- エージェントがワークロードブランチ(
workloads/*)にプッシュできるようにするには、ブランチルールを作成する必要がある場合があります。
プロジェクトで、イシュー、マージリクエスト、またはエピックを開きます。
フローサービスアカウントユーザー名に言及、割り当て、またはレビューをリクエストします。例:
@service-account-username can you help analyze this code change?外部エージェントがタスクを完了すると、確認が表示され、すぐにマージできる変更またはインラインコメントが表示されます。