[{"data":1,"prerenderedAt":809},["ShallowReactive",2],{"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":3,"navigation-ja-jp":33,"banner-ja-jp":444,"footer-ja-jp":454,"blog-post-authors-ja-jp-Regnard Raquedan":690,"blog-related-posts-ja-jp-fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab":704,"blog-promotions-ja-jp":748,"next-steps-ja-jp":800},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":24,"isFeatured":11,"meta":25,"navigation":26,"path":27,"publishedDate":20,"seo":28,"stem":30,"tagSlugs":31,"__hash__":32},"blogPosts/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","Fast And Secure Ai Agent Deployment To Google Cloud With Gitlab",[7],"regnard-raquedan",null,"ai-ml",{"featured":11,"template":12,"slug":13},false,"BlogPost","fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"body":21,"category":9,"tags":22},"GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ","デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。",[18],"Regnard Raquedan","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","2025-07-07","[自律型AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)の登場により、インテリジェントなアプリケーションの構築方法は大きく変わりつつありますが、\nAIエージェントを安全かつ効率的にデプロイするのは簡単ではありません。\nこのチュートリアルでは、\nGoogleのAgent Development Kit（[ADK](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-development-kit/quickstart)）で構築したAIエージェントを、\n[GitLabのネイティブインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)と[CI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使って\nCloud Runにデプロイする方法を\n学びます。\n\n## AIエージェントの基礎知識と注目される理由\n\n自律型AIは、人工知能の分野における大きな進化と言えるでしょう。従来の生成AIツールが常に人間からの指示を必要とするのに対し、AIエージェントは高度な言語モデルや自然言語処理を活用して、自律的に行動を起こします。自律型AIはリクエストを理解し、意思決定を行い、複数のステップからなる計画を実行して、目標を自ら達成できます。\n\nこのチュートリアルでは、GoogleのADKを使用します。ADKは、AIエージェントの開発とデプロイに対応した、柔軟でモジュール化されたフレームワークです。GeminiやGoogleのエコシステム向けに最適化されていますが、モデルやデプロイ方法に依存せず、他のフレームワークとの互換性も考慮して設計されています。\n\n## デモアプリの紹介：Canada City Advisor\n\nデプロイプロセスを実演するための実用的な例として「Canada City Advisor」を使います。ユーザーの希望や条件に基づいて、理想的なカナダの都市を提案するAIエージェントです。\n\nその仕組みは以下の通りです。\n\n* ユーザーが予算条件やライフスタイルの希望を入力します。\n* ルートエージェントが以下2つのサブエージェントを統括します。\n\n  * 経済的な制約を評価する予算分析エージェント。カナダ住宅金融公社から取得したデータを使用します。\n  * ユーザーの希望に合う都市を提案するライフスタイル分析エージェント。[Open-Meteo](https://open-meteo.com/)から取得した適切な都市情報に基づく天気情報サービスも提供します。\n* システムがユーザーに合った都市の候補を生成します。\n\n異なる専門性を持つAIエージェントが連動して複雑な問題を解決するこのマルチエージェント構成により、自律型AIの強みが活かされます。サブエージェントは、ルートエージェントが予算やライフスタイルの分析が必要と判断したときにのみ呼び出されます。\n\n![自律型AIを活用したデモアプリ開発のマルチエージェント構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1751576568/obgxpxvlnxtzifddrrz1.png)\n\n## 前提条件\n\n始める前に、以下のものが準備できていることを確認してください。\n\n* 以下のAPIが有効になっているGoogle Cloudプロジェクト\n\n  * Cloud Run API  \n  * Artifact Registry API  \n  * Vertex AI API  \n* ソースコード用のGitLabプロジェクト\n* GitLabとGoogle Cloudの両方に対する適切な権限\n\n**ステップ1：ワークロードアイデンティティフェデレーションによるIAMインテグレーションを設定する**\n\n最初のステップでは、[Workload Identity連携](https://cloud.google.com/iam/docs/workload-identity-federation)を使用して、GitLabとGoogle Cloudの間で安全なキーレス認証を確立します。これにより、サービスアカウントキーが不要となり、セキュリティが向上します。\n\nGitLabプロジェクトでの手順は以下のとおりです。\n\n1. **設定 > インテグレーション > Google Cloud IAM**の順に移動します。\n2. 以下の情報を入力します。\n\n   * **プロジェクトID**：使用しているGoogle CloudプロジェクトのID\n   * **プロジェクト番号**：Google Cloudコンソールで確認できるプロジェクト番号\n     Workload Identityプールの固有識別子\n   * **プロバイダーID**：アイデンティティプロバイダーの固有識別子\n\nGitLabがスクリプトを生成します。このスクリプトをコピーして、Google Cloud Shellで実行し、Workload Identity連携を作成します。\n\n**ステップ2：Google Artifact Registryのインテグレーションを設定する**\n\n次に、コンテナイメージを保存するGoogle Artifact Registryとの接続を設定します。\n\n1. GitLabで、**設定 > インテグレーション > Google Artifact Registry**の順に移動します。\n2. 以下の情報を入力します。\n\n   * **Google CloudプロジェクトID**：ステップ1と同じプロジェクトID\n   * **リポジトリ名**：既存のArtifact Registryリポジトリの名前\n   * **場所**：リポジトリが存在するリージョン\n\n**重要**：リポジトリはすでにArtifact Registryに存在している必要があります。この設定操作では、GitLabが新しいリポジトリを自動で作成することはありません。\n\nGitLabは、必要な権限を設定するためのコマンドを生成します。これをGoogle Cloud Shellで実行します。\n\nさらに、Cloud Runへのデプロイのために、サービスプリンシパルに以下のロールを追加します。\n\n* `roles/run.admin`\n* `roles/iam.serviceAccountUser`\n* `roles/cloudbuild.builds.editor`\n\n以下のgcloudコマンドを使用して、これらのロールを追加できます。\n\n```shell\nGCP_PROJECT_ID=\"\u003Cyour-project-id>\" #replace\n\nGCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\" #replace\n\nGCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\" #replace\n\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/run.admin'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/iam.serviceAccountUser'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/cloudbuild.builds.editor'\n\n```\n\n**ステップ3：CI/CDパイプラインを作成する**\n\nここからが本番です。デプロイ用のパイプラインを構築しましょう！GitLabのCI/CDコンポーネントを使用すると、非常に簡単に作成できます。\n\nプロジェクトのルートに `.gitlab-ci.yml` ファイルを作成します。\n\n```yaml\nstages:\n  - build\n  - test\n  - upload\n  - deploy\n\nvariables:\n  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n\nbuild:\n  image: docker:24.0.5\n  stage: build\n  services:\n    - docker:24.0.5-dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker build -t $GITLAB_IMAGE .\n    - docker push $GITLAB_IMAGE\n\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n    inputs:\n      stage: upload\n      source: $GITLAB_IMAGE\n      target: $AR_IMAGE\n  - component: gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n    inputs:\n      stage: deploy\n      project_id: \"\u003Cyour-project-id>\" #replace\n      service: \"canadian-city\"\n      region: \"us-central1\"\n      image: $AR_IMAGE\n\n```\n\nこのパイプラインは、以下の4つのステージで構成されています。\n\n1. **Build**：AIエージェントを使用してDockerコンテナを作成します\n2. **Test**：セキュリティスキャン（コンテナスキャン、依存関係スキャン、SAST）を実行します\n3. **Upload**：コンテナをArtifact Registryにプッシュします\n4. **Deploy**：Cloud Runにデプロイします\n\n[GitLabのCI/CDコンポーネント](https://docs.gitlab.com/ja-jp/ci/components/)を使う大きなメリットは、いくつかのパラメーターを指定するだけで、認証やデプロイの複雑な処理をすべてコンポーネント側が自動で行ってくれる点です。\n\n**ステップ4：デプロイとテスト**\n\nすべての設定が完了したら、いよいよデプロイの実行です。\n\n1. コードと `.gitlab-ci.yml` をGitLabリポジトリにコミットします。\n2. パイプラインは自動的に実行されます。\n3. GitLabのCI/CDインターフェースでパイプラインの進行状況を確認します。\n4. 完了後、Google CloudコンソールでCloud RunのURLを確認できます。\n\n各ステージが順番に実行される様子を確認できます。\n\n* Buildステージでコンテナが作成されます。\n* Testステージで包括的なセキュリティスキャンが実行されます。\n* UploadステージでArtifact Registryにプッシュされます。\n* DeployステージでCloud Runのサービスが作成または更新されます。\n\n## セキュリティ上のメリット\n\nこの手法には、以下のようなセキュリティ上の利点があります。\n\n* **長期間有効な認証情報が不要**：Workload identity連携により、サービスアカウントキーが不要になります。\n* **自動セキュリティスキャン**：すべてのデプロイで脆弱性がスキャンされます。\n* **監査証跡**：誰が何をいつデプロイしたのかを完全に可視化します。\n* **最小権限の原則**：きめ細かなIAMロールによりアクセスが制限されます。\n\n## まとめ\n\nGitLabのセキュリティ機能とGoogle Cloudの強力なAIおよびサーバーレスプラットフォームを組み合わせることで、安全でスケーラブルなAIエージェントをデプロイできます。GitLabとGoogle Cloudのインテグレーションによって、従来こうしたデプロイに伴っていた複雑さの多くが解消されます。\n\n> このチュートリアルの[サンプルコード\n> 全文](https://gitlab.com/gitlab-partners-public/google-cloud/demos/ai-agent-deployment)を使えば、\n> すぐに始められます。GitLabをまだご利用でない場合は、ぜひ[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)でDevSecOpsプラットフォームをご体験ください。\n\n\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)*\n\n*（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n",[23],"google","yml",{},true,"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"noIndex":11,"title":15,"description":16,"ogImage":29},"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",[23],"anyUvtyXuR9h40JwEYq1YYx0rJh_q1Y8OKt4sa8U0P8",{"data":34},{"logo":35,"freeTrial":40,"sales":45,"login":50,"items":55,"search":364,"minimal":397,"duo":414,"switchNav":423,"pricingDeployment":434},{"config":36},{"href":37,"dataGaName":38,"dataGaLocation":39},"/ja-jp/","gitlab logo","header",{"text":41,"config":42},"無料トライアルを開始",{"href":43,"dataGaName":44,"dataGaLocation":39},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":46,"config":47},"お問い合わせ",{"href":48,"dataGaName":49,"dataGaLocation":39},"/ja-jp/sales/","sales",{"text":51,"config":52},"サインイン",{"href":53,"dataGaName":54,"dataGaLocation":39},"https://gitlab.com/users/sign_in/","sign in",[56,83,180,185,286,346],{"text":57,"config":58,"cards":60},"プラットフォーム",{"dataNavLevelOne":59},"platform",[61,67,75],{"title":57,"description":62,"link":63},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":64,"config":65},"プラットフォームを探索",{"href":66,"dataGaName":59,"dataGaLocation":39},"/ja-jp/platform/",{"title":68,"description":69,"link":70},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":71,"config":72},"GitLab Duoのご紹介",{"href":73,"dataGaName":74,"dataGaLocation":39},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":76,"description":77,"link":78},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":79,"config":80},"詳細はこちら",{"href":81,"dataGaName":82,"dataGaLocation":39},"/ja-jp/why-gitlab/","why gitlab",{"text":84,"left":26,"config":85,"link":87,"lists":91,"footer":162},"製品",{"dataNavLevelOne":86},"solutions",{"text":88,"config":89},"すべてのソリューションを表示",{"href":90,"dataGaName":86,"dataGaLocation":39},"/ja-jp/solutions/",[92,117,140],{"title":93,"description":94,"link":95,"items":100},"自動化","CI/CDと自動化でデプロイを加速",{"config":96},{"icon":97,"href":98,"dataGaName":99,"dataGaLocation":39},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[101,105,108,113],{"text":102,"config":103},"CI/CD",{"href":104,"dataGaLocation":39,"dataGaName":102},"/ja-jp/solutions/continuous-integration/",{"text":68,"config":106},{"href":73,"dataGaLocation":39,"dataGaName":107},"gitlab duo agent platform - product menu",{"text":109,"config":110},"ソースコード管理",{"href":111,"dataGaLocation":39,"dataGaName":112},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":114,"config":115},"自動化されたソフトウェアデリバリー",{"href":98,"dataGaLocation":39,"dataGaName":116},"Automated software delivery",{"title":118,"description":119,"link":120,"items":125},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":121},{"href":122,"dataGaName":123,"dataGaLocation":39,"icon":124},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[126,130,135],{"text":127,"config":128},"アプリケーションセキュリティテスト",{"href":122,"dataGaName":129,"dataGaLocation":39},"Application security testing",{"text":131,"config":132},"ソフトウェアサプライチェーンの安全性",{"href":133,"dataGaLocation":39,"dataGaName":134},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":136,"config":137},"ソフトウェアコンプライアンス",{"href":138,"dataGaName":139,"dataGaLocation":39},"/ja-jp/solutions/software-compliance/","software compliance",{"title":141,"link":142,"items":147},"測定",{"config":143},{"icon":144,"href":145,"dataGaName":146,"dataGaLocation":39},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[148,152,157],{"text":149,"config":150},"可視性と測定",{"href":145,"dataGaLocation":39,"dataGaName":151},"Visibility and Measurement",{"text":153,"config":154},"バリューストリーム管理",{"href":155,"dataGaLocation":39,"dataGaName":156},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":158,"config":159},"分析とインサイト",{"href":160,"dataGaLocation":39,"dataGaName":161},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":163,"items":164},"GitLabが活躍する場所",[165,170,175],{"text":166,"config":167},"大企業",{"href":168,"dataGaLocation":39,"dataGaName":169},"/ja-jp/enterprise/","enterprise",{"text":171,"config":172},"スモールビジネス",{"href":173,"dataGaLocation":39,"dataGaName":174},"/ja-jp/small-business/","small business",{"text":176,"config":177},"公共部門",{"href":178,"dataGaLocation":39,"dataGaName":179},"/ja-jp/solutions/public-sector/","public sector",{"text":181,"config":182},"価格",{"href":183,"dataGaName":184,"dataGaLocation":39,"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":39},"/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":39},"/ja-jp/install/","install",{"text":203,"config":204},"クイックスタートガイド",{"href":205,"dataGaName":206,"dataGaLocation":39},"/ja-jp/get-started/","quick setup checklists",{"text":208,"config":209},"学ぶ",{"href":210,"dataGaLocation":39,"dataGaName":211},"https://university.gitlab.com/","learn",{"text":213,"config":214},"製品ドキュメント",{"href":215,"dataGaName":216,"dataGaLocation":39},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":218,"config":219},"ベストプラクティスビデオ",{"href":220,"dataGaName":221,"dataGaLocation":39},"/ja-jp/getting-started-videos/","best practice videos",{"text":223,"config":224},"インテグレーション",{"href":225,"dataGaName":226,"dataGaLocation":39},"/ja-jp/integrations/","integrations",{"title":228,"items":229},"検索する",[230,235,240],{"text":231,"config":232},"お客様成功事例",{"href":233,"dataGaName":234,"dataGaLocation":39},"/ja-jp/customers/","customer success stories",{"text":236,"config":237},"ブログ",{"href":238,"dataGaName":239,"dataGaLocation":39},"/ja-jp/blog/","blog",{"text":241,"config":242},"リモート",{"href":243,"dataGaName":244,"dataGaLocation":39},"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":39},"/ja-jp/services/","services",{"text":254,"config":255},"コミュニティ",{"href":256,"dataGaName":257,"dataGaLocation":39},"/community/","community",{"text":259,"config":260},"フォーラム",{"href":261,"dataGaName":262,"dataGaLocation":39},"https://forum.gitlab.com/","forum",{"text":264,"config":265},"イベント",{"href":266,"dataGaName":267,"dataGaLocation":39},"/events/","events",{"text":269,"config":270},"パートナー",{"href":271,"dataGaName":272,"dataGaLocation":39},"/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":39},"/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":39},"/ja-jp/company/","about",{"text":299,"config":300,"footerGa":303},"採用情報",{"href":301,"dataGaName":302,"dataGaLocation":39},"/jobs/","jobs",{"dataGaName":302},{"text":264,"config":305},{"href":266,"dataGaName":267,"dataGaLocation":39},{"text":307,"config":308},"経営陣",{"href":309,"dataGaName":310,"dataGaLocation":39},"/company/team/e-group/","leadership",{"text":312,"config":313},"チーム",{"href":314,"dataGaName":315,"dataGaLocation":39},"/company/team/","team",{"text":317,"config":318},"ハンドブック",{"href":319,"dataGaName":320,"dataGaLocation":39},"https://handbook.gitlab.com/","handbook",{"text":322,"config":323},"投資家向け情報",{"href":324,"dataGaName":325,"dataGaLocation":39},"https://ir.gitlab.com/","investor relations",{"text":327,"config":328},"トラストセンター",{"href":329,"dataGaName":330,"dataGaLocation":39},"/ja-jp/security/","trust center",{"text":332,"config":333},"AI Transparency Center",{"href":334,"dataGaName":335,"dataGaLocation":39},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":337,"config":338},"ニュースレター",{"href":339,"dataGaName":340,"dataGaLocation":39},"/company/contact/#contact-forms","newsletter",{"text":342,"config":343},"プレス",{"href":344,"dataGaName":345,"dataGaLocation":39},"/press/","press",{"text":46,"config":347,"lists":348},{"dataNavLevelOne":289},[349],{"items":350},[351,354,359],{"text":46,"config":352},{"href":48,"dataGaName":353,"dataGaLocation":39},"talk to sales",{"text":355,"config":356},"サポートを受ける",{"href":357,"dataGaName":358,"dataGaLocation":39},"https://support.gitlab.com","support portal",{"text":360,"config":361},"カスタマーポータル",{"href":362,"dataGaName":363,"dataGaLocation":39},"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":53,"dataGaName":371,"dataGaLocation":372},"search login","search",{"text":374,"default":375},"提案",[376,378,383,385,389,393],{"text":68,"config":377},{"href":73,"dataGaName":68,"dataGaLocation":372},{"text":379,"config":380},"コード提案（AI）",{"href":381,"dataGaName":382,"dataGaLocation":372},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":102,"config":384},{"href":104,"dataGaName":102,"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":81,"dataGaName":396,"dataGaLocation":372},"Why GitLab?",{"freeTrial":398,"mobileIcon":402,"desktopIcon":407,"secondaryButton":410},{"text":41,"config":399},{"href":400,"dataGaName":44,"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/get-started/","get started",{"freeTrial":415,"mobileIcon":419,"desktopIcon":421},{"text":416,"config":417},"GitLab Duoの詳細について",{"href":73,"dataGaName":418,"dataGaLocation":401},"gitlab duo",{"altText":403,"config":420},{"src":405,"dataGaName":406,"dataGaLocation":401},{"altText":403,"config":422},{"src":409,"dataGaName":406,"dataGaLocation":401},{"button":424,"mobileIcon":429,"desktopIcon":431},{"text":425,"config":426},"/switch",{"href":427,"dataGaName":428,"dataGaLocation":401},"#contact","switch",{"altText":403,"config":430},{"src":405,"dataGaName":406,"dataGaLocation":401},{"altText":403,"config":432},{"src":433,"dataGaName":406,"dataGaLocation":401},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":435,"mobileIcon":440,"desktopIcon":442},{"text":436,"config":437},"料金ページに戻る",{"href":183,"dataGaName":438,"dataGaLocation":401,"icon":439},"back to pricing","GoBack",{"altText":403,"config":441},{"src":405,"dataGaName":406,"dataGaLocation":401},{"altText":403,"config":443},{"src":409,"dataGaName":406,"dataGaLocation":401},{"title":445,"button":446,"config":451},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":447,"config":448},"GitLab Transcendを今すぐ視聴",{"href":449,"dataGaName":450,"dataGaLocation":39},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":452,"icon":453,"disabled":26},"release","AiStar",{"data":455},{"text":456,"source":457,"edit":463,"contribute":468,"config":473,"items":478,"minimal":681},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":458,"config":459},"ページのソースを表示",{"href":460,"dataGaName":461,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":464,"config":465},"このページを編集",{"href":466,"dataGaName":467,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":469,"config":470},"ご協力をお願いします",{"href":471,"dataGaName":472,"dataGaLocation":462},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":474,"facebook":475,"youtube":476,"linkedin":477},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[479,524,577,620,647],{"title":181,"links":480,"subMenu":495},[481,485,490],{"text":482,"config":483},"プランの表示",{"href":183,"dataGaName":484,"dataGaLocation":462},"view plans",{"text":486,"config":487},"Premiumを選ぶ理由",{"href":488,"dataGaName":489,"dataGaLocation":462},"/ja-jp/pricing/premium/","why premium",{"text":491,"config":492},"Ultimateを選ぶ理由",{"href":493,"dataGaName":494,"dataGaLocation":462},"/ja-jp/pricing/ultimate/","why ultimate",[496],{"title":46,"links":497},[498,500,502,504,509,514,519],{"text":46,"config":499},{"href":48,"dataGaName":49,"dataGaLocation":462},{"text":355,"config":501},{"href":357,"dataGaName":358,"dataGaLocation":462},{"text":360,"config":503},{"href":362,"dataGaName":363,"dataGaLocation":462},{"text":505,"config":506},"ステータス",{"href":507,"dataGaName":508,"dataGaLocation":462},"https://status.gitlab.com/","status",{"text":510,"config":511},"利用規約",{"href":512,"dataGaName":513,"dataGaLocation":462},"/terms/","terms of use",{"text":515,"config":516},"プライバシーに関する声明",{"href":517,"dataGaName":518,"dataGaLocation":462},"/ja-jp/privacy/","privacy statement",{"text":520,"config":521},"Cookie 優先設定",{"dataGaName":522,"dataGaLocation":462,"id":523,"isOneTrustButton":26},"cookie preferences","ot-sdk-btn",{"title":84,"links":525,"subMenu":534},[526,530],{"text":527,"config":528},"DevSecOpsプラットフォーム",{"href":66,"dataGaName":529,"dataGaLocation":462},"devsecops platform",{"text":531,"config":532},"AI支援開発",{"href":73,"dataGaName":533,"dataGaLocation":462},"ai-assisted development",[535],{"title":536,"links":537},"トピック",[538,542,547,552,557,562,567,572],{"text":102,"config":539},{"href":540,"dataGaName":541,"dataGaLocation":462},"/ja-jp/topics/ci-cd/","cicd",{"text":543,"config":544},"GitOps",{"href":545,"dataGaName":546,"dataGaLocation":462},"/ja-jp/topics/gitops/","gitops",{"text":548,"config":549},"DevOps",{"href":550,"dataGaName":551,"dataGaLocation":462},"/ja-jp/topics/devops/","devops",{"text":553,"config":554},"バージョン管理",{"href":555,"dataGaName":556,"dataGaLocation":462},"/ja-jp/topics/version-control/","version control",{"text":558,"config":559},"DevSecOps",{"href":560,"dataGaName":561,"dataGaLocation":462},"/ja-jp/topics/devsecops/","devsecops",{"text":563,"config":564},"クラウドネイティブ",{"href":565,"dataGaName":566,"dataGaLocation":462},"/ja-jp/topics/cloud-native/","cloud native",{"text":568,"config":569},"コーディングのためのAI",{"href":570,"dataGaName":571,"dataGaLocation":462},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":573,"config":574},"エージェント型AI",{"href":575,"dataGaName":576,"dataGaLocation":462},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":578,"links":579},"ソリューション",[580,583,585,590,594,597,600,603,605,607,610,615],{"text":127,"config":581},{"href":122,"dataGaName":582,"dataGaLocation":462},"Application Security Testing",{"text":114,"config":584},{"href":98,"dataGaName":99,"dataGaLocation":462},{"text":586,"config":587},"アジャイル開発",{"href":588,"dataGaName":589,"dataGaLocation":462},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":591,"config":592},"SCM",{"href":111,"dataGaName":593,"dataGaLocation":462},"source code management",{"text":102,"config":595},{"href":104,"dataGaName":596,"dataGaLocation":462},"continuous integration & delivery",{"text":153,"config":598},{"href":155,"dataGaName":599,"dataGaLocation":462},"value stream management",{"text":543,"config":601},{"href":602,"dataGaName":546,"dataGaLocation":462},"/ja-jp/solutions/gitops/",{"text":166,"config":604},{"href":168,"dataGaName":169,"dataGaLocation":462},{"text":171,"config":606},{"href":173,"dataGaName":174,"dataGaLocation":462},{"text":608,"config":609},"公共機関",{"href":178,"dataGaName":179,"dataGaLocation":462},{"text":611,"config":612},"教育",{"href":613,"dataGaName":614,"dataGaLocation":462},"/ja-jp/solutions/education/","education",{"text":616,"config":617},"金融サービス",{"href":618,"dataGaName":619,"dataGaLocation":462},"/ja-jp/solutions/finance/","financial services",{"title":186,"links":621},[622,624,626,628,631,633,635,637,639,641,643,645],{"text":198,"config":623},{"href":200,"dataGaName":201,"dataGaLocation":462},{"text":203,"config":625},{"href":205,"dataGaName":206,"dataGaLocation":462},{"text":208,"config":627},{"href":210,"dataGaName":211,"dataGaLocation":462},{"text":213,"config":629},{"href":215,"dataGaName":630,"dataGaLocation":462},"docs",{"text":236,"config":632},{"href":238,"dataGaName":239,"dataGaLocation":462},{"text":231,"config":634},{"href":233,"dataGaName":234,"dataGaLocation":462},{"text":241,"config":636},{"href":243,"dataGaName":244,"dataGaLocation":462},{"text":249,"config":638},{"href":251,"dataGaName":252,"dataGaLocation":462},{"text":254,"config":640},{"href":256,"dataGaName":257,"dataGaLocation":462},{"text":259,"config":642},{"href":261,"dataGaName":262,"dataGaLocation":462},{"text":264,"config":644},{"href":266,"dataGaName":267,"dataGaLocation":462},{"text":269,"config":646},{"href":271,"dataGaName":272,"dataGaLocation":462},{"title":287,"links":648},[649,651,653,655,657,659,661,665,670,672,674,676],{"text":294,"config":650},{"href":296,"dataGaName":289,"dataGaLocation":462},{"text":299,"config":652},{"href":301,"dataGaName":302,"dataGaLocation":462},{"text":307,"config":654},{"href":309,"dataGaName":310,"dataGaLocation":462},{"text":312,"config":656},{"href":314,"dataGaName":315,"dataGaLocation":462},{"text":317,"config":658},{"href":319,"dataGaName":320,"dataGaLocation":462},{"text":322,"config":660},{"href":324,"dataGaName":325,"dataGaLocation":462},{"text":662,"config":663},"Sustainability",{"href":664,"dataGaName":662,"dataGaLocation":462},"/sustainability/",{"text":666,"config":667},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":668,"dataGaName":669,"dataGaLocation":462},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":327,"config":671},{"href":329,"dataGaName":330,"dataGaLocation":462},{"text":337,"config":673},{"href":339,"dataGaName":340,"dataGaLocation":462},{"text":342,"config":675},{"href":344,"dataGaName":345,"dataGaLocation":462},{"text":677,"config":678},"現代奴隷制の透明性に関する声明",{"href":679,"dataGaName":680,"dataGaLocation":462},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":682},[683,685,688],{"text":510,"config":684},{"href":512,"dataGaName":513,"dataGaLocation":462},{"text":686,"config":687},"Cookieの設定",{"dataGaName":522,"dataGaLocation":462,"id":523,"isOneTrustButton":26},{"text":515,"config":689},{"href":517,"dataGaName":518,"dataGaLocation":462},[691],{"id":692,"title":18,"body":8,"config":693,"content":695,"description":8,"extension":24,"meta":699,"navigation":26,"path":700,"seo":701,"stem":702,"__hash__":703},"blogAuthors/en-us/blog/authors/regnard-raquedan.yml",{"template":694},"BlogAuthor",{"name":18,"config":696},{"headshot":697,"ctfId":698},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663118/Blog/Author%20Headshots/regnard_raquedan_headshot.png","rraquedan",{},"/en-us/blog/authors/regnard-raquedan",{},"en-us/blog/authors/regnard-raquedan","1JCF9gTeSA0OaLWrorCsz7_b5_2A2kagAMVhH8r4NcM",[705,720,734],{"content":706,"config":718},{"title":707,"description":708,"authors":709,"body":711,"heroImage":712,"date":713,"category":9,"tags":714},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[18,710],"Rajesh Agadi","GitLab Duo Agent Platformは、組織がソフトウェアをビルド、セキュア化、そして提供する方法を再定義しつつあります。2026年1月の一般提供開始以来、このプラットフォームはソフトウェア開発ライフサイクルのあらゆる段階にエージェント型AIをもたらしています。Duo Agent Platformは、ソフトウェアチームと専門エージェントが連携して計画、コーディング、レビュー、セキュリティ脆弱性の修正を行う、インテリジェントなオーケストレーションレイヤーです。\n\nこのパートナーシップを通じて、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo-agent-platform/)はVertex AI on Google Cloudとの統合によりソフトウェア開発のオーケストレーションとライフサイクルコンテキストを自動化します。Vertex AIはエージェント呼び出しのモデル層を担い、ソフトウェアチームはすでに定義済みのGoogle Cloudポリシーに従って推論を実行しながら、イシュー、マージリクエスト、パイプライン、セキュリティワークフローの作業を継続できます。\n\nGoogle CloudのVertex AIモデルの進化により、Google CloudユーザーはGitLab Duo Agent Platformをさらに活用できるようになっています。GitLabではAIを活用したDevSecOpsコントロールプレーンを、Vertex AIの急速に進化するAIインフラ基盤と、Duo Agent Platformの柔軟なデプロイ・統合オプションが支えています。この組み合わせにより、エンタープライズスケールで動作する、より高度でガバナンスの効いたエージェント型ワークフローが実現します。\n\n![Google CloudのVertex AIと連携してエージェント型ソフトウェア開発とガバナンスを備えたAIワークフローを実現するGitLab Duo Agent Platformの概念図](https://res.cloudinary.com/about-gitlab-com/image/upload/v1776165990/b7jlux9kydafncwy8spc.png)\n\n## 開発ライフサイクル全体にわたるエージェント\n\n多くのAIツールは、コードをより速く生成するという単一のタスクに集中しています。GitLab Duo Agent Platformはそれをさらに超え、計画からセキュリティレビュー、リリースまで、ソフトウェア開発ライフサイクル（SDLC）全体にわたってAIエージェントをオーケストレーションします。これは、多数のプロジェクトとリリースを抱える多くのチームを対象としています。このスケールにおいて、AIコーディングアシスタントは継続的なイノベーションに必要ではありますが、それだけでは十分ではありません。\n\n単一目的のコーディングアシスタントがプロジェクトの全体像を把握することはほとんどありません。バックログの状況、オープン中のマージリクエスト、失敗したジョブ、セキュリティの検出結果はGitLabに蓄積されていますが、コーディングアシスタント内の別のチャットウィンドウはSDLCのその全体像を引き継ぐことができません。このギャップは、手動によるハンドオフ、コンテキストを持たないAIへの重複した説明、そして一つのシステムとして設計されたわけではないツール間のデータフローをマッピングしようとするガバナンスチームという形で表れます。\n\nGitLab Duo Agent Platformは、エンジニアが日々使用するオブジェクト上でエージェントとフローを動作させることで、このギャップを埋めます。Google Cloudを推論の基盤として選択している場合、Vertex AIはエージェントが呼び出すモデルとサービスを提供し、GitLabのAI Gatewayがアクセスを仲介することで管理者はどこに何が接続されているかを明確に把握できます。例えば、GitLab Duo Planner Agentはバックログを分析し、エピックを構造化タスクに分解し、優先順位付けフレームワークを適用することで、次に何を構築するかをチームが判断するのを支援します。Security Analyst Agentは脆弱性をトリアージし、平易な言葉でリスクを説明し、優先順位に従って修正を推奨します。ビルトインのフローはこれらのエージェントをエンドツーエンドのプロセスへと連結し、開発者がすべてのハンドオフを手動で管理する必要をなくします。\n\nGitLab Duo Agent PlatformのAgentic Chatは、開発者にとって統合された体験を提供します。自然言語でクエリを投げかけることで、プロジェクトのイシュー、マージリクエスト、パイプライン、セキュリティの検出結果、コードベースといった全体像を踏まえた多段階の推論に基づくコンテキスト対応の回答が得られます。GitLabがSDLCの統一データモデルを持つ記録システムとして機能しているため、GitLab Duoエージェントは、スタンドアロンのツール固有AIアシスタントでは到達できないライフサイクルコンテキストをもとに動作します。\n\n### Vertex AIによる能力の拡張\n\nGitLab Duo Agent Platformはモデルフレキシブルな設計となっており、タスクごとに最適なパフォーマンスを発揮するモデルへと異なる機能をルーティングします。このアーキテクチャの選択はGoogle Cloud上で効果を発揮します。Vertex AIはファウンデーションモデルと関連サービスのマネージド環境として機能し、幅広いモデルエコシステムとマネージドインフラを提供することでプラットフォームの能力をさらに引き出します。\n\nVertex AIを通じて利用できる最新世代のAIモデルは、以前のバージョンと比較して推論、ツール使用、長文コンテキスト理解において大幅な改善をもたらします。これらはまさに、GitLabのエージェントが大規模で複雑なコードベースを持つ多くのプロジェクトとチームにわたって依拠するプロパティです。基盤モデルにおけるより長いコンテキストウィンドウと豊富なツール連携により、エージェントが一度のパスで達成できることが広がり、深いバックログ分析やモノレポのセキュリティレビューといったワークロードに特に重要な意味を持ちます。\n\n幅広いファウンデーションモデルへのアクセスを提供する[Vertex AI Model Garden](https://cloud.google.com/model-garden)により、ベンダーロックインではなく、パフォーマンス、コスト、規制要件に基づいてこれらの選択を行う自由がお客様に与えられます。\n\nさらに、GitLabのお客様はDuo Agent PlatformにBYOM（Bring Your Own Model）を利用することで、承認済みのプロバイダーとゲートウェイをセキュリティモデルが期待する場所に配置できます。[18.9リリースにおけるセルフホスト型Duo Agent PlatformとBYOMの解説](https://about.gitlab.com/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/)では、その仕組みが詳しく説明されています。このデプロイオプションにより、お客様はソフトウェア開発プロセスに合わせてカスタマイズできるより広いモデルの選択肢へのアクセスを得られます。適切なワークフローに、適切なモデルを、適切なガードレールとともに。\n\nGitLabがVertex AIを基盤として選択したのは、エンタープライズグレードの信頼性と比類ないモデルの幅広さへのニーズによるものです。Vertex AIとModel Gardenは、LLMホスティングの重労働を完全に抽象化し、迅速なバージョン提供、堅牢なセキュリティ、厳格なガバナンスをシームレスに統合に組み込んでいます。Geminiモデルの提供にとどまらず、Vertex AIはサードパーティおよびオープンソースモデルの豊富なカタログへのグローバルかつ低レイテンシのアクセスを提供します。\n\nGoogleCloudの業界をリードするデータプライバシーとモデル保護へのアプローチと組み合わせることで、Vertex AIはGitLabの次世代デベロッパーエクスペリエンスを支える明確な選択肢として浮上しました。\n\nVertex AI Model GardenをバックエンドへIntegrateすることで、GitLabはDevSecOpsプラットフォームを強化しながら、その複雑さをユーザーに負わせることがありません。開発チームは基盤となるLLMの評価や管理に煩わされることなく、アプリケーション構築のための効率的なAI支援ワークフローを体験できます。\n\nGitLabはクラウドオーケストレーションを完全に抽象化し、開発者が優れたコードの記述に集中できる環境を提供する一方、Vertex AIはその支援となる機能を動かしています。\n\n## Google Cloudをご利用のお客様への意義\n\nGitLab Duo Agent Platformはすでに、一つのガバナンスの効いた記録システムの中でソフトウェアライフサイクル全体にわたって動作するAIエージェントを提供しています。Google Cloud上では、Vertex AIがモデルとインフラ層を継続的に進化させながら、迅速なイノベーションを可能にします。\n\nGoogle Cloudをご利用のお客様にとって、この統合は厳格なエンタープライズガバナンスを維持しながらソフトウェア提供を効率化することを意味します。プラットフォームエンジニアリンググループにとっては、クライアントサイドのツールを数十種類カタログ化するのではなく、GitLab内の提案、分析、修正を担うVertex AI連携モデルを標準化することを意味します。セキュリティプログラムは、エージェントが開発者がすでに検出結果をトリアージしている場所と同じ場所で修正を提案・検証することで、頭の切り替えを減らし、管理されていないチャネルへ流出していた作業を削減できます。\n\nクラウドの費用対効果とポリシーの観点から、GitLab内からVertexへのエージェント推論をまとめることで、Google Cloud上ですでに運用している契約や統制に近い形で使用量を管理でき、調達プロセスを迂回する重複支出やシャドーパスを回避するのに役立ちます。\n\nVertex AIはGitLab Duo Agent Platformの基盤インフラプロバイダーであるため、組織はAIツールチェーンの断片化を管理するオーバーヘッドとリスクなしに、デベロッパーの生産性を大幅に向上させることができます。チームは単一のセキュアな記録システムの中で足並みを揃え、アプリケーションをより速くビルドし、確信を持ってリリースできるようになります。\n\nGitLabとGoogle Cloudのコラボレーションは2018年から続いています。今日、これはAIの実験から、Google Cloud上での完全にガバナンスが効いたエージェント型ソフトウェア開発へと移行する組織にとって、最も包括的なパスの一つとなっています。GitLabがエージェントオーケストレーションとデベロッパーコンテキストを拡充し、Vertex AIがモデル能力とエージェントインフラの限界を押し広げていく中で、共同顧客にとっての価値は今後も成長し続けるでしょう。\n\n> [GitLab Duo Agent Platformの無料トライアルを開始](https://about.gitlab.com/free-trial/)して、Google Cloud上でのGitLabとVertex AIのパワーをぜひご体験ください。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663121/Blog/Hero%20Images/LogoLockupPlusLight.png","2026-04-14",[715,272,23,716,717],"AI/ML","news","product",{"featured":26,"template":12,"slug":719},"gitlab-and-vertex-ai-on-google-cloud",{"content":721,"config":732},{"heroImage":722,"body":723,"authors":724,"updatedDate":726,"date":727,"title":728,"tags":729,"description":731,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643639/sapu29gmlgtwvhggmj6k.png","ソフトウェア開発の管理では、複数のツールを同時に扱うことが求められます。Jiraで課題を追跡し、IDEでコードを記述し、GitLabでコラボレーションするといった具合です。こうしたプラットフォーム間のコンテキストの切り替えは集中力を妨げ、デリバリーを遅らせます。\n\nGitLab Duo Agent Platformの[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)サポートにより、Jiraをはじめ、MCPに対応するあらゆるツールを、AIを活用した開発環境に直接接続できるようになりました。課題の照会、チケットの更新、ワークフローの同期など、すべてを自然言語で、IDEを離れることなく実行できます。\n\n## この記事で学べること\n\nこのチュートリアルでは、以下の内容を解説します。\n\n* **Jira/Atlassian OAuthアプリケーションのセットアップ** — セキュアな認証を設定します\n* **GitLab Duo Agent Platformの設定** — GitLab Duo Agent PlatformをMCPクライアントとして設定します\n* **3つの実践的なユースケース** — 実際のワークフローのデモをご覧ください\n\n## 前提条件\n\n開始する前に、以下の要件を満たしていることをご確認ください。\n\n| 要件 | 詳細 |\n| ---- | ----- |\n| **GitLabインスタンス** | Duo Agent Platformが有効なGitLab 18.8以降 |\n| **Jiraアカウント** | OAuthアプリケーションを作成できる管理者権限を持つJira Cloudインスタンス |\n| **IDE** | GitLab Workflow拡張機能がインストールされたVisual Studio Code |\n| **MCPサポート** | GitLabでMCPサポートが有効化済み |\n\n\n## アーキテクチャの概要\n\nGitLab Duo Agent Platformは**MCPクライアント**として機能し、Atlassian MCPサーバーに接続してJiraのプロジェクト管理データにアクセスします。Atlassian MCPサーバーは認証を処理し、自然言語のリクエストをAPI呼び出しに変換して、構造化されたデータをGitLab Duo Agent Platformに返します。このプロセス全体を通じて、セキュリティと監査管理が維持されます。\n\n## パート1：Jira OAuthアプリケーションの設定\n\nGitLab Duo Agent PlatformをJiraインスタンスに安全に接続するには、Atlassian Developer ConsoleでOAuth 2.0アプリケーションを作成する必要があります。これにより、GitLabのMCPサーバーにJiraデータへの認可されたアクセス権が付与されます。\n\n### セットアップ手順\n\n手動で設定する場合は、以下の手順に従ってください。\n\n1. **Atlassian Developer Consoleへのアクセス**\n\n   * [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)にアクセスします。\n\n   * Atlassianアカウントでサインインします。\n\n2. **新しいOAuth 2.0アプリの作成**\n\n   * 「**Create**」→「**OAuth 2.0 integration**」をクリックします。\n\n   * アプリ名を入力します（例：「gitlab-dap-mcp」）。\n\n   * 利用規約に同意し、「**Create**」をクリックします。\n\n3. **権限の設定**\n\n   * 左サイドバーの「**Permissions**」に移動します。\n\n   * 「**Jira API**」を追加し、以下のスコープを設定します。\n\n     * `read:jira-work` — 課題、プロジェクト、ボードの読み取り\n\n     * `write:jira-work` — 課題の作成と更新\n\n     * `read:jira-user` — ユーザー情報の読み取り\n\n4. **認可の設定**\n\n   * 左サイドバーの「**Authorization**」に移動します。\n\n   * お使いの環境のコールバックURLを追加します（`https://gitlab.com/oauth/callback`）。\n\n   * 変更を保存します。\n\n5. **認証情報の取得**\n\n   * 「**Settings**」に移動します。\n\n   * 「**Client ID**」と「**Client Secret**」をコピーします。\n\n   * これらの認証情報はMCP設定に必要なため、安全な場所に保管してください。\n\n\n### インタラクティブウォークスルー：Jira OAuthのセットアップ\n\n以下の画像をクリックして開始してください。\n\n\n[![Jira OAuthセットアップツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772644850/wnzfoq43nkkfmgdqldmr.png)](https://gitlab.navattic.com/jira-oauth-setup)\n\n\n## パート2：GitLab Duo Agent PlatformのMCPクライアントの設定\n\nOAuth認証情報の準備ができたら、GitLab Duo Agent PlatformをAtlassian MCPサーバーに接続するための設定を行います。\n\n### MCP設定ファイルの作成\n\nGitLabプロジェクトの `.gitlab/duo/mcp.json` にMCP設定ファイルを作成します。\n\n\n```json\n{\n  \"mcpServers\": {\n    \"atlassian\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.atlassian.com/v1/mcp\",\n      \"auth\": {\n        \"type\": \"oauth2\",\n        \"clientId\": \"YOUR_CLIENT_ID\",\n        \"clientSecret\": \"YOUR_CLIENT_SECRET\",\n        \"authorizationUrl\": \"https://auth.atlassian.com/oauth/authorize\",\n        \"tokenUrl\": \"https://auth.atlassian.com/oauth/token\"\n      },\n      \"approvedTools\": true\n    }\n  }\n}\n```\n\n`YOUR_CLIENT_ID` と `YOUR_CLIENT_SECRET` は、パート1で生成した認証情報に置き換えてください。\n\n### GitLabでMCPを有効化\n\n1. 「**グループ設定**」→「**GitLab Duo**」→「**Configuration**」に移動します。\n2. 「Allow external MCP tools」にチェックが入っていることを確認します。\n\n### 接続の確認\n\nVS Codeでプロジェクトを開いてGitLab Duo Agent Platformのチャットで次のように入力してください。\n\n```text\nWhat MCP tools do you have access to?\n```\n\n次に、以下のように入力します。\n\n```text\nTest the MCP JIRA configuration in this project\n```\n\nこの時点で、IDEからAtlassian MCPウェブサイトにリダイレクトされ、アクセスの承認を求められます。\n\n![Atlassian MCPウェブサイトへのリダイレクト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/z5acqjgguh0damnnde9g.png \"MCPのAtlassianウェブサイトへのリダイレクト\")\n\n\u003Cbr>\u003C/br>\n\n![アクセスの承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/rwowamm8nsubhpixtn3i.png \"アクセスの承認\")\n\n\u003Cbr>\u003C/br>\n\n![JIRAインスタンスを選択して承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/chuzqd0jeptfwvoj7wjr.png \"JIRAインスタンスを選択して承認\")\n\n\u003Cbr>\u003C/br>\n\n![成功！](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/bsgti5iste2bzck19o5y.png \"成功！\")\n\n\u003Cbr>\u003C/br>\n\n### MCPダッシュボードでの確認\n\nGitLabには、IDEに組み込みの**MCPダッシュボード**も用意されています。\n\nVS CodeまたはVSCodiumで、コマンドパレット（macOSでは `Cmd+Shift+P`、Windows/Linuxでは `Ctrl+Shift+P`）を開いて「**GitLab: Show MCP Dashboard**」を検索してください。ダッシュボードは新しいエディタータブで表示され、以下の情報を確認できます。\n\n* 設定済みの各MCPサーバーの**接続ステータス**\n* サーバーが公開している**利用可能なツール**（例：`jira_get_issue`、`jira_create_issue`）\n* **サーバーログ** — リアルタイムで呼び出されているツールを確認可能\n\n![MCPサーバーのダッシュボードとステータス](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/mmvdfchucacsydivowvn.png \"MCPサーバーのダッシュボードとステータス\")\n\n\u003Cbr>\u003C/br>\n\n![サーバーの詳細と権限](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/tcocgdvovp2dl42pvfn8.png \"サーバーの詳細と権限\")\n\n\u003Cbr>\u003C/br>\n\n\n![MCPサーバーログ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643466/mougvqqk1bozchaufsci.png \"MCPサーバーログ\")\n\n\u003Cbr>\u003C/br>\n\n### インタラクティブウォークスルー：MCPのテスト\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005495?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=\"Testing MCP\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パート3：実践的なユースケース\n\n統合の設定が完了したら、JiraをGitLab Duo Agent Platformへの接続を実現できる3つの実践的なワークフローを見ていきましょう。\n\n### プランニングアシスタント\n\n**シナリオ：** スプリントプランニングの準備として、バックログをすばやく評価し、優先事項を把握し、ブロッカーを特定する必要があります。\n\nこのデモでは以下の操作を紹介します。\n\n* バックログの照会\n* 未割り当ての高優先度課題の特定\n* AIによるスプリント推奨の取得\n\n#### プロンプト例\n\nGitLab Duo Agent Platformのチャットで以下のプロンプトをお試しください。\n\n```text\nList all the unassigned issues in JIRA for project GITLAB\n```\n\n```text\nSuggest the two top issues to prioritize and summarize them. Assign them to me.\n```\n\n### インタラクティブウォークスルー：プロジェクトプランニング\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005462?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=\"Project Planning\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player. js\">\u003C/script>\n\n### コードからの課題トリアージと作成\n\n**シナリオ：** コードレビュー中にバグを発見し、IDEを離れることなく、関連するコンテキストに沿ってJiraの課題を作成したい場合です。\n\nこのデモでは以下の手順を紹介します。\n\n* コーディング中のバグの特定\n* 自然言語を使ったJira課題の詳細な作成\n* コードのコンテキストに沿った課題フィールドの自動入力\n* 現在のブランチへの課題のリンク\n\n#### プロンプト例\n\n```text\nSearch in JIRA for a bug related to: Null pointer exception in PaymentService.processRefund().\nIf it does not exist create it with all the context needed from the code. Find possible blockers that this bug may cause.\n```\n\n```text\nCreate a new branch called issue-gitlab-18, checkout, and link it to the issue we just created. Assign the JIRA issue to me and mark it as in-progress.\n```\n\n### インタラクティブウォークスルー：バグレビューとタスク自動化\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005368?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=\"Bug Review\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### クロスシステムのインシデント調査\n\n**シナリオ：** 本番環境でインシデントが発生し、Jira（インシデントチケット）、GitLabプロジェクト管理、コードベース、マージリクエストからの情報を照合して根本原因を特定する必要があります。\n\nこのデモでは以下を実演します。\n\n* Jiraからのインシデント詳細の取得\n* GitLabの最近のマージリクエストとの照合\n* 関連する可能性のあるコード変更の特定\n* インシデントタイムラインの生成\n* 修正計画の設計とGitLabのワークアイテムとしての作成\n\n#### プロンプト例\n\n```text\n\"We have a production incident INC-1 about checkout failures. Can you help me investigate with all available context?\"\n```\n\n```text\nCreate a timeline of events for incident INC-1 including related Jira issues and recent deployments\n```\n\n```text\nPropose a remediation plan\n```\n\n### インタラクティブウォークスルー：クロスシステムのトラブルシューティングと修正\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005413?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=\"Cross System Investigation\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## トラブルシューティング\n\nよくあるセットアップの問題と解決策を以下にまとめます。\n\n| 問題 | 解決策 |\n| ----- | ----- |\n| 「MCP server not found」 | `mcp.json` ファイルが正しい場所にあり、適切にフォーマットされていることを確認してください。 |\n| 「Authentication failed」 | OAuth認証情報を再確認し、Atlassianでスコープが正しく設定されていることを確認してください。 |\n| 「No Jira tools available」 | `mcp.json` を更新後にVS Codeを再起動し、GitLabでMCPが有効になっていることを確認してください。 |\n| 「Connection timeout」 | `mcp.atlassian.com` へのネットワーク接続を確認してください。 |\n\n\u003Cbr/> 詳細なトラブルシューティングについては、[GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)をご参照ください。\n\n\n## セキュリティに関する考慮事項\n\nJiraをGitLab Duo Agent Platformと統合する際は、以下の点にご注意ください。\n\n* **OAuthトークン** — 認証情報を安全に管理してください。\n* **最小権限の原則** — Jiraスコープは必要最小限のみ付与してください。\n* **トークンのローテーション** — セキュリティ管理の一環として、OAuth認証情報を定期的にローテーションしてください。\n\n\n## まとめ\n\nMCPを通じてGitLab Duo Agent Platformをさまざまなツールに接続することで、開発ライフサイクルとのインタラクションが大きく変わります。この記事では、以下の方法を学びました。\n\n* **自然言語による課題の照会** — バックログ、スプリント、インシデントについて自然言語で質問できます。\n* **DevSecOps環境全体での課題の作成と更新** — IDEを離れることなくバグを報告し、チケットを更新できます。\n* **システム間の情報照合** — JiraのデータをGitLabのプロジェクト管理、マージリクエスト、パイプラインと組み合わせることで、全体的な可視性が得られます。\n* **コンテキスト切り替えの削減** — プロジェクト管理とのつながりを維持しながら、コードに集中できます。\n\nこの統合は、MCPの可能性を体現するものです。AIを通じてツールへの標準化されたセキュアなアクセスを提供し、ガバナンスやセキュリティを損なうことなく、デベロッパーがより効率的に作業できる環境を実現します。\n\n\n## 関連リソース\n\n* [Model Context Protocol統合](https://about.gitlab.com/ja-jp/blog/duo-agent-platform-with-mcp/)\n\n* [Model Context Protocolとは](https://about.gitlab.com/topics/ai/model-context-protocol/)\n\n* [エージェント型AIに関するガイドとリソース](https://about.gitlab.com/ja-jp/blog/agentic-ai-guides-and-resources/)\n\n* [GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)\n\n* [GitLab Duo Agent Platformを始める：完全ガイド](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-complete-getting-started-guide/)",[725],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[717,730],"tutorial","MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":11,"template":12,"slug":733},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"content":735,"config":746},{"heroImage":736,"body":737,"authors":738,"updatedDate":740,"date":741,"title":742,"tags":743,"description":745,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772632341/duj8vaznbhtyxxhodb17.png","AIを活用したコーディングツールにより、開発者はこれまで以上に速くコードを生成できるようになりました。では、なぜチーム全体の *リリース速度* は上がらないのでしょうか？\n\nそれは、コーディングがソフトウェア提供ライフサイクルの20%に過ぎず、残りの80%がボトルネックになっているからです。コードレビューの滞留、セキュリティスキャンの遅れ、ドキュメントの陳腐化、手動の調整作業の増加が、チームの速度を妨げています。\n\n嬉しいことに、個人のコーディングを加速する同じAI機能を使って、チームレベルの遅延も解消できます。コーディングフェーズだけでなく、ソフトウェアライフサイクル全体にAIを適用することが重要です。\n\n以下は、[GitLab Duo Agent Platformプロンプトライブラリ](https://about.gitlab.com/gitlab-duo/prompt-library/)から厳選した、すぐに使える10のプロンプトです。個人の生産性が向上する一方でチームプロセスの改善が追いついていないときに生じる、よくある障害を乗り越えるために役立ちます。\n\n## コードレビューをボトルネックから加速装置へ\n\nAIの支援により開発者はマージリクエストをより速く作成できるようになりましたが、コードレビューのサイクルが数時間から数日に伸びるにつれ、人間のレビュアーはすぐに手に負えなくなります。AIは定型的なレビュー作業を担うことで、レビュアーが基本的な論理エラーやAPI契約違反の発見に時間を取られることなく、アーキテクチャやビジネスロジックに集中できるようにします。\n\n### マージリクエストの論理エラーをレビューする\n\n**複雑さ**: 初級\n\n**カテゴリ**: コードレビュー\n\n**ライブラリのプロンプト**:\n\n```text\nこのMRの論理エラー、エッジケース、潜在的なバグをレビューしてください: [MRのURLまたはコードを貼り付け]\n```\n\n**効果**: 自動リンターは構文エラーを検出しますが、論理エラーの発見にはコードの意図を理解する必要があります。このプロンプトは、人間のレビュアーがコードを確認する前にバグを検出し、複数回のレビューサイクルを多くの場合1回の承認で完結させます。\n\n### マージリクエストの破壊的変更を特定する\n\n**複雑さ**: 初級\n\n**カテゴリ**: コードレビュー\n\n**ライブラリのプロンプト**:\n\n```text\nこのMRに破壊的変更はありますか？\n\nChanges:\n[code diffを貼り付け]\n\n以下を確認してください：\n1. APIシグネチャの変更\n2. publicメソッドの削除またはリネーム\n3. 戻り値の型の変更\n4. データベーススキーマの変更\n5. 設定の破壊的変更\n```\n\n**効果**: デプロイ中に破壊的変更が発見されると、ロールバックやインシデントにつながります。このプロンプトにより、その発見をマージリクエストの段階に前倒しできるため、修正がより迅速かつ低コストになります。\n\n## セキュリティをシフトレフトしながら速度を落とさないには？\n\nセキュリティスキャンは数百件もの検出結果を生成します。開発者がデプロイの承認を待つ間、セキュリティチームはそれぞれを手動でトリアージしています。検出結果の多くはフォルスポジティブや低リスクの問題ですが、実際の脅威を特定するには専門知識と時間が必要です。AIは実際の悪用可能性に基づいて検出結果を優先順位付けし、一般的な脆弱性を自動修復することで、セキュリティチームが本当に重要な脅威に集中できるようにします。\n\n### セキュリティスキャン結果を分析する\n\n**複雑さ**: 中級\n\n**カテゴリ**: セキュリティ\n\n**エージェント**: Duo Security Analyst\n\n**ライブラリのプロンプト**:\n\n```text\n@security_analyst このセキュリティスキャン結果を分析してください:\n\n[スキャン結果を貼り付け]\n\n各検出結果について:\n1. 実際のリスクかフォルスポジティブかを評価する\n2. 脆弱性を説明する\n3. 修復方法を提案する\n4. 深刻度で優先順位をつける\n```\n\n**効果**: セキュリティスキャンの検出結果の多くはフォルスポジティブや低リスクの問題です。このプロンプトはセキュリティチームが本当に重要な検出結果に集中できるようにし、修復にかかる時間を数週間から数日に短縮します。\n\n### コードのセキュリティ問題をレビューする\n\n**複雑さ**: 中級\n\n**カテゴリ**: セキュリティ\n\n**エージェント**: Duo Security Analyst\n\n**ライブラリのプロンプト**:\n\n```text\n@security_analyst このコードのセキュリティ問題をレビューしてください:\n\n[コードを貼り付け]\n\n以下を確認してください：\n1. インジェクション脆弱性\n2. 認証・認可の欠陥\n3. データ漏洩リスク\n4. 安全でない依存関係\n5. 暗号化の問題\n```\n\n**効果**: 従来のセキュリティレビューはコードが書かれた後に行われます。このプロンプトにより、開発者はマージリクエストを作成する前にセキュリティ問題を発見・修正でき、デプロイを遅らせる往復のやり取りを解消します。\n\n## コードの変更に合わせてドキュメントを最新に保つには？\n\nコードはドキュメントよりも速く変化します。ドキュメントが古かったり不足していたりするため、新しい開発者のオンボーディングには数週間かかります。ドキュメントの重要性はチーム全員が理解していますが、締め切りが近づくと常に後回しになります。標準ワークフローの一部としてドキュメントの生成と更新を自動化することで、手動作業を増やすことなくドキュメントを最新の状態に保てます。\n\n### マージリクエストからリリースノートを生成する\n\n**複雑さ**: 初級\n\n**カテゴリ**: ドキュメント\n\n**ライブラリのプロンプト**:\n\n```text\nマージ済みのこれらのMRのリリースノートを生成してください:\n[MRのURL一覧またはタイトルを貼り付け]\n\n以下のカテゴリでグループ化してください:\n1. 新機能\n2. バグ修正\n3. パフォーマンス改善\n4. 破壊的変更\n5. 非推奨事項\n```\n\n**効果**: リリースノートを手動でまとめるには数時間かかり、誤りや漏れが生じることもあります。自動生成により、リリースプロセスに負担をかけることなく、すべてのリリースに包括的なノートが揃います。\n\n### コード変更後にドキュメントを更新する\n\n**複雑さ**: 初級\n\n**カテゴリ**: ドキュメント\n\n**ライブラリのプロンプト**:\n\n```text\nこのコードを変更しました:\n\n[コード変更内容を貼り付け]\n\nどのドキュメントを更新する必要がありますか？以下を確認してください:\n1. READMEファイル\n2. APIドキュメント\n3. アーキテクチャ図\n4. オンボーディングガイド\n```\n\n**効果**: ドキュメントの乖離は、コード変更後にどのドキュメントを更新すべきかをチームが忘れることで起きます。このプロンプトにより、ドキュメントのメンテナンスが後回しにされる別タスクではなく、開発ワークフローの一部になります。\n\n## 計画の複雑さを分解するには？\n\n大規模な機能は計画段階で行き詰まりがちです。チームは作業範囲の定義と依存関係の特定のために何週間も会議を重ねます。複雑さに圧倒され、どこから始めればよいかわからなくなります。AIは複雑な作業を具体的で実装可能なタスクに体系的に分解し、明確な依存関係と受け入れ基準を設定することで、何週間もの計画を集中した実装へと変えます。\n\n### エピックをイシューに分解する\n\n**複雑さ**: 中級\n\n**カテゴリ**: ドキュメント\n\n**エージェント**: Duo Planner\n\n**ライブラリのプロンプト**:\n\n```text\nこのエピックを実装可能なイシューに分解してください：\n\n[エピックの説明]\n\n以下を考慮してください：\n1. 技術的な依存関係\n2. 適切なイシューのサイズ\n3. 明確な受け入れ基準\n4. 論理的な実装順序\n```\n\n**効果**: このプロンプトにより、1週間分の計画会議が30分のAI支援による分解とチームレビューに変わります。チームはより明確な方向性を持って、より早く実装を開始できます。\n\n## 工数を増やさずにテストカバレッジを拡大するには？\n\n開発者はコードをより速く書けるようになりましたが、テストが追いつかないとカバレッジが低下してバグが見逃されます。包括的なテストを手動で書くには時間がかかり、締め切りのプレッシャーの下でエッジケースを見落とすことも多くあります。テストを自動生成することで、開発者はゼロから書く代わりにレビューと改善に集中でき、速度を犠牲にすることなく品質を維持できます。\n\n### ユニットテストを生成する\n\n**複雑さ**: 初級\n\n**カテゴリ**: テスト\n\n**ライブラリのプロンプト**:\n\n```text\nこの関数のユニットテストを生成してください：\n\n[関数を貼り付け]\n\n以下のテストを含めてください：\n1. 正常系\n2. エッジケース\n3. エラー条件\n4. 境界値\n5. 不正な入力\n```\n\n**効果**: テストを手動で書くには時間がかかり、エッジケースが見落とされることもあります。このプロンプトは数秒で網羅的なテストスイートを生成し、開発者はゼロから書く代わりにレビューと調整に集中できます。\n\n### テストカバレッジのギャップをレビューする\n\n**複雑さ**: 初級\n\n**カテゴリ**: テスト\n\n**ライブラリのプロンプト**:\n\n```text\n[モジュール/コンポーネント]のテストカバレッジを分析してください：\n\n現在のカバレッジ：[パーセンテージ]\n\n以下を特定してください：\n1. テストされていない関数・メソッド\n2. カバーされていないエッジケース\n3. 不足しているエラーシナリオのテスト\n4. テストのない統合ポイント\n5. 次にテストすべき優先領域\n```\n\n**効果**: このプロンプトは、本番インシデントを引き起こす前にテストスイートのブラインドスポットを明らかにします。チームはより重要な箇所から体系的にカバレッジを改善できます。\n\n## デバッグ時の平均解決時間を短縮するには？\n\n本番インシデントの診断には数時間かかります。顧客がダウンタイムを経験する中、開発者はログやスタックトレースを調べ続けます。デバッグの1分1分が、生産性と潜在的な収益の損失につながります。AIは複雑なエラーメッセージを解析して具体的な修正案を提示することで根本原因分析を加速し、診断時間を数時間から数分に短縮します。\n\n### 失敗したパイプラインをデバッグする\n\n**複雑さ**: 初級\n\n**カテゴリ**: デバッグ\n\n**ライブラリのプロンプト**:\n\n```text\nこのパイプラインが失敗しています：\n\nジョブ：[ジョブ名]\nステージ：[ステージ]\nエラー：[エラーメッセージ/ログを貼り付け]\n\n\n以下を助けてください:\n1. 根本原因を特定する\n2. 修正方法を提案する\n3. なぜ失敗し始めたかを説明する\n4. 同様の問題を防ぐ\n```\n\n**効果**: CI/CDの失敗はチーム全体をブロックします。このプロンプトは、開発者が通常15〜30分かけて調査する問題を数秒で診断し、デプロイの速度を維持します。\n\n## 個人の成果からチームの加速へ\n\nこれらのプロンプトは、チームがソフトウェア提供にAIを活用する方法の転換を示しています。個人の開発者生産性だけに注目するのではなく、チームの速度を実際に制約している調整・品質・ナレッジ共有の課題に対処します。\n\n[プロンプトライブラリ](https://about.gitlab.com/gitlab-duo/prompt-library/)には、計画、開発、セキュリティ、テスト、デプロイ、運用といったソフトウェアライフサイクルの全ステージにわたる100以上のプロンプトが収録されています。各プロンプトは複雑さのレベル（初級・中級・上級）でタグ付けされ、ユースケース別に分類されているため、チームに合ったスタート地点を簡単に見つけられます。\n\nまずはチームの最も緊急な課題に対応する「初級」タグのプロンプトから始めましょう。チームが自信をつけるにつれ、より高度なワークフローを実現する中級・上級のプロンプトへと探求の幅を広げてください。目標は単に速いコーディングではなく、計画から本番まで、より速く、より安全で、より高品質なソフトウェア提供の実現です。",[739],"Chandler Gibbons","2026-03-13","2026-03-04","チームのソフトウェア提供を加速する10のAIプロンプト",[715,744],"DevOps platform","ソフトウェアライフサイクル全体をカバーするすぐに使えるAIプロンプトで、レビューの滞留、セキュリティの遅延、調整の手間を解消します。",{"featured":11,"template":12,"slug":747},"10-ai-prompts-to-speed-your-teams-software-delivery",{"promotions":749},[750,763,774,786],{"id":751,"categories":752,"header":753,"text":754,"button":755,"image":760},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":756,"config":757},"Get your AI maturity score",{"href":758,"dataGaName":759,"dataGaLocation":239},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":761},{"src":762},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":764,"categories":765,"header":766,"text":754,"button":767,"image":771},"devops-modernization",[717,561],"Are you just managing tools or shipping innovation?",{"text":768,"config":769},"Get your DevOps maturity score",{"href":770,"dataGaName":759,"dataGaLocation":239},"/assessments/devops-modernization-assessment/",{"config":772},{"src":773},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":775,"categories":776,"header":778,"text":754,"button":779,"image":783},"security-modernization",[777],"security","Are you trading speed for security?",{"text":780,"config":781},"Get your security maturity score",{"href":782,"dataGaName":759,"dataGaLocation":239},"/assessments/security-modernization-assessment/",{"config":784},{"src":785},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":787,"paths":788,"header":791,"text":792,"button":793,"image":798},"github-azure-migration",[789,790],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":794,"config":795},"See how GitLab compares to GitHub",{"href":796,"dataGaName":797,"dataGaLocation":239},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":799},{"src":773},{"header":801,"blurb":802,"button":803,"secondaryButton":807},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":41,"config":804},{"href":805,"dataGaName":44,"dataGaLocation":806},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":46,"config":808},{"href":48,"dataGaName":49,"dataGaLocation":806},1777394001245]