[{"data":1,"prerenderedAt":812},["ShallowReactive",2],{"/ja-jp/blog/understanding-flows-multi-agent-workflows":3,"navigation-ja-jp":37,"banner-ja-jp":448,"footer-ja-jp":458,"blog-post-authors-ja-jp-Itzik Gan Baruch":694,"blog-related-posts-ja-jp-understanding-flows-multi-agent-workflows":708,"blog-promotions-ja-jp":751,"next-steps-ja-jp":803},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":27,"isFeatured":12,"meta":28,"navigation":29,"path":30,"publishedDate":20,"seo":31,"stem":33,"tagSlugs":34,"__hash__":36},"blogPosts/ja-jp/blog/understanding-flows-multi-agent-workflows.yml","Understanding Flows Multi Agent Workflows",[7],"itzik-gan-baruch",null,"ai-ml",{"slug":11,"featured":12,"template":13},"understanding-flows-multi-agent-workflows",false,"BlogPost",{"tags":15,"category":9,"date":20,"heroImage":21,"authors":22,"description":24,"title":25,"body":26},[16,17,18,19],"AI/ML","product","features","tutorial","2026-01-14","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png",[23],"Itzik Gan Baruch","GitLab Duo Agent Platformのフローを詳しく解説。基本フロー、カスタムユーザー定義ワークフローの作成、フローオーケストレーションパターンについて学びます。","フローを理解する：マルチエージェントワークフロー","\n*8部構成ガイド「[GitLab Duo Agent Platformを始める](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-complete-getting-started-guide/)」のパート4へようこそ。開発ライフサイクル内でのAIエージェントとワークフローの構築・デプロイをマスターします。最初の対話から完全カスタマイズ可能なプロダクション対応の自動化ワークフローまで、段階的なチュートリアルに従ってください。*\n\n**この記事の内容:**\n\n- [フローとは何か、どのように機能するか](#introduction-to-flows)\n- [GitLabが提供する基本フロー](#foundational-flows)\n- [カスタムフローの作成](#how-to-create-custom-flows)\n- [フローの実行とオーケストレーション](#flow-execution)\n- [実例とユースケース](#example-custom-flow-yaml)\n\n> 🎯 今すぐ[**GitLab Duo Agent Platform**](https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/)をお試しください！\n## フローの紹介\nフローは、1つ以上のエージェントが協働する組み合わせです。複雑な問題を解決するために複数ステップのワークフローを調整し、GitLabプラットフォームコンピュート上で実行されます。\n\n**フローの主な特徴:**\n\n- **マルチエージェントオーケストレーション**: 複数の専門エージェントを組み合わせ\n- **ビルトイン**: プラットフォームコンピュート上で実行、追加環境不要\n- **イベント駆動**: メンション、割り当て、レビュアーとしての割り当てでトリガー\n- **非同期**: 作業を続けながらバックグラウンドで実行\n- **完全なワークフロー**: 分析から実装までエンドツーエンドのタスクを処理\n\nフローは、情報収集から意思決定、変更の実行、結果の提供まで、すべて自動で行う自律的なワークフローです。あなたは他の作業に集中できます。\n\n## フロー vs. エージェント: 違いを理解する\nエージェントはあなたと対話的に作業します。フローはあなたのために自律的に作業します。\n\n| 側面 | エージェント | フロー |\n|--------|--------|-------|\n| **インタラクション** | 対話型チャット | 自律的な実行 |\n| **使用タイミング** | 質問、ガイダンス、対話的なタスク実行 | 自律的な複数ステップワークフロー |\n| **ユーザーの関与** | アクティブな会話 | トリガーと結果のレビュー |\n| **実行時間** | リアルタイム応答 | バックグラウンド処理 |\n| **複雑さ** | 単一エージェントタスク | マルチエージェントオーケストレーション |\n\n## フロータイプの概要\n\n| タイプ | インターフェース | メンテナー | ユースケース |\n|------|-------------|---------------|----------|\n| **[基本フロー](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/)** | UIアクション、IDEインターフェース | GitLab | ソフトウェア開発、イシュー内のデベロッパー、CI/CDパイプライン修正、GitLab CI/CDへの変換、コードレビュー、SAST誤検知判定 |\n| **[カスタムフロー](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/custom/)** | メンション、割り当て、レビュアー割り当て | 自分 | 例: 大規模な移行/最新化、リリース自動化、依存関係更新管理 |\n\n## 基本フロー\n基本フローは、GitLabが作成・保守するプロダクション対応のワークフローです。専用のUIコントロールまたはIDEインターフェースからアクセスできます。\n### 現在利用可能な基本フロー\n\n| フロー | 利用可能な場所 | アクセス方法 | 最適な用途 |\n|------|-----------------|---------------|----------|\n| [**ソフトウェア開発フロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/software_development/) | IDE(VS Code、JetBrains、Visual Studio) | IDEのFlowsタブ | 機能実装、複雑なリファクタリング、複数ファイルの変更 |\n| [**デベロッパーフロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/developer/) | GitLab Web UI | イシューの「Duoでマージリクエストを生成」ボタン | 明確に定義された機能、明確な手順のあるバグ修正 |\n| [**CI/CDパイプライン修復フロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/) | GitLab Web UI | 失敗したパイプラインインターフェース | パイプラインデバッグ、CI/CD設定の問題 |\n| [**GitLab CI/CD変換フロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/) | GitLab Web UI | Jenkinsfileの「Convert to GitLab CI/CD」ボタン | JenkinsからGitLab CI/CDへの移行 |\n| [**コードレビューフロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/code_review/) | GitLab Web UI | MRでレビュアーとして割り当て | AIネイティブ分析とフィードバックによる自動コードレビュー |\n| [**SAST誤検出判定フロー**](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/sast_false_positive_detection/) | GitLab Web UI | セキュリティスキャン結果 | SAST検出結果の誤検知を自動的に特定してフィルタリング |\n\n## カスタムフロー\n\nカスタムフローは、チームの特定のニーズに合わせて作成するYAML定義のワークフローです。GitLab Runnerで実行され、GitLabイベントによってトリガーできます。\n\n> **🎯 今すぐ試す:**[カスタムフローのインタラクティブデモ](https://gitlab.navattic.com/custom-flows) — カスタムフローの作成と設定方法を探索します。\n\n### カスタムフローを作成する理由\n\nカスタムフローは、チームのワークフローに固有の反復的な複数ステップタスクを自動化します。一般的な目的に使用される基本フローとは異なり、カスタムフローは組織のプロセス、ツール、要件に合わせて調整されます。\n\n**一般的なユースケース:**\n\n- **自動コードレビュー**: 複数段階のレビュープロセス(セキュリティスキャン → 品質チェック → スタイル検証)\n- **コンプライアンスチェック**: 各MRで規制要件、ライセンスコンプライアンス、セキュリティポリシーを確認\n- **ドキュメント生成**: コード変更に基づいてAPIドキュメント、READMEファイル、変更ログを自動更新\n- **依存関係管理**: 週次セキュリティスキャン、自動更新、脆弱性レポート\n- **カスタムテスト**: 技術スタック用の特殊なテストスイートまたは統合テスト\n\n### 実例\n\nフィンテック企業は、すべてのマージリクエストで実行されるコンプライアンスフローを作成します。`@compliance-flow`でトリガーされると、フローは次のステップを実行します。\n1. **セキュリティエージェント**がPCI-DSS違反のコードをスキャンし、露出した機密データをチェックします。\n2. **コードレビューエージェント**が変更がセキュアコーディング標準とベストプラクティスに従っていることを確認します。\n3. **ドキュメントエージェント**がAPI変更に更新されたドキュメントが含まれているかチェックします。\n4. **サマリーエージェント**が検出結果を集約し、合格/不合格ステータスのコンプライアンスレポートを投稿します。\n\nコンプライアンスレビュー全体が5〜10分で自動的に実行され、すべてのマージリクエストで一貫したチェックが提供されます。\n\n### カスタムフローのトリガー方法\n\nカスタムフローは複数の方法でトリガーできます。\n\n**1. イシュー/MRでのメンション:**\nコメントでフローをメンションしてトリガーします。ドキュメント生成フローの例:\n```text\n@doc-generator Generate API documentation for this feature\n```\n\n**2. イシューまたはMRへのフローの割り当て:**\n次のいずれかを使用してフローを割り当てます。\n- **GitLab UI**: イシュー/MRの「アサイン」ボタンをクリックしてフローを選択\n- **コマンド**: コメントで`/assign`コマンドを使用。例:\n```shell\n/assign @doc-generator\n```\n\n**3. レビュアーとしてのフローの割り当て:**\n次のいずれかを使用してマージリクエストにレビュアーとしてフローを割り当てます。\n- **GitLab UI**: マージリクエストの「レビュアーをアサインする」ボタンをクリックしてフローを選択\n- **コマンド**:コメントで`/assign_reviewer`コマンドを使用。例:\n```shell\n/assign_reviewer @doc-reviewer\n```\nこれらの方法のいずれかにより、フローが自動的にトリガーされ、タスクを実行します。\n\n### カスタムフローの作成方法\n\nカスタムフローは、プロジェクトの**自動化 → フロー → 新しいフロー**、または**検索 → AIカタログ → フロー → 新しいフロー**からGitLab UIを通じて作成されます。コンポーネント、プロンプト、ルーティング、実行フローを指定するYAML設定を使用してフローを定義します。YAMLスキーマにより、エージェントの動作とオーケストレーションを正確に制御できる洗練されたマルチエージェントワークフローを作成できます。\n\n\n**カスタムフローの主要要素:**\n\n- **コンポーネント**: ワークフロー内のエージェントとステップを定義\n- **プロンプト**: AIモデルの動作と指示を設定\n- **ルーター**: コンポーネント間のフローを制御\n- **ツールセット**: エージェントが使用できるGitLab APIツールを指定\n\n### カスタムフローYAMLの例\n**背景**: この例は、旅行予約プラットフォームの機能実装フローを示しています。デベロッパーが機能要件を含むイシューを作成すると、このフローをトリガーして、要件の分析、コードベースのレビュー、ソリューションの実装、マージリクエストの作成まで、すべて手動介入なしで自動的に実行できます。\nYAML設定は次のとおりです。\n\n```yaml\nversion: \"v1\"\nenvironment: ambient\ncomponents:\n  - name: \"implement_feature\"\n    type: AgentComponent\n    prompt_id: \"implementation_prompt\"\n    inputs:\n      - from: \"context:goal\"\n        as: \"user_goal\"\n      - from: \"context:project_id\"\n        as: \"project_id\"\n    toolset:\n      - \"get_issue\"\n      - \"get_repository_file\"\n      - \"list_repository_tree\"\n      - \"find_files\"\n      - \"blob_search\"\n      - \"create_file\"\n      - \"create_commit\"\n      - \"create_merge_request\"\n      - \"create_issue_note\"\n    ui_log_events:\n      - \"on_agent_final_answer\"\n      - \"on_tool_execution_success\"\n      - \"on_tool_execution_failed\"\n\nprompts:\n  - name: \"Cheapflights Feature Implementation（Cheapflights機能実装）\"\n    prompt_id: \"implementation_prompt\"\n    unit_primitives: []\n    prompt_template:\n      system: |\n        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights（あなたは旅行予約プラットフォーム、特にCheapflightsを専門とするエキスパートフルスタックデベロッパーです）.\n\n        Your task is to（あなたのタスクは以下のとおりです）:\n        1. Extract the issue IID from the goal (look for \"Issue IID: XX\")\n        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details\n        3. Analyze the requirements for the flight search feature\n        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file\n        5. Design and implement the solution following Cheapflights best practices\n        6. Create all necessary code files using create_file (call multiple times for multiple files)\n        7. Commit the changes using create_commit\n        8. Create a merge request using create_merge_request\n        9. Post a summary comment to the issue using create_issue_note with the MR link\n\n        1. ゴールからイシューIIDを抽出する(「Issue IID: XX」を探す)\n        2. project_id={{project_id}}とissue_iidを使用してget_issueでイシューの詳細を取得\n        3. フライト検索機能の要件を分析\n        4. list_repository_tree、find_files、get_repository_fileを使用して既存のコードベースをレビュー\n        5. Cheapflightsのベストプラクティスに従ってソリューションを設計・実装\n        6. create_fileを使用して必要なコードファイルをすべて作成(複数ファイルの場合は複数回呼び出し)\n        7. create_commitを使用して変更をコミット\n        8. create_merge_requestを使用してマージリクエストを作成\n        9. create_issue_noteを使用してMRリンク付きの概要コメントをイシューに投稿\n\n        Cheapflights Domain Expertise（Cheapflightsドメインの専門知識）:\n        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)\n        - Fare comparison and pricing strategies\n        - Real-time availability and inventory management\n        - Travel industry UX patterns\n        - Performance optimization for high-traffic flight searches\n\n        - フライト検索・予約システム(Amadeus、Sabre、Skyscanner API)\n        - 運賃比較と価格戦略\n        - リアルタイムの空席状況と在庫管理\n        - 旅行業界のUXパターン\n        - 高トラフィックのフライト検索のためのパフォーマンス最適化\n\n        Code Standards（コーディング基準）:\n        - Clean, maintainable code (TypeScript/JavaScript/Python/React)\n        - Proper state management for React components\n        - RESTful API endpoints with comprehensive error handling\n        - Mobile-first responsive design\n        - Proper timezone handling (use moment-timezone or date-fns-tz)\n        - WCAG 2.1 accessibility compliance\n\n        - クリーンで保守性の高いコード(TypeScript/JavaScript/Python/React)\n        - Reactコンポーネントの適切な状態管理\n        - 包括的なエラーハンドリングを備えたRESTful APIエンドポイント\n        - モバイルファーストのレスポンシブデザイン\n        - 適切なタイムゾーン処理(moment-timezoneまたはdate-fns-tzを使用)\n        - WCAG 2.1アクセシビリティ準拠\n\n        Flight-Specific Best Practices（フライト固有のベストプラクティス）:\n        - Accurate fare calculations (base fare + taxes + fees + surcharges)\n        - Flight duration calculations across timezones\n        - Search filter logic (price range, number of stops, airlines, departure/arrival times)\n        - Sort algorithms (best value, fastest, cheapest)\n        - Handle edge cases: date line crossing, daylight saving time, red-eye flights\n        - Currency amounts use proper decimal handling (avoid floating point errors)\n        - Dates use ISO 8601 format\n        - Flight codes follow IATA standards (3-letter airport codes)\n\n        - 正確な運賃計算(基本運賃 + 税金 + 手数料 + 追加料金)\n        - タイムゾーンをまたぐフライト時間の計算\n        - 検索フィルターロジック(価格帯、経由便数、航空会社、出発/到着時刻)\n        - ソートアルゴリズム(ベストバリュー、最速、最安値)\n        - エッジケースの処理: 日付変更線の通過、サマータイム、深夜便\n        - 通貨金額は適切な小数処理を使用(浮動小数点エラーを回避)\n        - 日付はISO 8601形式を使用\n        - フライトコードはIATA標準に従う(3文字の空港コード)\n\n        Implementation Requirements（実装要件）:\n        - No TODOs or placeholder comments\n        - All functions must be fully implemented\n        - Include proper TypeScript types or Python type hints\n        - Add JSDoc/docstring comments for all functions\n        - Comprehensive error handling and input validation\n        - Basic unit tests for critical functions\n        - Performance considerations for handling large result sets\n\n        - To-Doやプレースホルダーコメントは不可\n        - すべての関数を完全に実装\n        - 適切なTypeScript型またはPython型ヒントを含める\n        - すべての関数にJSDoc/docstringコメントを追加\n        - 包括的なエラーハンドリングと入力検証\n        - 重要な関数の基本的な単体テスト\n        - 大規模な結果セットを処理するためのパフォーマンス考慮\n\n        CRITICAL - Your final comment on the issue MUST include（重要 - イシューへの最終コメントには以下を必ず含める）:\n        - Implementation Summary: Brief description of what was implemented\n        - Files Created/Modified: List of all files with descriptions\n        - Key Features: Bullet points of main functionality\n        - Technical Approach: Brief explanation of architecture/patterns used\n        - Testing Notes: How to test the implementation\n        - Merge Request Link: Direct link to the created MR (format: [View Merge Request](MR_URL))\n\n        - 実装概要: 実装内容の簡潔な説明\n        - 作成/変更されたファイル: すべてのファイルのリストと説明\n        - 主要機能: 主な機能の箇条書き\n        - 技術的アプローチ: アーキテクチャ/パターンの簡潔な説明\n        - テストに関する注意事項: 実装のテスト方法\n        - マージリクエストリンク: 作成されたMRへの直接リンク(形式: [マージリクエストを見る](MR_URL))\n\n        IMPORTANT TOOL USAGE（重要なツールの使用方法）:\n        - Extract the issue IID from the goal first (e.g., \"Issue IID: 12\" means issue_iid=12)\n        - Use get_issue with project_id={{project_id}} and issue_iid=\u003Cextracted_iid>\n        - Create multiple files by calling create_file multiple times (once per file)\n        - Use create_commit to commit all files together with a descriptive commit message\n        - Use create_merge_request to create the MR and capture the MR URL from the response\n        - Use create_issue_note with project_id={{project_id}}, noteable_id=\u003Cissue_iid>, and body=\u003Cyour complete summary with MR link>\n        - Make sure to include the MR link in the comment body so users can easily access it\n\n        - まずゴールからイシューIIDを抽出(例: 「Issue IID: 12」はissue_iid=12を意味する)\n        - project_id={{project_id}}とissue_iid=\u003C抽出したiid>でget_issueを使用\n        - create_fileを複数回呼び出して複数のファイルを作成(ファイルごとに1回)\n        - create_commitを使用して、わかりやすいコミットメッセージですべてのファイルを一緒にコミット\n        - create_merge_requestを使用してMRを作成し、レスポンスからMR URLを取得\n        - project_id={{project_id}}、noteable_id=\u003Cissue_iid>、body=\u003CMRリンクを含む完全な概要>でcreate_issue_noteを使用\n        - ユーザーが簡単にアクセスできるように、コメント本文にMRリンクを必ず含める\n\n      user: |\n        Goal: {{user_goal}}\n        Project ID: {{project_id}}\n\n        Please complete the following steps（以下の手順を完了してください）:\n        1. Extract the issue IID and retrieve full issue details\n        2. Analyze the requirements thoroughly\n        3. Review the existing codebase structure and patterns\n        4. Implement the feature with production-ready code\n        5. Create all necessary files (components, APIs, tests, documentation)\n        6. Commit all changes with a clear commit message\n        7. Create a merge request\n        8. Post a detailed summary comment to the issue including the MR link\n\n        1. イシューIIDを抽出し、イシューの詳細を取得\n        2. 要件を徹底的に分析\n        3. 既存のコードベース構造とパターンをレビュー\n        4. 本番環境対応のコードで機能を実装\n        5. 必要なすべてのファイルを作成(コンポーネント、API、テスト、ドキュメント)\n        6. 明確なコミットメッセージですべての変更をコミット\n        7. マージリクエストを作成\n        8. MRリンクを含む詳細な概要コメントをイシューに投稿\n\n      placeholder: history\n    params:\n      timeout: 300\n\nrouters:\n  - from: \"implement_feature\"\n    to: \"end\"\n\nflow:\n  entry_point: \"implement_feature\"\n```\n**このフローの機能**: このフローは、AIエージェントがイシュー要件の分析、コードベースのレビュー、ドメイン知識に基づく本番環境対応コードの作成、詳細なサマリー付きマージリクエストの作成まで、機能実装を自動で行います。\n\n完全なドキュメントと例については、以下を参照してください。\n\n- [カスタムフロードキュメント](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/custom/)\n- [フローレジストリフレームワーク（YAMLスキーマ）](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/docs/flow_registry/v1.md)\n\n## フローの実行\n\nフローはGitLabプラットフォームコンピュート上で実行されます。イベント(メンション、割り当て、ボタンクリック)によってトリガーされると、セッションが作成され、フローが実行を開始します。\n### 利用可能な環境変数\n\nフローは、トリガーとGitLabオブジェクトに関するコンテキストを提供する環境変数にアクセスできます。\n\n- **`AI_FLOW_CONTEXT`** — MR差分、イシュー説明、コメント、ディスカッションスレッドを含むJSON形式のコンテキスト\n- **`AI_FLOW_INPUT`** — フローをトリガーしたユーザーのプロンプトまたはコメントテキスト\n- **`AI_FLOW_EVENT`** — フローをトリガーしたイベントタイプ(`mention`、`assign`、`assign_reviewer`)\n\nこれらの変数により、フローは何がトリガーしたかを理解し、関連するGitLabデータにアクセスしてタスクを実行できます。\n\n### マルチエージェントフロー\n\nカスタムフローには、順次連携する複数のエージェントコンポーネントを含めることができます。フローのYAML設定は次を定義します。\n\n- **コンポーネント**: 1つ以上のエージェント（AgentComponent）または決定論的ステップ\n- **ルーター**: コンポーネント間のフローを定義(例: コンポーネントAからコンポーネントBから終了へ）\n- **プロンプト**: 各エージェントの動作とモデルを設定\n\nたとえば、コードレビューフローには、セキュリティエージェント、次に品質エージェント、次に承認エージェントがあり、ルーターがそれらを順番に接続します。\n\n### フロー実行の監視\n\nプロジェクトで実行中のフローを表示するには:\n\n1. **自動化** → **セッション**に移動します。\n2. 任意のセッションを選択して詳細を表示します。\n3. **詳細**タブにCI/CDジョブログへのリンクが表示されます。\n\nセッションには、ステップバイステップの進行状況、ツール呼び出し、推論、意思決定プロセスを含む詳細情報が表示されます。\n### フローを使用するタイミング\n- 複雑な複数ステップのタスク\n- バックグラウンド自動化\n- イベント駆動ワークフロー\n- 複数ファイルの変更\n- 時間がかかるタスク\n- 自動レビュー/チェック\n## 次のステップ\nフローの概念、作成方法、エージェントとの使い分けを理解しました。次に、[パート5: AIカタログ](https://about.gitlab.com/ja-jp/blog/ai-catalog-discover-and-share-agents/)で組織全体でエージェントとフローを検索、作成、共有する方法を学びます。AIカタログを活用して、利用可能なフローとエージェントの閲覧、プロジェクトへの追加、独自コンテンツの公開を行います。\n\n## 関連リンク\n\n- [GitLab Duo Agent Platform - フロー](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/)\n- [基本フローのドキュメント](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/)\n- [カスタムフローのドキュメント](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/custom/)\n- [フロー実行設定](https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/execution/)\n- [GitLab CI/CD変数ガイド](https://docs.gitlab.com/ja-jp/ci/variables/)\n- [サービスアカウント](https://docs.gitlab.com/ja-jp/user/profile/service_accounts/)\n\n---\n**次へ**: [パート5: AIカタログ](https://about.gitlab.com/ja-jp/blog/ai-catalog-discover-and-share-agents/)\n\n**前へ**: [パート3: エージェントを理解する](https://about.gitlab.com/ja-jp/blog/understanding-agents-foundational-custom-external/)","yml",{},true,"/ja-jp/blog/understanding-flows-multi-agent-workflows",{"noIndex":12,"title":25,"description":24,"ogImage":32},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg","ja-jp/blog/understanding-flows-multi-agent-workflows",[35,17,18,19],"aiml","McXyKNDhufCcI6Os24kdv6THvtbMmnTiUlXUAMGEDJw",{"data":38},{"logo":39,"freeTrial":44,"sales":49,"login":54,"items":59,"search":368,"minimal":401,"duo":418,"switchNav":427,"pricingDeployment":438},{"config":40},{"href":41,"dataGaName":42,"dataGaLocation":43},"/ja-jp/","gitlab logo","header",{"text":45,"config":46},"無料トライアルを開始",{"href":47,"dataGaName":48,"dataGaLocation":43},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":50,"config":51},"お問い合わせ",{"href":52,"dataGaName":53,"dataGaLocation":43},"/ja-jp/sales/","sales",{"text":55,"config":56},"サインイン",{"href":57,"dataGaName":58,"dataGaLocation":43},"https://gitlab.com/users/sign_in/","sign in",[60,87,184,189,290,350],{"text":61,"config":62,"cards":64},"プラットフォーム",{"dataNavLevelOne":63},"platform",[65,71,79],{"title":61,"description":66,"link":67},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":68,"config":69},"プラットフォームを探索",{"href":70,"dataGaName":63,"dataGaLocation":43},"/ja-jp/platform/",{"title":72,"description":73,"link":74},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":75,"config":76},"GitLab Duoのご紹介",{"href":77,"dataGaName":78,"dataGaLocation":43},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":80,"description":81,"link":82},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":83,"config":84},"詳細はこちら",{"href":85,"dataGaName":86,"dataGaLocation":43},"/ja-jp/why-gitlab/","why gitlab",{"text":88,"left":29,"config":89,"link":91,"lists":95,"footer":166},"製品",{"dataNavLevelOne":90},"solutions",{"text":92,"config":93},"すべてのソリューションを表示",{"href":94,"dataGaName":90,"dataGaLocation":43},"/ja-jp/solutions/",[96,121,144],{"title":97,"description":98,"link":99,"items":104},"自動化","CI/CDと自動化でデプロイを加速",{"config":100},{"icon":101,"href":102,"dataGaName":103,"dataGaLocation":43},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[105,109,112,117],{"text":106,"config":107},"CI/CD",{"href":108,"dataGaLocation":43,"dataGaName":106},"/ja-jp/solutions/continuous-integration/",{"text":72,"config":110},{"href":77,"dataGaLocation":43,"dataGaName":111},"gitlab duo agent platform - product menu",{"text":113,"config":114},"ソースコード管理",{"href":115,"dataGaLocation":43,"dataGaName":116},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":118,"config":119},"自動化されたソフトウェアデリバリー",{"href":102,"dataGaLocation":43,"dataGaName":120},"Automated software delivery",{"title":122,"description":123,"link":124,"items":129},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":125},{"href":126,"dataGaName":127,"dataGaLocation":43,"icon":128},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[130,134,139],{"text":131,"config":132},"アプリケーションセキュリティテスト",{"href":126,"dataGaName":133,"dataGaLocation":43},"Application security testing",{"text":135,"config":136},"ソフトウェアサプライチェーンの安全性",{"href":137,"dataGaLocation":43,"dataGaName":138},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":140,"config":141},"ソフトウェアコンプライアンス",{"href":142,"dataGaName":143,"dataGaLocation":43},"/ja-jp/solutions/software-compliance/","software compliance",{"title":145,"link":146,"items":151},"測定",{"config":147},{"icon":148,"href":149,"dataGaName":150,"dataGaLocation":43},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[152,156,161],{"text":153,"config":154},"可視性と測定",{"href":149,"dataGaLocation":43,"dataGaName":155},"Visibility and Measurement",{"text":157,"config":158},"バリューストリーム管理",{"href":159,"dataGaLocation":43,"dataGaName":160},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":162,"config":163},"分析とインサイト",{"href":164,"dataGaLocation":43,"dataGaName":165},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":167,"items":168},"GitLabが活躍する場所",[169,174,179],{"text":170,"config":171},"大企業",{"href":172,"dataGaLocation":43,"dataGaName":173},"/ja-jp/enterprise/","enterprise",{"text":175,"config":176},"スモールビジネス",{"href":177,"dataGaLocation":43,"dataGaName":178},"/ja-jp/small-business/","small business",{"text":180,"config":181},"公共部門",{"href":182,"dataGaLocation":43,"dataGaName":183},"/ja-jp/solutions/public-sector/","public sector",{"text":185,"config":186},"価格",{"href":187,"dataGaName":188,"dataGaLocation":43,"dataNavLevelOne":188},"/ja-jp/pricing/","pricing",{"text":190,"config":191,"link":193,"lists":197,"feature":277},"リソース",{"dataNavLevelOne":192},"resources",{"text":194,"config":195},"すべてのリソースを表示",{"href":196,"dataGaName":192,"dataGaLocation":43},"/ja-jp/resources/",[198,231,249],{"title":199,"items":200},"はじめに",[201,206,211,216,221,226],{"text":202,"config":203},"インストール",{"href":204,"dataGaName":205,"dataGaLocation":43},"/ja-jp/install/","install",{"text":207,"config":208},"クイックスタートガイド",{"href":209,"dataGaName":210,"dataGaLocation":43},"/ja-jp/get-started/","quick setup checklists",{"text":212,"config":213},"学ぶ",{"href":214,"dataGaLocation":43,"dataGaName":215},"https://university.gitlab.com/","learn",{"text":217,"config":218},"製品ドキュメント",{"href":219,"dataGaName":220,"dataGaLocation":43},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":222,"config":223},"ベストプラクティスビデオ",{"href":224,"dataGaName":225,"dataGaLocation":43},"/ja-jp/getting-started-videos/","best practice videos",{"text":227,"config":228},"インテグレーション",{"href":229,"dataGaName":230,"dataGaLocation":43},"/ja-jp/integrations/","integrations",{"title":232,"items":233},"検索する",[234,239,244],{"text":235,"config":236},"お客様成功事例",{"href":237,"dataGaName":238,"dataGaLocation":43},"/ja-jp/customers/","customer success stories",{"text":240,"config":241},"ブログ",{"href":242,"dataGaName":243,"dataGaLocation":43},"/ja-jp/blog/","blog",{"text":245,"config":246},"リモート",{"href":247,"dataGaName":248,"dataGaLocation":43},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":250,"items":251},"つなげる",[252,257,262,267,272],{"text":253,"config":254},"GitLabサービス",{"href":255,"dataGaName":256,"dataGaLocation":43},"/ja-jp/services/","services",{"text":258,"config":259},"コミュニティ",{"href":260,"dataGaName":261,"dataGaLocation":43},"/community/","community",{"text":263,"config":264},"フォーラム",{"href":265,"dataGaName":266,"dataGaLocation":43},"https://forum.gitlab.com/","forum",{"text":268,"config":269},"イベント",{"href":270,"dataGaName":271,"dataGaLocation":43},"/events/","events",{"text":273,"config":274},"パートナー",{"href":275,"dataGaName":276,"dataGaLocation":43},"/ja-jp/partners/","partners",{"backgroundColor":278,"textColor":279,"text":280,"image":281,"link":285},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":282,"config":283},"ソースプロモカード",{"src":284},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":286,"config":287},"最新情報を読む",{"href":288,"dataGaName":289,"dataGaLocation":43},"/ja-jp/the-source/","the source",{"text":291,"config":292,"lists":294},"会社情報",{"dataNavLevelOne":293},"company",[295],{"items":296},[297,302,308,310,315,320,325,330,335,340,345],{"text":298,"config":299},"GitLabについて",{"href":300,"dataGaName":301,"dataGaLocation":43},"/ja-jp/company/","about",{"text":303,"config":304,"footerGa":307},"採用情報",{"href":305,"dataGaName":306,"dataGaLocation":43},"/jobs/","jobs",{"dataGaName":306},{"text":268,"config":309},{"href":270,"dataGaName":271,"dataGaLocation":43},{"text":311,"config":312},"経営陣",{"href":313,"dataGaName":314,"dataGaLocation":43},"/company/team/e-group/","leadership",{"text":316,"config":317},"チーム",{"href":318,"dataGaName":319,"dataGaLocation":43},"/company/team/","team",{"text":321,"config":322},"ハンドブック",{"href":323,"dataGaName":324,"dataGaLocation":43},"https://handbook.gitlab.com/","handbook",{"text":326,"config":327},"投資家向け情報",{"href":328,"dataGaName":329,"dataGaLocation":43},"https://ir.gitlab.com/","investor relations",{"text":331,"config":332},"トラストセンター",{"href":333,"dataGaName":334,"dataGaLocation":43},"/ja-jp/security/","trust center",{"text":336,"config":337},"AI Transparency Center",{"href":338,"dataGaName":339,"dataGaLocation":43},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":341,"config":342},"ニュースレター",{"href":343,"dataGaName":344,"dataGaLocation":43},"/company/contact/#contact-forms","newsletter",{"text":346,"config":347},"プレス",{"href":348,"dataGaName":349,"dataGaLocation":43},"/press/","press",{"text":50,"config":351,"lists":352},{"dataNavLevelOne":293},[353],{"items":354},[355,358,363],{"text":50,"config":356},{"href":52,"dataGaName":357,"dataGaLocation":43},"talk to sales",{"text":359,"config":360},"サポートを受ける",{"href":361,"dataGaName":362,"dataGaLocation":43},"https://support.gitlab.com","support portal",{"text":364,"config":365},"カスタマーポータル",{"href":366,"dataGaName":367,"dataGaLocation":43},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":369,"login":370,"suggestions":377},"閉じる",{"text":371,"link":372},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":373,"config":374},"GitLab.com",{"href":57,"dataGaName":375,"dataGaLocation":376},"search login","search",{"text":378,"default":379},"提案",[380,382,387,389,393,397],{"text":72,"config":381},{"href":77,"dataGaName":72,"dataGaLocation":376},{"text":383,"config":384},"コード提案（AI）",{"href":385,"dataGaName":386,"dataGaLocation":376},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":106,"config":388},{"href":108,"dataGaName":106,"dataGaLocation":376},{"text":390,"config":391},"GitLab on AWS",{"href":392,"dataGaName":390,"dataGaLocation":376},"/ja-jp/partners/technology-partners/aws/",{"text":394,"config":395},"GitLab on Google Cloud",{"href":396,"dataGaName":394,"dataGaLocation":376},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":398,"config":399},"GitLabを選ぶ理由",{"href":85,"dataGaName":400,"dataGaLocation":376},"Why GitLab?",{"freeTrial":402,"mobileIcon":406,"desktopIcon":411,"secondaryButton":414},{"text":45,"config":403},{"href":404,"dataGaName":48,"dataGaLocation":405},"https://gitlab.com/-/trials/new/","nav",{"altText":407,"config":408},"GitLabアイコン",{"src":409,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":407,"config":412},{"src":413,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":199,"config":415},{"href":416,"dataGaName":417,"dataGaLocation":405},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":419,"mobileIcon":423,"desktopIcon":425},{"text":420,"config":421},"GitLab Duoの詳細について",{"href":77,"dataGaName":422,"dataGaLocation":405},"gitlab duo",{"altText":407,"config":424},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":426},{"src":413,"dataGaName":410,"dataGaLocation":405},{"button":428,"mobileIcon":433,"desktopIcon":435},{"text":429,"config":430},"/switch",{"href":431,"dataGaName":432,"dataGaLocation":405},"#contact","switch",{"altText":407,"config":434},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":436},{"src":437,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":439,"mobileIcon":444,"desktopIcon":446},{"text":440,"config":441},"料金ページに戻る",{"href":187,"dataGaName":442,"dataGaLocation":405,"icon":443},"back to pricing","GoBack",{"altText":407,"config":445},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":447},{"src":413,"dataGaName":410,"dataGaLocation":405},{"title":449,"button":450,"config":455},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":451,"config":452},"GitLab Transcendを今すぐ視聴",{"href":453,"dataGaName":454,"dataGaLocation":43},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":456,"icon":457,"disabled":29},"release","AiStar",{"data":459},{"text":460,"source":461,"edit":467,"contribute":472,"config":477,"items":482,"minimal":685},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":462,"config":463},"ページのソースを表示",{"href":464,"dataGaName":465,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":468,"config":469},"このページを編集",{"href":470,"dataGaName":471,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":473,"config":474},"ご協力をお願いします",{"href":475,"dataGaName":476,"dataGaLocation":466},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":478,"facebook":479,"youtube":480,"linkedin":481},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[483,528,581,624,651],{"title":185,"links":484,"subMenu":499},[485,489,494],{"text":486,"config":487},"プランの表示",{"href":187,"dataGaName":488,"dataGaLocation":466},"view plans",{"text":490,"config":491},"Premiumを選ぶ理由",{"href":492,"dataGaName":493,"dataGaLocation":466},"/ja-jp/pricing/premium/","why premium",{"text":495,"config":496},"Ultimateを選ぶ理由",{"href":497,"dataGaName":498,"dataGaLocation":466},"/ja-jp/pricing/ultimate/","why ultimate",[500],{"title":50,"links":501},[502,504,506,508,513,518,523],{"text":50,"config":503},{"href":52,"dataGaName":53,"dataGaLocation":466},{"text":359,"config":505},{"href":361,"dataGaName":362,"dataGaLocation":466},{"text":364,"config":507},{"href":366,"dataGaName":367,"dataGaLocation":466},{"text":509,"config":510},"ステータス",{"href":511,"dataGaName":512,"dataGaLocation":466},"https://status.gitlab.com/","status",{"text":514,"config":515},"利用規約",{"href":516,"dataGaName":517,"dataGaLocation":466},"/terms/","terms of use",{"text":519,"config":520},"プライバシーに関する声明",{"href":521,"dataGaName":522,"dataGaLocation":466},"/ja-jp/privacy/","privacy statement",{"text":524,"config":525},"Cookie 優先設定",{"dataGaName":526,"dataGaLocation":466,"id":527,"isOneTrustButton":29},"cookie preferences","ot-sdk-btn",{"title":88,"links":529,"subMenu":538},[530,534],{"text":531,"config":532},"DevSecOpsプラットフォーム",{"href":70,"dataGaName":533,"dataGaLocation":466},"devsecops platform",{"text":535,"config":536},"AI支援開発",{"href":77,"dataGaName":537,"dataGaLocation":466},"ai-assisted development",[539],{"title":540,"links":541},"トピック",[542,546,551,556,561,566,571,576],{"text":106,"config":543},{"href":544,"dataGaName":545,"dataGaLocation":466},"/ja-jp/topics/ci-cd/","cicd",{"text":547,"config":548},"GitOps",{"href":549,"dataGaName":550,"dataGaLocation":466},"/ja-jp/topics/gitops/","gitops",{"text":552,"config":553},"DevOps",{"href":554,"dataGaName":555,"dataGaLocation":466},"/ja-jp/topics/devops/","devops",{"text":557,"config":558},"バージョン管理",{"href":559,"dataGaName":560,"dataGaLocation":466},"/ja-jp/topics/version-control/","version control",{"text":562,"config":563},"DevSecOps",{"href":564,"dataGaName":565,"dataGaLocation":466},"/ja-jp/topics/devsecops/","devsecops",{"text":567,"config":568},"クラウドネイティブ",{"href":569,"dataGaName":570,"dataGaLocation":466},"/ja-jp/topics/cloud-native/","cloud native",{"text":572,"config":573},"コーディングのためのAI",{"href":574,"dataGaName":575,"dataGaLocation":466},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":577,"config":578},"エージェント型AI",{"href":579,"dataGaName":580,"dataGaLocation":466},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":582,"links":583},"ソリューション",[584,587,589,594,598,601,604,607,609,611,614,619],{"text":131,"config":585},{"href":126,"dataGaName":586,"dataGaLocation":466},"Application Security Testing",{"text":118,"config":588},{"href":102,"dataGaName":103,"dataGaLocation":466},{"text":590,"config":591},"アジャイル開発",{"href":592,"dataGaName":593,"dataGaLocation":466},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":595,"config":596},"SCM",{"href":115,"dataGaName":597,"dataGaLocation":466},"source code management",{"text":106,"config":599},{"href":108,"dataGaName":600,"dataGaLocation":466},"continuous integration & delivery",{"text":157,"config":602},{"href":159,"dataGaName":603,"dataGaLocation":466},"value stream management",{"text":547,"config":605},{"href":606,"dataGaName":550,"dataGaLocation":466},"/ja-jp/solutions/gitops/",{"text":170,"config":608},{"href":172,"dataGaName":173,"dataGaLocation":466},{"text":175,"config":610},{"href":177,"dataGaName":178,"dataGaLocation":466},{"text":612,"config":613},"公共機関",{"href":182,"dataGaName":183,"dataGaLocation":466},{"text":615,"config":616},"教育",{"href":617,"dataGaName":618,"dataGaLocation":466},"/ja-jp/solutions/education/","education",{"text":620,"config":621},"金融サービス",{"href":622,"dataGaName":623,"dataGaLocation":466},"/ja-jp/solutions/finance/","financial services",{"title":190,"links":625},[626,628,630,632,635,637,639,641,643,645,647,649],{"text":202,"config":627},{"href":204,"dataGaName":205,"dataGaLocation":466},{"text":207,"config":629},{"href":209,"dataGaName":210,"dataGaLocation":466},{"text":212,"config":631},{"href":214,"dataGaName":215,"dataGaLocation":466},{"text":217,"config":633},{"href":219,"dataGaName":634,"dataGaLocation":466},"docs",{"text":240,"config":636},{"href":242,"dataGaName":243,"dataGaLocation":466},{"text":235,"config":638},{"href":237,"dataGaName":238,"dataGaLocation":466},{"text":245,"config":640},{"href":247,"dataGaName":248,"dataGaLocation":466},{"text":253,"config":642},{"href":255,"dataGaName":256,"dataGaLocation":466},{"text":258,"config":644},{"href":260,"dataGaName":261,"dataGaLocation":466},{"text":263,"config":646},{"href":265,"dataGaName":266,"dataGaLocation":466},{"text":268,"config":648},{"href":270,"dataGaName":271,"dataGaLocation":466},{"text":273,"config":650},{"href":275,"dataGaName":276,"dataGaLocation":466},{"title":291,"links":652},[653,655,657,659,661,663,665,669,674,676,678,680],{"text":298,"config":654},{"href":300,"dataGaName":293,"dataGaLocation":466},{"text":303,"config":656},{"href":305,"dataGaName":306,"dataGaLocation":466},{"text":311,"config":658},{"href":313,"dataGaName":314,"dataGaLocation":466},{"text":316,"config":660},{"href":318,"dataGaName":319,"dataGaLocation":466},{"text":321,"config":662},{"href":323,"dataGaName":324,"dataGaLocation":466},{"text":326,"config":664},{"href":328,"dataGaName":329,"dataGaLocation":466},{"text":666,"config":667},"Sustainability",{"href":668,"dataGaName":666,"dataGaLocation":466},"/sustainability/",{"text":670,"config":671},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":672,"dataGaName":673,"dataGaLocation":466},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":331,"config":675},{"href":333,"dataGaName":334,"dataGaLocation":466},{"text":341,"config":677},{"href":343,"dataGaName":344,"dataGaLocation":466},{"text":346,"config":679},{"href":348,"dataGaName":349,"dataGaLocation":466},{"text":681,"config":682},"現代奴隷制の透明性に関する声明",{"href":683,"dataGaName":684,"dataGaLocation":466},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":686},[687,689,692],{"text":514,"config":688},{"href":516,"dataGaName":517,"dataGaLocation":466},{"text":690,"config":691},"Cookieの設定",{"dataGaName":526,"dataGaLocation":466,"id":527,"isOneTrustButton":29},{"text":519,"config":693},{"href":521,"dataGaName":522,"dataGaLocation":466},[695],{"id":696,"title":23,"body":8,"config":697,"content":699,"description":8,"extension":27,"meta":703,"navigation":29,"path":704,"seo":705,"stem":706,"__hash__":707},"blogAuthors/en-us/blog/authors/itzik-gan-baruch.yml",{"template":698},"BlogAuthor",{"name":23,"config":700},{"headshot":701,"ctfId":702},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch",{},"/en-us/blog/authors/itzik-gan-baruch",{},"en-us/blog/authors/itzik-gan-baruch","bz9VMiTQ1ixvnoxUFk0jiUcnLG3oQsymgXNCqyRqfsk",[709,724,737],{"content":710,"config":722},{"title":711,"description":712,"authors":713,"body":716,"heroImage":717,"date":718,"category":9,"tags":719},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[714,715],"Regnard Raquedan","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",[16,276,720,721,17],"google","news",{"featured":29,"template":13,"slug":723},"gitlab-and-vertex-ai-on-google-cloud",{"content":725,"config":735},{"heroImage":726,"body":727,"authors":728,"updatedDate":730,"date":731,"title":732,"tags":733,"description":734,"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/)",[729],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[17,19],"MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":12,"template":13,"slug":736},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"content":738,"config":749},{"heroImage":739,"body":740,"authors":741,"updatedDate":743,"date":744,"title":745,"tags":746,"description":748,"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まずはチームの最も緊急な課題に対応する「初級」タグのプロンプトから始めましょう。チームが自信をつけるにつれ、より高度なワークフローを実現する中級・上級のプロンプトへと探求の幅を広げてください。目標は単に速いコーディングではなく、計画から本番まで、より速く、より安全で、より高品質なソフトウェア提供の実現です。",[742],"Chandler Gibbons","2026-03-13","2026-03-04","チームのソフトウェア提供を加速する10のAIプロンプト",[16,747],"DevOps platform","ソフトウェアライフサイクル全体をカバーするすぐに使えるAIプロンプトで、レビューの滞留、セキュリティの遅延、調整の手間を解消します。",{"featured":12,"template":13,"slug":750},"10-ai-prompts-to-speed-your-teams-software-delivery",{"promotions":752},[753,766,777,789],{"id":754,"categories":755,"header":756,"text":757,"button":758,"image":763},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":759,"config":760},"Get your AI maturity score",{"href":761,"dataGaName":762,"dataGaLocation":243},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":764},{"src":765},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":767,"categories":768,"header":769,"text":757,"button":770,"image":774},"devops-modernization",[17,565],"Are you just managing tools or shipping innovation?",{"text":771,"config":772},"Get your DevOps maturity score",{"href":773,"dataGaName":762,"dataGaLocation":243},"/assessments/devops-modernization-assessment/",{"config":775},{"src":776},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":778,"categories":779,"header":781,"text":757,"button":782,"image":786},"security-modernization",[780],"security","Are you trading speed for security?",{"text":783,"config":784},"Get your security maturity score",{"href":785,"dataGaName":762,"dataGaLocation":243},"/assessments/security-modernization-assessment/",{"config":787},{"src":788},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":790,"paths":791,"header":794,"text":795,"button":796,"image":801},"github-azure-migration",[792,793],"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":797,"config":798},"See how GitLab compares to GitHub",{"href":799,"dataGaName":800,"dataGaLocation":243},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":802},{"src":776},{"header":804,"blurb":805,"button":806,"secondaryButton":810},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":45,"config":807},{"href":808,"dataGaName":48,"dataGaLocation":809},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":50,"config":811},{"href":52,"dataGaName":53,"dataGaLocation":809},1777394100612]