[{"data":1,"prerenderedAt":751},["ShallowReactive",2],{"/ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops":3,"navigation-ja-jp":34,"banner-ja-jp":434,"footer-ja-jp":444,"blog-post-authors-ja-jp-Dennis van Rooijen":650,"blog-related-posts-ja-jp-how-gitlab-duo-agent-platform-transforms-dataops":665,"assessment-promotions-ja-jp":703,"next-steps-ja-jp":742},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":27,"isFeatured":12,"meta":28,"navigation":12,"path":29,"publishedDate":20,"seo":30,"stem":31,"tagSlugs":32,"__hash__":33},"blogPosts/ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops.yml","How Gitlab Duo Agent Platform Transforms Dataops",[7],"dennis-van-rooijen",null,"ai-ml",{"slug":11,"featured":12,"template":13},"how-gitlab-duo-agent-platform-transforms-dataops",true,"BlogPost",{"heroImage":15,"body":16,"authors":17,"updatedDate":19,"date":20,"title":21,"tags":22,"description":26,"category":9},"blog/hero%20images/workflow_1800x945.png","dbtモデルの手動作成は、データエンジニアにとって何時間も取られる単調な作業です。特に大きなビジネス変換がない場合、エンジニアのデータ業務の中でも最もやりがいを感じにくい部分と言えるでしょう。\n\nしかし、このプロセス全体を自動化できるとしたらどうでしょうか？本ブログでは、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo-agent-platform/)を使用して、適切な構造、テスト、ドキュメントを含む包括的なdbtモデルをわずか数分で生成する方法を詳しく解説します。\n\n## 何を構築するのか\n\nマーケティングチームは、広告投資を効果的に管理・最適化したいと考えています。広告プラットフォームの一つがRedditであるため、Reddit Ads APIからエンタープライズ[データプラットフォーム](https://handbook.gitlab.com/handbook/enterprise-data/platform/)Snowflakeにデータを抽出しています。GitLabでは、3つのストレージレイヤーがあります：\n\n1. `raw`レイヤー - 外部ソースからの未処理データの最初の着陸地点。ビジネス用途に準備されていない\n2. `prep`レイヤー - ソースモデルを含む最初の変換レイヤー。まだ一般的なビジネス用途には準備されていない\n3. `prod`レイヤー - ビジネス用途とTableauレポート用に準備された最終変換データ\n\n![ストレージレイヤーのチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png)\n\nこの実践ガイドでは、データは既に抽出ツールFivetranによってrawレイヤーに配置されており、`prep`レイヤーから`prod`レイヤーまでデータを処理するdbtモデルを生成します。\n\n一行のdbtコードを自分で書くことなく、このガイドを最後まで進めると以下が完成します：\n\n* prepレイヤーの**ソースモデル**\n* prodレイヤーの**ワークスペースモデル**\n* Reddit Adsデータセットのすべての13テーブル（112列を含む）の**完全なdbt構成**\n* 結果を検証する**テストクエリ**\n\nプロセス全体は10分以内で完了します。手動では通常数時間かかる作業です。以下の手順に従ってください：\n\n## 1. データ構造の準備\n\nGitLab Duoがモデルを生成する前に、完全なテーブル構造を理解する必要があります。そこで重要になるのが、Snowflakeの情報スキーマに対してクエリを実行することです。現在、GitLab DuoをModel Context Protocol（[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)）経由でSnowflakeインスタンスに接続する方法を検討中です：\n\n```sql\nSELECT \n    table_name,\n    column_name,\n    data_type,\n    is_nullable,\n    CASE \n        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'\n        ELSE NULL \n    END as key_type\nFROM raw.information_schema.columns\n\nWHERE table_schema = 'REDDIT_ADS'\n\nORDER BY table_name, ordinal_position;\n```\n\nこのクエリは以下を取得します：\n\n* すべてのテーブル名と列名\n* 適切なモデル構造のためのデータ型\n* NULL制約\n* 主キーの識別（このデータセットでは非NULL列）\n\n**ポイント：** Reddit Adsデータセットでは、すべての非NULL列が主キーとして機能するパターンになっています。実際に`ad_group`などのテーブルを確認したところ、このテーブルには2つの非NULL列（`account_id`と`id`）があり、両方とも主キーとしてマークされています。このクエリを実行すると112行のメタデータが返されたため、それらをCSVファイルとしてエクスポートしてモデル生成に使用しました。この手動ステップは現在は問題なく機能していますが、MCPを介してデータプラットフォームとGitLab Duoの直接統合を調査して、このプロセスの完全自動化を目指して取り組んでいます。\n\n## 2. GitLab Duoのセットアップ\n\n[GitLab Duo](https://docs.gitlab.com/user/get_started/getting_started_gitlab_duo/)と対話する方法は2つあります：\n\n1. **Web UIチャット機能**\n2. **Visual Studio Codeプラグイン**\n\ndbtモデルをローカルで実行してテストできるため、VS Codeプラグインを選択しました。\n\n## 3. 「効果的な」プロンプトの入力\n\nすべてのdbtコードを生成するために使用した実際のプロンプトは以下の通りです：\n\n```text\nCreate dbt models for all the tables in the file structure.csv.（structure.csvファイル内のすべてのテーブルに対してdbtモデルを作成してください）\n\n\nI want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.（主キーに基づいてデータの重複を除去するフィルターを使用してソースモデルを作成したいです。これらを新しいフォルダーreddit_adsに作成してください。）\n\nI want to have workspace models created and store these in the workspace_marketing schema.（ワークスペースモデルを作成し、これらをworkspace_marketingスキーマに保存してください。）\n\n\nTake this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. \n\n（このMRを例として参考にしてください： [以前のソース実装を参照]。これはSource Aで実施した内容ですが、同様の処理をReddit Adsに対して行う必要があります。）\n\n\nPlease check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/（コードを作成する際は、dbtスタイルガイドをチェックしてください）\n```\n\nこのプロンプトが効果的だった理由：\n\n* ソースモデルとワークスペースモデル両方の**明確な仕様**\n* 以前の類似マージリクエストからの**参考例**\n* コードの品質と一貫性を確保するための**スタイルガイド参照**\n* 適切な構成管理のための**特定のスキーマ指定**\n\n## 4. GitLab Duoのプロセス\n\nプロンプトを送信した後、GitLab Duoが作業を開始しました。生成プロセス全体は数分かかり、その間にGitLab Duoは以下を行いました：\n\n1. CSV入力ファイルを**読み取り分析**\n2. メタデータから**テーブル構造を調査**\n3. コーディング標準について**dbtスタイルガイドを参照**\n4. 適切な構造化のために**類似のマージリクエストを考慮**\n5. すべての13テーブルの**ソースモデルを生成**\n6. すべての13テーブルの**ワークスペースモデルを作成**\n7. **dbtサポートファイルを生成**：\n\n   * `sources.yml`構成\n   * テストとドキュメントを含む`schema.yml`ファイル\n   * スキーマ参照で`dbt_project.yml`を更新\n\n## 結果\n\n出力は素晴らしいものでした：\n\n* **変更ファイル1個：** dbt_project.yml（reddit_adsスキーマ構成を追加）\n* **新しいファイル29個：**\n\n  * **dbtモデル26個**（ソース13個 + ワークスペース13個）\n  * **YAMLファイル3個**\n* **900行近くのコード**が自動生成\n* 主キー列の一意制約を含む**組み込みデータテスト**\n* すべてのモデルと列の**汎用説明**\n* ソースモデルの**適切な重複除去ロジック**\n* GitLab dbtスタイルガイドに従った**クリーンで一貫したコード構造**\n\n```text\ntransform/snowflake-dbt/\n\n├── dbt_project.yml                                                    [MODIFIED]（変更）\n\n└── models/\n    ├── sources/\n    │   └── reddit_ads/\n    │       ├── reddit_ads_ad_group_source.sql                        [NEW]（新規）\n    │       ├── reddit_ads_ad_source.sql                              [NEW]\n    │       ├── reddit_ads_business_account_source.sql                [NEW]\n    │       ├── reddit_ads_campaign_source.sql                        [NEW]\n    │       ├── reddit_ads_custom_audience_history_source.sql         [NEW]\n    │       ├── reddit_ads_geolocation_source.sql                     [NEW]\n    │       ├── reddit_ads_interest_source.sql                        [NEW]\n    │       ├── reddit_ads_targeting_community_source.sql             [NEW]\n    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEW]\n    │       ├── reddit_ads_targeting_device_source.sql                [NEW]\n    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEW]\n    │       ├── reddit_ads_targeting_interest_source.sql              [NEW]\n    │       ├── reddit_ads_time_zone_source.sql                       [NEW]\n    │       ├── schema.yml                                            [NEW]\n    │       └── sources.yml                                           [NEW]\n    └── workspaces/\n        └── workspace_marketing/\n            └── reddit_ads/\n                ├── schema.yml                                        [NEW]\n                ├── wk_reddit_ads_ad.sql                              [NEW]\n                ├── wk_reddit_ads_ad_group.sql                        [NEW]\n                ├── wk_reddit_ads_business_account.sql                [NEW]\n                ├── wk_reddit_ads_campaign.sql                        [NEW]\n                ├── wk_reddit_ads_custom_audience_history.sql         [NEW]\n                ├── wk_reddit_ads_geolocation.sql                     [NEW]\n                ├── wk_reddit_ads_interest.sql                        [NEW]\n                ├── wk_reddit_ads_targeting_community.sql             [NEW]\n                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEW]\n                ├── wk_reddit_ads_targeting_device.sql                [NEW]\n                ├── wk_reddit_ads_targeting_geolocation.sql           [NEW]\n                ├── wk_reddit_ads_targeting_interest.sql              [NEW]\n                └── wk_reddit_ads_time_zone.sql                       [NEW]\n\n```\n\n### 生成されたコードのサンプル\n\n生成されたコード品質の例をご紹介します。`time_zone`テーブルについて、GitLab Duoは以下を作成しました：\n\n**Prepレイヤーソースモデル**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ source('reddit_ads','time_zone') }}\n  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1\n),\n\n\nrenamed AS (\n  SELECT\n    id::VARCHAR                               AS time_zone_id,\n    code::VARCHAR                             AS time_zone_code,\n    dst_offset::NUMBER                        AS time_zone_dst_offset,\n    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,\n    name::VARCHAR                             AS time_zone_name,\n    offset::NUMBER                            AS time_zone_offset,\n    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at\n  FROM source\n)\n\n\nSELECT * FROM renamed\n```\n\n**Schema.yml**\n\n```yaml\nmodels:\n  - name: reddit_ads_time_zone_source\n    description: Time zone data from Reddit Ads system（Reddit Adsシステムからのタイムゾーンデータ）\n    columns:\n      - name: time_zone_id\n        description: Time zone data from Reddit Ads system（タイムゾーンレコードの一意識別子）\n        data_tests:\n          - unique\n          - not_null\n      - name: time_zone_code\n        description: Code for the time zone（タイムゾーンのコード）\n      - name: time_zone_dst_offset\n        description: Daylight saving time offset for the time zone（タイムゾーンの夏時間オフセット）\n      - name: is_time_zone_dst_active\n        description: Flag indicating if daylight saving time is active（夏時間がアクティブかどうかを示すフラグ）\n      - name: time_zone_name\n        description: Name of the time zone（タイムゾーンの名前）\n      - name: time_zone_offset\n        description: Offset for the time zone（タイムゾーンのオフセット）\n      - name: fivetran_synced_at\n        description: Timestamp when the record was last synced by Fivetran（レコードがFivetranによって最後に同期されたタイムスタンプ）\n\n```\n\n**Source.yml**\n\n```yaml\nsources:\n  - name: reddit_ads\n    database: RAW\n    schema: reddit_ads\n    loaded_at_field: _fivetran_synced\n    loader: fivetran\n    description: Reddit Ads data\n\n    quoting:\n      database: true\n      schema: false\n      identifier: false\n\n    tables:\n      - name: time_zone\n\n```\n\n**ワークスペースモデル**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ ref('reddit_ads_time_zone_source') }}\n)\n\n\nSELECT * FROM source\n```\n\n## 5. 品質検証\n\nコードに問題がないことを確認し、MRにプッシュして[CIテストパイプライン](https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes)を実行し、コードのテストと結果検証を行いました。GitLab Duoに検証クエリの作成を依頼しました：\n\n```text\nCreate a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.（rawレイヤーとworkspaceレイヤー間の行数をテストするクエリを作成してください。重複除去を実施しているため、主キーに対してdistinctを使用して比較できます。）\n```\n\nAIが生成した包括的な検証クエリには、以下が含まれています：\n\n* rawレイヤーとワークスペースレイヤー間の行数を比較\n* 重複除去ロジックに対応\n* 全13テーブルをテスト\n* データ保持率を算出\n\n\u003Cdetails>\n\n\u003Csummary>生成されたSQLテストクエリ\u003C/summary>\n\n```sql\n-- Reddit Ads Row Count Validation Test（Reddit Ads行数検証テスト）\n\n-- Compares distinct counts between RAW layer and WORKSPACE_MARKETING layer（RAWレイヤーとWORKSPACE_MARKETINGレイヤー間の一意カウントを比較）\n\n-- Accounts for deduplication logic in source models（ソースモデルの重複除去ロジックを考慮）\n\n\nWITH raw_counts AS (\n  -- Single primary key tables（単一主キーテーブル）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count\n  FROM RAW.REDDIT_ADS.AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_INTEREST\n),\n\n\nworkspace_counts AS (\n  -- Workspace layer counts using primary keys from schema.yml（schema.ymlの主キーを使用したワークスペースレイヤーカウント）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST\n)\n\n\n-- Final comparison with validation results（検証結果との最終比較）\n\nSELECT \n  r.table_name,\n  r.raw_count,\n  w.workspace_count,\n  r.raw_count - w.workspace_count AS count_difference,\n  CASE \n    WHEN r.raw_count = w.workspace_count THEN '✅ PASS（成功）'\n    WHEN r.raw_count > w.workspace_count THEN '⚠️ RAW > WORKSPACE (Expected due to deduplication 重複除去のため正常)'\n    ELSE '❌ FAIL（失敗） - WORKSPACE > RAW (Unexpected 異常)'\n  END AS validation_status,\n  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage\nFROM raw_counts r\n\nJOIN workspace_counts w ON r.table_name = w.table_name\n\nORDER BY r.table_name;\n```\n\n\u003C/details>\n\n![クエリ結果テーブル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png)\n\nこのクエリを実行した結果：\n\n* 重複除去後の行数に**差異なし**\n* 全テーブルで**100%のデータ保持**\n* **すべてのテスト**が正常に完了\n\n## 結論：大幅な時間短縮\n\n* **従来のアプローチ：** 手動コーディング、テスト、デバッグで6-8時間\n* **GitLab Duoを活用：** 生成 + レビュー時間で6-8分\n\n開発効率が60倍に向上（6-8時間から6-8分へ）し、高品質なコードを確保できます。\n\n## 成功のためのベストプラクティス\n\n本事例から得られた主要な推奨事項：\n\n### メタデータの準備\n\n* データ型や制約を含む完全なテーブル構造を抽出する\n* 主キーと関係を事前に特定する\n* クリーンで適切にフォーマットされたCSV入力ファイルをエクスポートする\n\n**注：** GitLab DuoをMCP経由で（メタ）データに接続することで、この手動ステップを省略できる可能性があります。\n\n### 明確なコンテキストの提供\n\n* 可能な限り既存のMR例を参照例として示す\n* コーディング標準とスタイルガイドを明示する\n* フォルダー構造と命名規則について明確に指定する\n\n### 徹底的な検証\n\n* データ整合性を確認する検証クエリを必ず作成する\n* マージ前にローカルでテストする\n* CI/CDパイプラインを実行して問題を検出する\n\n### AIを活用したフォローアップ作業\n\n* テストクエリを自動生成する\n* ドキュメントテンプレートを作成する\n* 検証スクリプトを構築する\n\n## 今後の展開\n\n本ガイドでは、GitLab DuoをはじめとするAI搭載開発ツールがデータエンジニアリングワークフローをいかに変革しているかを示しました。テスト、ドキュメント、適切な構造を含む数百行の本番対応コードを数分で生成できる能力は、反復的な開発タスクへのアプローチの根本的な転換を表しています。\n\nAIにdbtモデル作成の反復作業を委ねることで、データエンジニアはデータモデリング戦略、パフォーマンス最適化、ビジネスロジック実装などといった、より価値の高い業務に専念できます。\n\n**ぜひお試しください** 小さなデータセットから着手し、メタデータを慎重に準備することで、GitLab Duoが何時間の作業をわずか数分の自動生成に変える様子を実感できます。\n\n> [GitLab Duo Agent Platformを今すぐお試しください。](https://about.gitlab.com/gitlab-duo-agent-platform/)\n\n## さらに読む\n\n* [GitLab 18.3: ソフトウェアエンジニアリングにおけるAIオーケストレーションの拡張](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)\n* [GitLab Duo Agent Platform ベータ版：次世代AIオーケストレーション](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/)\n",[18],"Dennis van Rooijen","2025-09-30","2025-09-16","GitLab Duo Agent PlatformがDataOpsを変革する方法",[23,24,25],"product","tutorial","features","本ブログでは、dbtモデル作成方法を詳しく解説し、何時間もかかっていた手動コーディングを、わずか数分の自動生成に変える方法をご紹介します。","yml",{},"/ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"title":21,"description":26},"ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops",[23,24,25],"8SuDytLhRt8Iin_XiuxT-YUoWLNODzcq4GjGUr-S-CM",{"data":35},{"logo":36,"freeTrial":41,"sales":46,"login":51,"items":56,"search":364,"minimal":397,"duo":414,"pricingDeployment":424},{"config":37},{"href":38,"dataGaName":39,"dataGaLocation":40},"/ja-jp/","gitlab logo","header",{"text":42,"config":43},"無料トライアルを開始",{"href":44,"dataGaName":45,"dataGaLocation":40},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":47,"config":48},"お問い合わせ",{"href":49,"dataGaName":50,"dataGaLocation":40},"/ja-jp/sales/","sales",{"text":52,"config":53},"サインイン",{"href":54,"dataGaName":55,"dataGaLocation":40},"https://gitlab.com/users/sign_in/","sign in",[57,84,180,185,286,346],{"text":58,"config":59,"cards":61},"プラットフォーム",{"dataNavLevelOne":60},"platform",[62,68,76],{"title":58,"description":63,"link":64},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":65,"config":66},"プラットフォームを詳しく見る",{"href":67,"dataGaName":60,"dataGaLocation":40},"/ja-jp/platform/",{"title":69,"description":70,"link":71},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":72,"config":73},"GitLab Duoのご紹介",{"href":74,"dataGaName":75,"dataGaLocation":40},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":77,"description":78,"link":79},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":80,"config":81},"詳細はこちら",{"href":82,"dataGaName":83,"dataGaLocation":40},"/ja-jp/why-gitlab/","why gitlab",{"text":85,"left":12,"config":86,"link":88,"lists":92,"footer":162},"製品",{"dataNavLevelOne":87},"solutions",{"text":89,"config":90},"すべてのソリューションを表示",{"href":91,"dataGaName":87,"dataGaLocation":40},"/ja-jp/solutions/",[93,118,140],{"title":94,"description":95,"link":96,"items":101},"自動化","CI/CDと自動化でデプロイを加速",{"config":97},{"icon":98,"href":99,"dataGaName":100,"dataGaLocation":40},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[102,106,109,114],{"text":103,"config":104},"CI/CD",{"href":105,"dataGaLocation":40,"dataGaName":103},"/ja-jp/solutions/continuous-integration/",{"text":69,"config":107},{"href":74,"dataGaLocation":40,"dataGaName":108},"gitlab duo agent platform - product menu",{"text":110,"config":111},"ソースコード管理",{"href":112,"dataGaLocation":40,"dataGaName":113},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":115,"config":116},"自動化されたソフトウェアデリバリー",{"href":99,"dataGaLocation":40,"dataGaName":117},"Automated software delivery",{"title":119,"description":120,"link":121,"items":126},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":122},{"href":123,"dataGaName":124,"dataGaLocation":40,"icon":125},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[127,131,136],{"text":128,"config":129},"Application Security Testing",{"href":123,"dataGaName":130,"dataGaLocation":40},"Application security testing",{"text":132,"config":133},"ソフトウェアサプライチェーンの安全性",{"href":134,"dataGaLocation":40,"dataGaName":135},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":137,"config":138},"Software Compliance",{"href":139,"dataGaName":137,"dataGaLocation":40},"/ja-jp/solutions/software-compliance/",{"title":141,"link":142,"items":147},"測定",{"config":143},{"icon":144,"href":145,"dataGaName":146,"dataGaLocation":40},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[148,152,157],{"text":149,"config":150},"可視性と測定",{"href":145,"dataGaLocation":40,"dataGaName":151},"Visibility and Measurement",{"text":153,"config":154},"バリューストリーム管理",{"href":155,"dataGaLocation":40,"dataGaName":156},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":158,"config":159},"分析とインサイト",{"href":160,"dataGaLocation":40,"dataGaName":161},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":163,"items":164},"GitLabが活躍する場所",[165,170,175],{"text":166,"config":167},"Enterprise",{"href":168,"dataGaLocation":40,"dataGaName":169},"/ja-jp/enterprise/","enterprise",{"text":171,"config":172},"スモールビジネス",{"href":173,"dataGaLocation":40,"dataGaName":174},"/ja-jp/small-business/","small business",{"text":176,"config":177},"公共機関",{"href":178,"dataGaLocation":40,"dataGaName":179},"/ja-jp/solutions/public-sector/","public sector",{"text":181,"config":182},"価格",{"href":183,"dataGaName":184,"dataGaLocation":40,"dataNavLevelOne":184},"/ja-jp/pricing/","pricing",{"text":186,"config":187,"link":189,"lists":193,"feature":273},"関連リソース",{"dataNavLevelOne":188},"resources",{"text":190,"config":191},"すべてのリソースを表示",{"href":192,"dataGaName":188,"dataGaLocation":40},"/ja-jp/resources/",[194,227,245],{"title":195,"items":196},"はじめに",[197,202,207,212,217,222],{"text":198,"config":199},"インストール",{"href":200,"dataGaName":201,"dataGaLocation":40},"/ja-jp/install/","install",{"text":203,"config":204},"クイックスタートガイド",{"href":205,"dataGaName":206,"dataGaLocation":40},"/ja-jp/get-started/","quick setup checklists",{"text":208,"config":209},"学ぶ",{"href":210,"dataGaLocation":40,"dataGaName":211},"https://university.gitlab.com/","learn",{"text":213,"config":214},"製品ドキュメント",{"href":215,"dataGaName":216,"dataGaLocation":40},"https://docs.gitlab.com/","product documentation",{"text":218,"config":219},"ベストプラクティスビデオ",{"href":220,"dataGaName":221,"dataGaLocation":40},"/ja-jp/getting-started-videos/","best practice videos",{"text":223,"config":224},"インテグレーション",{"href":225,"dataGaName":226,"dataGaLocation":40},"/ja-jp/integrations/","integrations",{"title":228,"items":229},"検索する",[230,235,240],{"text":231,"config":232},"お客様成功事例",{"href":233,"dataGaName":234,"dataGaLocation":40},"/ja-jp/customers/","customer success stories",{"text":236,"config":237},"ブログ",{"href":238,"dataGaName":239,"dataGaLocation":40},"/ja-jp/blog/","blog",{"text":241,"config":242},"リモート",{"href":243,"dataGaName":244,"dataGaLocation":40},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":246,"items":247},"つなげる",[248,253,258,263,268],{"text":249,"config":250},"GitLabサービス",{"href":251,"dataGaName":252,"dataGaLocation":40},"/ja-jp/services/","services",{"text":254,"config":255},"コミュニティ",{"href":256,"dataGaName":257,"dataGaLocation":40},"/community/","community",{"text":259,"config":260},"フォーラム",{"href":261,"dataGaName":262,"dataGaLocation":40},"https://forum.gitlab.com/","forum",{"text":264,"config":265},"イベント",{"href":266,"dataGaName":267,"dataGaLocation":40},"/events/","events",{"text":269,"config":270},"パートナー",{"href":271,"dataGaName":272,"dataGaLocation":40},"/ja-jp/partners/","partners",{"backgroundColor":274,"textColor":275,"text":276,"image":277,"link":281},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":278,"config":279},"ソースプロモカード",{"src":280},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":282,"config":283},"最新情報を読む",{"href":284,"dataGaName":285,"dataGaLocation":40},"/ja-jp/the-source/","the source",{"text":287,"config":288,"lists":290},"会社情報",{"dataNavLevelOne":289},"company",[291],{"items":292},[293,298,304,306,311,316,321,326,331,336,341],{"text":294,"config":295},"GitLabについて",{"href":296,"dataGaName":297,"dataGaLocation":40},"/ja-jp/company/","about",{"text":299,"config":300,"footerGa":303},"採用情報",{"href":301,"dataGaName":302,"dataGaLocation":40},"/jobs/","jobs",{"dataGaName":302},{"text":264,"config":305},{"href":266,"dataGaName":267,"dataGaLocation":40},{"text":307,"config":308},"経営陣",{"href":309,"dataGaName":310,"dataGaLocation":40},"/company/team/e-group/","leadership",{"text":312,"config":313},"チーム",{"href":314,"dataGaName":315,"dataGaLocation":40},"/company/team/","team",{"text":317,"config":318},"ハンドブック",{"href":319,"dataGaName":320,"dataGaLocation":40},"https://handbook.gitlab.com/","handbook",{"text":322,"config":323},"投資家向け情報",{"href":324,"dataGaName":325,"dataGaLocation":40},"https://ir.gitlab.com/","investor relations",{"text":327,"config":328},"トラストセンター",{"href":329,"dataGaName":330,"dataGaLocation":40},"/ja-jp/security/","trust center",{"text":332,"config":333},"AI Transparency Center",{"href":334,"dataGaName":335,"dataGaLocation":40},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":337,"config":338},"ニュースレター",{"href":339,"dataGaName":340,"dataGaLocation":40},"/company/contact/#contact-forms","newsletter",{"text":342,"config":343},"プレス",{"href":344,"dataGaName":345,"dataGaLocation":40},"/press/","press",{"text":47,"config":347,"lists":348},{"dataNavLevelOne":289},[349],{"items":350},[351,354,359],{"text":47,"config":352},{"href":49,"dataGaName":353,"dataGaLocation":40},"talk to sales",{"text":355,"config":356},"サポートポータル",{"href":357,"dataGaName":358,"dataGaLocation":40},"https://support.gitlab.com","support portal",{"text":360,"config":361},"カスタマーポータル",{"href":362,"dataGaName":363,"dataGaLocation":40},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":365,"login":366,"suggestions":373},"閉じる",{"text":367,"link":368},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":369,"config":370},"GitLab.com",{"href":54,"dataGaName":371,"dataGaLocation":372},"search login","search",{"text":374,"default":375},"提案",[376,378,383,385,389,393],{"text":69,"config":377},{"href":74,"dataGaName":69,"dataGaLocation":372},{"text":379,"config":380},"コード提案（AI）",{"href":381,"dataGaName":382,"dataGaLocation":372},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":103,"config":384},{"href":105,"dataGaName":103,"dataGaLocation":372},{"text":386,"config":387},"GitLab on AWS",{"href":388,"dataGaName":386,"dataGaLocation":372},"/ja-jp/partners/technology-partners/aws/",{"text":390,"config":391},"GitLab on Google Cloud",{"href":392,"dataGaName":390,"dataGaLocation":372},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":394,"config":395},"GitLabを選ぶ理由",{"href":82,"dataGaName":396,"dataGaLocation":372},"Why GitLab?",{"freeTrial":398,"mobileIcon":402,"desktopIcon":407,"secondaryButton":410},{"text":42,"config":399},{"href":400,"dataGaName":45,"dataGaLocation":401},"https://gitlab.com/-/trials/new/","nav",{"altText":403,"config":404},"GitLabアイコン",{"src":405,"dataGaName":406,"dataGaLocation":401},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":403,"config":408},{"src":409,"dataGaName":406,"dataGaLocation":401},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":195,"config":411},{"href":412,"dataGaName":413,"dataGaLocation":401},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/compare/gitlab-vs-github/","get started",{"freeTrial":415,"mobileIcon":420,"desktopIcon":422},{"text":416,"config":417},"GitLab Duoの詳細について",{"href":418,"dataGaName":419,"dataGaLocation":401},"/ja-jp/gitlab-duo/","gitlab duo",{"altText":403,"config":421},{"src":405,"dataGaName":406,"dataGaLocation":401},{"altText":403,"config":423},{"src":409,"dataGaName":406,"dataGaLocation":401},{"freeTrial":425,"mobileIcon":430,"desktopIcon":432},{"text":426,"config":427},"料金ページに戻る",{"href":183,"dataGaName":428,"dataGaLocation":401,"icon":429},"back to pricing","GoBack",{"altText":403,"config":431},{"src":405,"dataGaName":406,"dataGaLocation":401},{"altText":403,"config":433},{"src":409,"dataGaName":406,"dataGaLocation":401},{"title":435,"button":436,"config":441},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":437,"config":438},"GitLab Transcendを今すぐ視聴",{"href":439,"dataGaName":440,"dataGaLocation":40},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":442,"icon":443},"release","AiStar",{"data":445},{"text":446,"source":447,"edit":453,"contribute":458,"config":463,"items":468,"minimal":642},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":448,"config":449},"ページのソースを表示",{"href":450,"dataGaName":451,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":454,"config":455},"このページを編集",{"href":456,"dataGaName":457,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":459,"config":460},"ご協力をお願いします",{"href":461,"dataGaName":462,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":464,"facebook":465,"youtube":466,"linkedin":467},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[469,492,546,576,611],{"title":58,"links":470,"subMenu":475},[471],{"text":472,"config":473},"DevSecOpsプラットフォーム",{"href":67,"dataGaName":474,"dataGaLocation":452},"devsecops platform",[476],{"title":181,"links":477},[478,482,487],{"text":479,"config":480},"プランの表示",{"href":183,"dataGaName":481,"dataGaLocation":452},"view plans",{"text":483,"config":484},"Premiumを選ぶ理由",{"href":485,"dataGaName":486,"dataGaLocation":452},"/ja-jp/pricing/premium/","why premium",{"text":488,"config":489},"Ultimateを選ぶ理由",{"href":490,"dataGaName":491,"dataGaLocation":452},"/ja-jp/pricing/ultimate/","why ultimate",{"title":493,"links":494},"ソリューション",[495,500,503,505,510,515,519,522,525,530,532,534,536,541],{"text":496,"config":497},"デジタルトランスフォーメーション",{"href":498,"dataGaName":499,"dataGaLocation":452},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":501,"config":502},"セキュリティとコンプライアンス",{"href":123,"dataGaName":130,"dataGaLocation":452},{"text":115,"config":504},{"href":99,"dataGaName":100,"dataGaLocation":452},{"text":506,"config":507},"アジャイル開発",{"href":508,"dataGaName":509,"dataGaLocation":452},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":511,"config":512},"クラウドトランスフォーメーション",{"href":513,"dataGaName":514,"dataGaLocation":452},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":516,"config":517},"SCM",{"href":112,"dataGaName":518,"dataGaLocation":452},"source code management",{"text":103,"config":520},{"href":105,"dataGaName":521,"dataGaLocation":452},"continuous integration & delivery",{"text":153,"config":523},{"href":155,"dataGaName":524,"dataGaLocation":452},"value stream management",{"text":526,"config":527},"GitOps",{"href":528,"dataGaName":529,"dataGaLocation":452},"/ja-jp/solutions/gitops/","gitops",{"text":166,"config":531},{"href":168,"dataGaName":169,"dataGaLocation":452},{"text":171,"config":533},{"href":173,"dataGaName":174,"dataGaLocation":452},{"text":176,"config":535},{"href":178,"dataGaName":179,"dataGaLocation":452},{"text":537,"config":538},"教育",{"href":539,"dataGaName":540,"dataGaLocation":452},"/ja-jp/solutions/education/","education",{"text":542,"config":543},"金融サービス",{"href":544,"dataGaName":545,"dataGaLocation":452},"/ja-jp/solutions/finance/","financial services",{"title":186,"links":547},[548,550,552,554,557,559,562,564,566,568,570,572,574],{"text":198,"config":549},{"href":200,"dataGaName":201,"dataGaLocation":452},{"text":203,"config":551},{"href":205,"dataGaName":206,"dataGaLocation":452},{"text":208,"config":553},{"href":210,"dataGaName":211,"dataGaLocation":452},{"text":213,"config":555},{"href":215,"dataGaName":556,"dataGaLocation":452},"docs",{"text":236,"config":558},{"href":238,"dataGaName":239},{"text":560,"config":561},"お客様の成功事例",{"href":233,"dataGaLocation":452},{"text":231,"config":563},{"href":233,"dataGaName":234,"dataGaLocation":452},{"text":241,"config":565},{"href":243,"dataGaName":244,"dataGaLocation":452},{"text":249,"config":567},{"href":251,"dataGaName":252,"dataGaLocation":452},{"text":254,"config":569},{"href":256,"dataGaName":257,"dataGaLocation":452},{"text":259,"config":571},{"href":261,"dataGaName":262,"dataGaLocation":452},{"text":264,"config":573},{"href":266,"dataGaName":267,"dataGaLocation":452},{"text":269,"config":575},{"href":271,"dataGaName":272,"dataGaLocation":452},{"title":577,"links":578},"Company",[579,581,583,585,587,589,591,595,600,602,604,606],{"text":294,"config":580},{"href":296,"dataGaName":289,"dataGaLocation":452},{"text":299,"config":582},{"href":301,"dataGaName":302,"dataGaLocation":452},{"text":307,"config":584},{"href":309,"dataGaName":310,"dataGaLocation":452},{"text":312,"config":586},{"href":314,"dataGaName":315,"dataGaLocation":452},{"text":317,"config":588},{"href":319,"dataGaName":320,"dataGaLocation":452},{"text":322,"config":590},{"href":324,"dataGaName":325,"dataGaLocation":452},{"text":592,"config":593},"Sustainability",{"href":594,"dataGaName":592,"dataGaLocation":452},"/sustainability/",{"text":596,"config":597},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":598,"dataGaName":599,"dataGaLocation":452},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":327,"config":601},{"href":329,"dataGaName":330,"dataGaLocation":452},{"text":337,"config":603},{"href":339,"dataGaName":340,"dataGaLocation":452},{"text":342,"config":605},{"href":344,"dataGaName":345,"dataGaLocation":452},{"text":607,"config":608},"現代奴隷制の透明性に関する声明",{"href":609,"dataGaName":610,"dataGaLocation":452},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":47,"links":612},[613,615,620,622,627,632,637],{"text":47,"config":614},{"href":49,"dataGaName":50,"dataGaLocation":452},{"text":616,"config":617},"サポートを受ける",{"href":618,"dataGaName":619,"dataGaLocation":452},"/support/","get help",{"text":360,"config":621},{"href":362,"dataGaName":363,"dataGaLocation":452},{"text":623,"config":624},"ステータス",{"href":625,"dataGaName":626,"dataGaLocation":452},"https://status.gitlab.com/","status",{"text":628,"config":629},"利用規約",{"href":630,"dataGaName":631,"dataGaLocation":452},"/terms/","terms of use",{"text":633,"config":634},"プライバシーに関する声明",{"href":635,"dataGaName":636,"dataGaLocation":452},"/ja-jp/privacy/","privacy statement",{"text":638,"config":639},"Cookieの設定",{"dataGaName":640,"dataGaLocation":452,"id":641,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":643},[644,646,648],{"text":628,"config":645},{"href":630,"dataGaName":631,"dataGaLocation":452},{"text":633,"config":647},{"href":635,"dataGaName":636,"dataGaLocation":452},{"text":638,"config":649},{"dataGaName":640,"dataGaLocation":452,"id":641,"isOneTrustButton":12},[651],{"id":652,"title":653,"body":8,"config":654,"content":657,"description":8,"extension":27,"meta":660,"navigation":12,"path":661,"seo":662,"stem":663,"__hash__":664},"blogAuthors/en-us/blog/authors/dennis-van-rooijen.yml","Dennis Van Rooijen",{"template":655,"gitlabHandle":656},"BlogAuthor","dvanrooijen2",{"name":18,"config":658},{"headshot":659},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758031391/muvwg1sxetzekmuhqdql.png",{},"/en-us/blog/authors/dennis-van-rooijen",{},"en-us/blog/authors/dennis-van-rooijen","-VrBQM0MkpSMVi6cd_BwGMYKVgzryOCw3IxXukVkNGg",[666,679,691],{"content":667,"config":676},{"title":668,"description":669,"heroImage":670,"date":671,"body":672,"category":9,"tags":673,"updatedDate":675},"エージェント型SDLC：GitLabとタタ・コンサルタンシー・サービシズ（TCS社）が企業全体でインテリジェントオーケストレーションを提供","開発者と連携してワークフローを自動化し、コンプライアンスを強化し、デリバリーを加速するAIエージェントでDevSecOpsをスケールします。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1771866240/l16gpgupgz8uelyc8jfy.png","2026-02-24","GitLabとタタ・コンサルタンシー・サービシズ（以下TCS社）は、企業がイノベーション速度を大規模に加速できるよう支援するパートナーシップを発表しました。\n企業は迅速で安全なソフトウェアデリバリーを必要としていますが、断片化されたツールチェーン、一貫性のないセキュリティ制御、手動のコンプライアンスプロセスによってソフトウェアデリバリーが遅くなることがよくあります。AI生成コードとAI主導の脅威により、新たな複雑さが加わっています。\nGitLabとTCS Center of Excellence（CoE）アクセラレーターは連携して、移行の摩擦を軽減し、ガードレールを体系化し、DevSecOpsの大規模な導入を産業化します。両社は共に、開発中に必要な監査可能なガードレールを備えた標準化からインテリジェントオーケストレーションへの道筋を可能にします。\n\n## 将来に対応した企業の支援\n\nお客様は、数年ごとに大規模な再エンジニアリングを強いることなく、長期間使用できるよう構築されたDevSecOpsプラットフォームを求めています。GitLabの統合データモデルは、ソフトウェアライフサイクル全体を単一のコンテキストソースに接続し、企業がパイプライン、制御、メトリクスを大規模に標準化できるようにします。GitLabのAI主導機能における継続的なイノベーションは、企業がエージェント型ワークフローを採用して価値実現までの時間を短縮する中で、その長期的な関連性を強化します。\n\nGitLabとTCS社は、マルチエージェントオーケストレーション、動的プランニング、信頼度スコア付き意思決定、継続的学習サイクルを同期させて、コーディング、レビュー、テスト、セキュリティ、CI/CDワークフローを自動化します。\n\n[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo-agent-platform/)は、コンテキスト認識型の自律的アクション、マルチステップ推論、コードモダナイゼーション、セキュリティスキャン、フロー自動化を通じて、ソフトウェアライフサイクル全体でインテリジェントオーケストレーションを提供し、ソフトウェア開発を合理化・加速します。これは、IT運用のためのTCS社の構造化されたエージェント階層と自然に整合し、動的推論、プランニング、ドメインエージェントがMCP主導の統合と豊富なプロジェクトコンテキストフローを通じてGitLab Duo Platformの専門エージェント（プランナー、セキュリティアナリスト、コードレビューなど）を呼び出すことを可能にし、GitLabのAIネイティブDevSecOps制御によって管理されます。\n\n## プラットフォームエンジニアリングによるDevSecOpsのスケール\n\nプラットフォームエンジニアリングは、個々のパイプラインとツールチェーンの管理から、組織全体でソフトウェアの構築、保護、テスト、デプロイ方法を標準化する内部開発者プラットフォーム（IDP）の構築へと焦点を移します。\n\n 企業は、プラットフォームエンジニアリングを通じて開発者エクスペリエンスを製品化し、セルフサービスのゴールデンパスでIDPを運用することでスケールします。セキュリティ、コンプライアンス、ガバナンスは、policy-as-codeを通じてデフォルトで組み込まれ、Day 2運用を標準化します。GitLabはIDPコントロールプレーンとなり、TCS社はコントロールプレーン上のラッパーとしてセルフサービスの設計と展開を産業化し、強力な開発者エクスペリエンスを提供します。ソリューションアーキテクトとして、TCS社はセルフサービスパスを構築し、GitLab Duo Agent PlatformはSDLC全体で開発を自動化するエージェント型AIを追加します。\n\n| カテゴリ                       | 詳細                                                                                                    |\n| -------------------------- | ----------------------------------------------------------------------------------------------------- |\n| エクスペリエンスレイヤー（IDP）          | • 開発者セルフサービススキャフォールディング \u003Cbr> • ワンクリック環境/Runner/スキャン \u003Cbr> • 標準化されたオンボーディング                             |\n| プラットフォームコントロールプレーン（GitLab） | • 制御ポイントとしてのマージリクエスト \u003Cbr> • 統合CI/CD \u003Cbr> • セキュリティ \u003Cbr> • ソフトウェア部品表（SBOM） \u003Cbr> • 承認 \u003Cbr> • テレメトリ       |\n| ガードレールとガバナンス               | • ポリシーベースのガバナンス \u003Cbr> • コンプライアンス as code \u003Cbr> • リスク階層化されたゴールデンパス \u003Cbr> • 手動ゲートなしの必須制御                   |\n| インフラストラクチャとランタイム           | • クラウドランディングゾーン \u003Cbr> • Kubernetes/VMランタイム \u003Cbr> • GitOps主導の望ましい状態の強制                                   |\n| ゴールデンパス                    | • 製品が継続的に改善され、安全に拡張可能であることを保証 \u003Cbr> • 自律性を保持しながらパイプラインドリフトを排除                                          |\n| Day 2運用                    | • 自動ロールバック \u003Cbr> • リリースポリシーに関連付けられたランタイムSLO \u003Cbr> • 脆弱性SLA \u003Cbr> • コスト可視性 \u003Cbr> • プラットフォームに組み込まれた運用エクセレンス |\n\n## DevSecOpsからインテリジェントオーケストレーションへ\n\n統合DevSecOpsプラットフォームは企業に基盤を提供しますが、AIエージェントがソフトウェアライフサイクルの積極的な参加者になるにつれて、プラットフォームはコードとパイプラインの管理以上のことを行う必要があります。人間とAIエージェントの作業を、完全なライフサイクルコンテキストとフローに組み込まれたガードレールとともにオーケストレーションする必要があります。これが、GitLab Duo Agent Platformが可能にするDevSecOpsからインテリジェントオーケストレーションへの移行であり、時間の経過とともにソフトウェアデリバリーの品質を向上させます。\n\n### GitLab Duo Agent Platform\n\nGitLab Duo Agent Platformは、開発者と協力者として連携するAIエージェントをソフトウェア開発ライフサイクルに導入します。複数のAIエージェントが、コード生成やテストからCI/CD修正まで、タスクを並行して処理し、ボトルネックを削減してリリースを高速化します。開発者は定義されたルールを使用してこれらのエージェントを操縦・誘導し、反復的な作業をオフロードしながら制御を維持します。このエージェントオーケストレーションは、複雑なワークフロー（壊れたパイプラインの自動修正など）に取り組み、チームがより価値の高い作業に集中できるようにします。\n\nAIエージェントはGitLabの統合データモデル内で動作し、マージリクエストを作成し、コードを改善し、コンプライアンスをサポートすることで、生産性と速度を向上させます。すべてのエージェントアクションには完全なプロジェクトコンテキストがあり、監査可能で、ポリシーに準拠しているため、企業は数千人のエンジニアにわたってAIを自信を持ってスケールし、すべての自動化されたワークフローでセキュリティと規制コンプライアンスを維持できます。これにより、アプリケーションエンジニア、DevSecOpsエンジニア、スクラムマスター、プロダクトマネージャーの負担が軽減されます。\n\n## リファレンスアーキテクチャの理解\n\n![GitLab TCSリファレンスアーキテクチャ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1771866349/ynfgc7ugqjasyj1uhew0.png)\n\n## GitLab + TCS：強力な組み合わせ\n\n GitLabは、ソフトウェアチームとAIエージェントが開発ライフサイクル全体で連携するDevSecOpsのインテリジェントオーケストレーションプラットフォームを提供します。TCS社は、産業化された導入エンジン、実証済みのリファレンスアーキテクチャ、大規模移行ファクトリー、エンタープライズグレードのセキュリティベースライン、エンタープライズAI機能、AI Trust & Riskマネジメントツールとフレームワーク、プラットフォーム運用のプロダクトマインドセットを提供します。\n\nこの組み合わせを真に差別化するのは、業界、地域、規制環境を超えて数十年にわたってお客様と協力してきたTCS社の文脈的知識です。この経験により、TCS社はレガシー資産、コンプライアンス要件、運用モデル、スケールの課題などの企業制約に対処するためにGitLab機能を文脈化することができます。これは、ツールを単独で実装するのではなく、企業の制約を考慮したアプローチです。GitLabとTCS社は共に、組み込まれたコンプライアンスを備えたクラウド全体での迅速で確実なエンタープライズスケールデリバリーを可能にします。\n\n> GitLab + TCSの詳細については、ecosystem@gitlab.comまでお問い合わせください。",[674,23],"AI/ML","2026-02-26",{"featured":677,"template":13,"slug":678},false,"agentic-sdlc-gitlab-and-tcs-deliver-intelligent-orchestration-across-the-enterprise",{"content":680,"config":689},{"title":681,"description":682,"authors":683,"heroImage":685,"date":686,"body":687,"category":9,"tags":688},"エージェント型AIを自社の制御下で：セルフホスト対応Duo Agent Platformと自社モデル持ち込み（BYOM）","GitLab 18.9がセルフホスト対応Duo Agent Platformと自社モデル持ち込み（Bring Your Own Model）サポートにより、規制対応エンタープライズにガバナンスを備えたエージェント型AIを提供する方法をご紹介します。",[684],"Rebecca Carter","https://res.cloudinary.com/about-gitlab-com/image/upload/v1771438388/t6sts5qw4z8561gtlxiq.png","2026-02-19","規制産業に属する組織がAIによる自動化を進める上では、避けられない制約があります。データレジデンシー、ベンダー管理、ガバナンスはいずれも譲れない要件であり、多くの組織はすでに自社モデルに多大な投資を重ね、その運用方法と運用場所を厳格な承認プロセスで管理しています。\n\n[GitLab 18.9](https://about.gitlab.com/ja-jp/blog/gitlab-18-09-release/)では、こうしたエンタープライズのお客様が直面する重要な戦略的ギャップを埋める2つの機能を提供します。[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)を、最も厳格な規制環境でも本番運用できる、ガバナンス対応のAIコントロールプレーンへと進化させる機能です。\n\n## オンライン クラウドライセンス向けGitLab Duo Agent Platformセルフホスト版\nGitLab Duo Agent Platformを活用すると、エンジニアリングチームはAI駆動のフローを構築し、サービスのリファクタリングやCI/CDパイプラインの強化、脆弱性のトリアージといった一連のタスクを自動化できます。しかしこれまで、セルフホストモデルを使った本番環境での利用は、主にオフラインまたはアドオンライセンスを前提とした構成に限られており、厳格な規制下で事業を行うオンライン クラウド ライセンスのお客様には対応していませんでした。\n\nこのたび一般提供を開始した[オンライン クラウドライセンス向けセルフホスト版](https://docs.gitlab.com/ja-jp/subscriptions/subscription-add-ons/#gitlab-duo-agent-platform-self-hosted)は、[GitLabクレジット](https://docs.gitlab.com/ja-jp/subscriptions/gitlab_credits/)を基盤とした従量課金モデルを採用。エンタープライズが内部チャージバックや信頼性確保に求める、透明性の高い予測可能なメタリングを実現します。\n* **データレジデンシーと制御**：オンライン クラウドライセンスのまま、自社インフラまたは承認済みクラウド環境上のモデルを使って本番稼働が可能です。モデルの実行場所や推論トラフィックのルーティングを、承認済み環境の範囲内で管理できます。\n* **コストの透明性とチャージバック**：GitLabクレジットとリクエスト単位のメタリングにより、詳細なコスト把握が可能になります。正確な内部チャージバックや規制対応のレポーティングに不可欠な仕組みです。\n* **導入加速**：金融サービス、政府機関、重要インフラなど、外部AIベンダーへのデータ送信が認められないセクターにおける、エージェント型AI導入の大きな障壁を取り除きます。\nGitLab 18.9から、Duo Agent Platformがオンライン クラウドライセンスの正式対応機能となります。\n\n## Bring Your Own Model（BYOM）/自分のモデルを持ち込む\nオーケストレーションレイヤーのセルフホスト化は、あくまでも出発点です。規制対応を求められるお客様の多くは、すでに自社モデルに相当な投資をしています。ドメイン特化型のLLM、データ主権のためのリージョン内またはエアギャップ環境へのデプロイ、自社のリスク方針に基づいて開発されたクローズドソースの社内モデルなど、その形は様々です。\n\n**Bring Your Own Model**（BYOM）は、GitLab Duo Agent Platformの柔軟性をさらに拡げる機能です。管理者は[GitLab AIゲートウェイ](https://docs.gitlab.com/ja-jp/administration/gitlab_duo/gateway/)を通じて、自社で開発、調達、承認したモデルをそのままGitLab Duo Agent Platformに接続して活用できます。外部ベンダーのモデルに依存することなく、モデルの選択と管理権限は完全にお客様の手に委ねられます。\n* **統合とガバナンス**：BYOMモデル（お客様が持ち込んだモデル）は、GitLabのAIコントロールプレーン上でGitLab管理モデルと同等のエンタープライズ対応オプションとして扱われます。自社承認済みのモデルを、GitLab環境にシームレスに組み込むことができます。\n* **詳細なマッピング**：AIゲートウェイへの登録後、各モデルを特定のDuo Agent Platformフローや機能に紐づけることができます。どのエージェントやフローがどのモデルを使うか、きめ細かな制御が可能です。\nなお、モデルの検証、パフォーマンス評価、リスク管理の責任は管理者が担います。互換性、性能、リスク評価は、導入するモデルを選んだ側の責任となります。\n\nこれら2つの機能を組み合わせることで、エンタープライズのエンジニアリングリーダーはエージェント型AIを包括的に制御できるようになります。乱立するポイントソリューションや、管理不在のいわば野放しのAIツールを置き換え、エージェント型AIを一元管理する単一のガバナンス対応コントロールプレーンが手に入ります。自社で開発、調達、承認したモデルをそのまま持ち込みながら、強固なガバナンスも確保できる、すでに信頼しているDevSecOpsプラットフォームの中でそれを実現できる、これが規制対応組織の求めていた答えです。\n\n> GitLab Duo Agent Platformにご興味のある方は、[お問い合わせいただくか、今すぐ無料トライアルにお申し込みください](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)。\n\n-----------\n\n_本ブログには、1933年証券法第27A条（改正版）および1934年証券取引所法第21E条に定める「将来の見通しに関する記述」が含まれています。これらの記述に反映されている期待は合理的と考えていますが、実際の結果や成果が大きく異なる可能性のある既知/未知のリスク、不確実性、前提条件、その他の要因が存在します。これらのリスクおよびその他の要因の詳細は、SECへの提出書類における「リスク要因」の項目をご参照ください。法律で義務付けられている場合を除き、本ブログ投稿の公開日以降にこれらの記述を更新または修正する義務を負いません。_",[674,23,25],{"featured":12,"template":13,"slug":690},"agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom",{"content":692,"config":701},{"title":693,"description":694,"authors":695,"heroImage":697,"date":698,"body":699,"category":9,"tags":700},"GitLab Duo Agent Platformの正式版リリースを発表","ソフトウェアライフサイクル全体におけるエージェント型AIが、コーディングの高速化をイノベーションサイクルの加速へと変える仕組みをご紹介します。",[696],"Bill Staples","https://res.cloudinary.com/about-gitlab-com/image/upload/v1768314192/llizjeumcduj2enqpdi4.png","2026-01-15","GitLab Duo Agent Platformの正式版リリースを発表できることを大変うれしく思います。これはGitLab、お客様、そして業界全体にとって重要な節目です。ソフトウェア開発ライフサイクル全体にエージェント型AIを導入するというビジョンを実現する最初の一歩となります。\n\nAIツールは、デベロッパーがコードを書く能力を急速に向上させており、場合によっては生産性が10倍向上したという報告もあります。しかし残念ながら、デベロッパーの時間のうちコードを書くことに費やされるのは約20%に過ぎないため、AIによって得られるイノベーション速度と提供の全体的な向上は段階的なものにとどまります。これはソフトウェア提供における[AIパラドックス](https://about.gitlab.com/press/releases/2025-11-10-gitlab-survey-reveals-the-ai-paradox/)としてよく知られています。\n\nさらに、多くのチームでは、コード作成の速度が上がったことで、コードレビュー、セキュリティ脆弱性、コンプライアンスチェック、下流のバグ修正など、新たなボトルネックが生じています。\n\nGitLab Duo Agent Platformは、ソフトウェアライフサイクル全体でインテリジェントなオーケストレーションとエージェント型AI自動化を実現することで、AIパラドックスに対処します。\n\n詳しくは以下の動画をご覧いただき、さらに詳細は下記をお読みください。\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1154785472?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"18.8 Release Video V2\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> :bulb: 2月10日のGitLab Transcendにご参加いただき、エージェント型AIがソフトウェア提供をどのように変革するかをご覧ください。お客様の事例を聞き、独自のモダナイゼーションの取り組みを開始する方法をご確認ください。[今すぐ登録](https://about.gitlab.com/events/transcend/virtual/)\n\nまた、GitLab PremiumおよびUltimateサブスクリプションをご利用中のお客様に、追加費用なしでユーザーあたりそれぞれ12ドルおよび24ドルのGitLabクレジットを付与いたします。\\*これらのクレジットは毎月更新され、GitLab Duo Agent Platformのすべての機能をご利用いただけます。\n\nGitLabクレジットの仕組みを簡単に説明します。GitLabクレジットは、GitLabの使用量ベースの製品に使用される仮想通貨です。GitLab Duo Agent Platformの使用量は、上記の含まれるクレジットから消費されます。その後、組織全体で共有クレジットプールへのコミットメントを決定するか、オンデマンドで月単位でお支払いいただくことができます。詳細については、[GitLabクレジットの紹介記事](https://about.gitlab.com/blog/introducing-gitlab-credits/)をご覧ください。\n\nGitLab Duo ProまたはDuo Enterpriseサブスクリプションをご利用のお客様は、引き続きこれらの製品をご利用いただくか、いつでもDuo Agent Platformに移行していただけます。Duo Enterpriseの契約残高は、いつでもGitLabクレジットに変換できます。詳細については、GitLab担当者にお問い合わせください。\n\n本日からお試しいただける機能とユースケースをご紹介します。\n\n### 人間とエージェントが協働するための統合エクスペリエンス\n\n[GitLab Duo Agent Platform](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/?utm_source=chatgpt.com)は、人間とAIエージェントがGitLab内でシームレスに統合できるように設計された、統一されたユーザーエクスペリエンスを提供します。デベロッパーとそのチームは、ほぼすべてのページでDuo Agentic Chatを利用し、コンテキストに応じた質問をしたり、非同期エージェントセッションをフォローしたり、イシュー、マージリクエスト、パイプラインアクティビティなどの使い慣れたワークフロー内でエージェントとやり取りしたりできます。これにより、AIのアクションが透明になり、日常業務を通じて簡単にガイドできるようになります。\n\n### Agentic Chat:インテリジェントでコンテキスト認識型のアシスタンス\n\n[Gitlab Duo Agentic Chat](https://docs.gitlab.com/ja-jp/user/gitlab_duo_chat/agentic_chat/)は、GitLab Web UIおよびIDEで真のマルチステップ推論を実現し、イシュー、マージリクエスト、パイプライン、セキュリティ調査結果などからのライフサイクル全体のコンテキストを活用します。以前リリースされたDuo Chatをベースに、Agentic Chatはユーザーに代わって自律的にアクションを実行し、複雑な質問により包括的に答えることができます。ソフトウェアチームの各メンバーに、オンボーディング、コード品質、提供速度の向上に役立つ、正確でコンテキスト認識型のガイダンスを提供します。\n\nGitLab Duo Agentic Chatは、デベロッパーとAIの協働を可能にする数多くの[ユースケース](https://about.gitlab.com/gitlab-duo/prompt-library/)をサポートしています。開始方法の詳細については、[「GitLab Duo Agent Platform完全ガイド」](https://about.gitlab.com/blog/gitlab-duo-agent-platform-complete-getting-started-guide/)をご覧いただき、こちらの[拡張中の推奨プロンプト集](https://about.gitlab.com/gitlab-duo/prompt-library/)もご確認ください。\n\n* **分析**\n  Web UIでは、Agentic Chatはイシュー、エピック、マージリクエストを作成し、要約を提供し、重要な発見を強調し、特定のプロジェクト、イシュー、エピック、マージリクエストなどからのリアルタイムコンテキストに基づいた実用的なガイダンスを提供できます。Agentic Chatは、デベロッパーがIDEまたはGitLabリポジトリ内で、馴染みのないコード、依存関係、アーキテクチャ、プロジェクト構造を理解するのに役立ちます。\n\n\n* **コード**\n  Agentic Chatは、幅広い言語とフレームワークにわたって、コード、設定、Infrastructure as Codeを生成できます。バグの修正、アーキテクチャとコードのモダナイゼーション、テストの生成、より迅速なオンボーディングのためのドキュメント作成を支援します。デベロッパーの手元で、Agentic ChatはVS Code、JetBrains IDE、Cursor、Windsurfにおける協働パートナーであり、オプションのユーザーレベルおよびワークスペースレベルのルールで応答をカスタマイズできます。\n\n* **CI/CD**\n  Agentic Chatは、既存のパイプラインをより深く理解し、設定し、トラブルシューティングしたり、新しいパイプラインをゼロから作成したりするのに役立ちます。\n\n* **セキュリティ**\n  Agentic Chatは、脆弱性を説明し、到達可能性に基づいて問題に優先順位を付け、時間を節約できる修正を推奨します。\n\n## エージェント:オンデマンドで協働する専門家\n\nGitLab Duo Agent Platformにより、デベロッパーは専門のエージェントにタスクを委任できます。このプラットフォームは、基本エージェント、カスタムエージェント、外部エージェントの独自の組み合わせを提供し、すべてGitLabユーザーエクスペリエンスにシームレスに統合されているため、あらゆるタスクに適したエージェントを簡単に選択できます。\n\n**[基本エージェント](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/agents/foundational_agents/)**は、GitLabの専門家によって事前に構築されており、ソフトウェア提供サイクルで最も複雑なタスクを処理する準備が整っています。以下の基本エージェントは、GitLab Duo Agent Platformの正式版の一部として含まれており、その他のエージェントは現在ベータ版で、近日中に提供予定です。\n\n* [**プランナーエージェント**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/agents/foundational_agents/planner/)は、チームがGitLab内で直接作業を構造化、優先順位付け、分割するのを支援し、計画をより明確に、より迅速に、より実行しやすくします。\n\n* [**セキュリティ分析エージェント**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/)は、脆弱性とセキュリティシグナルをレビューし、その影響を平易な言葉で説明し、チームが最初に対処すべきことを理解するのを支援します。\n\n[**カスタムエージェント**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/ai_catalog/)は、AIカタログを使用して構築できます。AIカタログは、チームがカスタムエージェントとフローを作成、公開、管理、共有するための中央リポジトリです。チームは、エンジニアリングチームの働き方を再現し、エンジニアが使用するエンジニアリング基準とガバナンスの仕組みを使用して問題に取り組むために、特定のコンテキストと機能を持つエージェントとフローを作成できます。\n\n[**外部エージェント**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/agents/external/)は、GitLabにシームレスに統合されており、AnthropicのClaude CodeやOpenAIのCodex CLIなど、最高クラスのAIツールが含まれています。ユーザーは、コード生成、コードレビュー、分析などのユースケースで、透明性の高いセキュリティと組み込みLLMサブスクリプションにより、これらのツールをGitLabからネイティブにアクセスできます。\n\nこれらのアプローチにより、チームは専門エージェント、組織固有の自動化、外部AIツールの統合など、エージェント型AIをどのように採用するかについて柔軟性を得ることができます。すべて単一のガバナンスされたプラットフォーム内で実現します。\n\n## フロー:複数ステップの作業を反復可能でガイド付きの進捗へ\n\nフローは、複数のエージェントワークフローを使用して複雑なタスクを最初から最後まで自動化します。\n\nエンジニアリングチームは、正式版に含まれるいくつかのフローを構築しており、さらに多くのフローが提供予定です。\n\n* [**デベロッパー(Issue to MR)**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/issue_to_mr/)フローは、明確に定義されたイシューから構造化されたマージリクエストを作成し、チームがすぐに作業を開始できるようにします。\n\n* [**GitLab CI/CD変換**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/)フローは、チームが手動で書き直すことなくパイプライン設定を移行またはモダナイズするのに役立ちます。\n\n* [**CI/CDパイプライン修復**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/)フローは、障害を分析し、考えられる原因を特定し、推奨される変更を準備します。\n\n* [**コードレビュー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/code_review/)フローは、コード変更、マージリクエストコメントなどを分析し、AIネイティブの分析とフィードバックでコードレビューを効率化します。\n\n* [**ソフトウェア開発**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/software_development/)フローは、日常的な開発とレビュー段階を通じて作業をガイドします。\n\n## MCP Client:GitLab Duo Agent Platformをチームが既に使用しているツールに接続\n\n[MCPクライアント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)により、IDE内のGitLab Duo Agent PlatformがJira、Slack、Confluence、その他のMCP対応ツールなどの外部システムに安全に接続し、コンテキストを取り込み、DevSecOpsツールチェーン全体でアクションを実行できるようになります。\n\n個々のツール内でAIアシスタンスがサイロ化されるのではなく、MCPクライアントはGitLab Duo Agent Platformが、計画、協働、実行が実際に行われるシステム全体を理解し、動作することを可能にします。これにより、手動でのコンテキスト切り替えが削減され、チームが実際に作業する方法を反映した、より完全なエンドツーエンドのAI駆動ワークフローが実現します。\n\n正式版に含まれる機能:\n\n* Jira、Confluence、Slack、Playwright、GrafanaなどのMCP対応外部システムへの接続\n* ワークスペースレベルおよびユーザーレベルでの設定\n* MCPの使用を有効化または制限するためのグループレベルの制御\n* ツールアクセスのユーザー承認フロー\n* IDE拡張機能でのAgentic Chat全体でのサポート\n\n現在ベータ版のGitLab MCPサーバー機能にさらに多くの機能を追加し、今後のリリースで正式版にする予定です。\n\n## チームとワークロードに適したモデルを選択\n\nGitLab Duo Agent Platformは、チームがプライバシー、セキュリティ、コンプライアンスのニーズに合わせてプラットフォームを調整できる柔軟なモデル選択フレームワークに基づいて構築されています。GitLabは各機能に最適なLLMをデフォルトで設定していますが、管理者はOpenAI GPT-5バリアント、Mistral、Meta Llama、Anthropic Claudeなどのサポートされているモデルから選択することもできます。これにより、チームは組織の基準に基づいて、各特定のユースケースでチャット、コーディングタスク、エージェントインタラクションに何を使用するかについて、より正確な制御と柔軟性を得ることができます。サポートされているモデルの完全なリストとモデル選択設定の詳細については、ドキュメントの[モデル選択](https://docs.gitlab.com/ja-jp/administration/gitlab_duo/model_selection/)セクションをご覧ください。\n\n### ガバナンス、可視性、デプロイの柔軟性\n\nGitLab Duo Agent Platformは、組織がAIを責任を持って採用するために必要な制御と透明性を提供すると同時に、さまざまな環境で機能する柔軟なデプロイオプションを提供します。\n\n正式版に含まれる機能:\n\n* **すべてのプラットフォームで利用可能:**GitLab.com、GitLab Self-Managed、GitLab DedicatedでGitLab 18.8リリースサイクルの一部として利用できます。\n\n* **ガバナンスと可視性:**チームは、エージェントがどのように使用され、どのようなアクションを実行し、作業にどのように貢献しているかを確認できます。使用状況とアクティビティの詳細により、リーダーは採用状況を把握し、影響を測定し、AIが適切に使用されていることを確認できます。これらの制御により、自信を持って大規模にAIを展開しやすくなります。\n\n* **グループベースのアクセス制御:**管理者は、どのユーザーがGitLab Duo Agent Platform機能にアクセスできるかを管理する名前空間レベルのルールを定義でき、組織全体での即時有効化から段階的なロールアウトまで、柔軟な採用をサポートします。LDAPおよびSAML統合により、手動設定なしで大規模なガバナンスを実現できます。\n\n* **モデル選択とセルフホスト型オプション:**LLM選択は、GitLab.com、Self-Managed、Dedicatedのすべての正式版機能で利用できます。トップレベルの名前空間所有者がモデルを選択し、サブグループはそれらの設定を自動的に継承します。より多くの制御が必要な組織のために、プラットフォームはGitLab Self-Managedデプロイメント向けのセルフホスト型モデルをサポートしています。\n\nGitLab Duo Agent Platformの実際の動作をご覧ください:\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1154786333?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"18.8 Demo\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## GitLabの最新情報を入手\n\n最新の機能、セキュリティアップデート、パフォーマンス向上を確実に入手するために、GitLabインスタンスを最新の状態に保つことをお勧めします。以下のリソースは、アップグレードの計画と完了に役立ちます。\n\n* [アップグレードパスツール](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) – 現在のバージョンを入力すると、インスタンスの正確なアップグレード手順が表示されます\n* [アップグレードに関するドキュメント](https://docs.gitlab.com/ja-jp/update/upgrade_paths/) – サポートされている各バージョンの詳細なガイド(要件、ステップバイステップの手順、ベストプラクティスを含む)\n\n定期的にアップグレードすることで、チームが最新のGitLab機能を活用し、安全でサポートされた状態を維持できます。\n\nハンズオフアプローチをお望みの組織には、[GitLabのManaged Maintenanceサービス](https://content.gitlab.com/viewer/d1fe944dddb06394e6187f0028f010ad#1)をご検討ください。Managed Maintenanceは、チームがイノベーションに集中し続ける一方で、GitLabの専門家がSelf-Managedインスタンスの確実なアップグレード、セキュリティ確保、DevSecOpsリーダーシップの準備を維持するのを支援します。詳細については、アカウントマネージャーにお問い合わせください。\n\n---\n\n\\* GitLab PremiumおよびUltimateサブスクリプションをご利用中のお客様には、ユーザーあたりそれぞれ12ドルおよび24ドルの含まれるクレジットが自動的に提供され、毎月リセットされます。これらのクレジットは期間限定で提供され、変更される可能性があります([プロモーション規約を参照](https://about.gitlab.com/pricing/terms/))。\n\n*このブログ投稿には、改正1933年証券法第27A条および1934年証券取引法第21E条の意味における「将来予想に関する記述」が含まれています。これらの記述に反映された期待は合理的であると考えていますが、実際の結果または成果が大きく異なる可能性のある既知および未知のリスク、不確実性、仮定、その他の要因の影響を受けます。これらのリスクおよびその他の要因の詳細については、SECへの提出書類の「リスク要因」の項をご参照ください。このブログ投稿の日付以降、法律で義務付けられている場合を除き、これらの記述を更新または改訂する義務は負いません。*",[674,23,25],{"featured":12,"template":13,"slug":702},"gitlab-duo-agent-platform-is-generally-available",{"promotions":704},[705,718,730],{"id":706,"categories":707,"header":708,"text":709,"button":710,"image":715},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":711,"config":712},"Get your AI maturity score",{"href":713,"dataGaName":714,"dataGaLocation":239},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":716},{"src":717},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":719,"categories":720,"header":722,"text":709,"button":723,"image":727},"devops-modernization",[23,721],"devsecops","Are you just managing tools or shipping innovation?",{"text":724,"config":725},"Get your DevOps maturity score",{"href":726,"dataGaName":714,"dataGaLocation":239},"/assessments/devops-modernization-assessment/",{"config":728},{"src":729},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":731,"categories":732,"header":734,"text":709,"button":735,"image":739},"security-modernization",[733],"security","Are you trading speed for security?",{"text":736,"config":737},"Get your security maturity score",{"href":738,"dataGaName":714,"dataGaLocation":239},"/assessments/security-modernization-assessment/",{"config":740},{"src":741},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":743,"blurb":744,"button":745,"secondaryButton":749},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":42,"config":746},{"href":747,"dataGaName":45,"dataGaLocation":748},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":47,"config":750},{"href":49,"dataGaName":50,"dataGaLocation":748},1772652107510]