[{"data":1,"prerenderedAt":2978},["ShallowReactive",2],{"/ja-jp/blog/understanding-flows-multi-agent-workflows":3,"navigation-ja-jp":2200,"banner-ja-jp":2628,"footer-ja-jp":2636,"blog-post-authors-ja-jp-Itzik Gan Baruch":2878,"blog-related-posts-ja-jp-understanding-flows-multi-agent-workflows":2893,"blog-promotions-ja-jp":2917,"next-steps-ja-jp":2969},{"id":4,"title":5,"authors":6,"body":8,"category":2180,"date":2181,"description":2182,"extension":2183,"externalUrl":2184,"faq":2184,"featured":2185,"heroImage":2186,"meta":2187,"navigation":933,"path":2188,"seo":2189,"slug":2191,"stem":2192,"tags":2193,"template":2198,"updatedDate":2184,"__hash__":2199},"blogPosts/ja-jp/blog/understanding-flows-multi-agent-workflows.md","フローを理解する：マルチエージェントワークフロー",[7],"Itzik Gan Baruch",{"type":9,"value":10,"toc":2157},"minimark",[11,25,31,65,79,83,86,91,123,126,130,133,220,223,283,285,288,292,427,429,432,445,448,451,456,488,491,499,526,529,532,535,541,551,557,575,594,600,615,627,630,633,644,649,675,679,685,1920,1926,1929,1944,1947,1950,1953,1956,1993,1996,1999,2002,2019,2022,2025,2028,2049,2052,2055,2075,2078,2087,2090,2132,2135,2143,2153],[12,13,14],"p",{},[15,16,17,18,24],"em",{},"8部構成ガイド「",[19,20,23],"a",{"href":21,"rel":22},"https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-complete-getting-started-guide/",[],"GitLab Duo Agent Platformを始める","」のパート4へようこそ。開発ライフサイクル内でのAIエージェントとワークフローの構築・デプロイをマスターします。最初の対話から完全カスタマイズ可能なプロダクション対応の自動化ワークフローまで、段階的なチュートリアルに従ってください。",[12,26,27],{},[28,29,30],"strong",{},"この記事の内容:",[32,33,34,41,47,53,59],"ul",{},[35,36,37],"li",{},[19,38,40],{"href":39},"#introduction-to-flows","フローとは何か、どのように機能するか",[35,42,43],{},[19,44,46],{"href":45},"#foundational-flows","GitLabが提供する基本フロー",[35,48,49],{},[19,50,52],{"href":51},"#how-to-create-custom-flows","カスタムフローの作成",[35,54,55],{},[19,56,58],{"href":57},"#flow-execution","フローの実行とオーケストレーション",[35,60,61],{},[19,62,64],{"href":63},"#example-custom-flow-yaml","実例とユースケース",[66,67,68],"blockquote",{},[12,69,70,71,78],{},"🎯 今すぐ",[19,72,75],{"href":73,"rel":74},"https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/",[],[28,76,77],{},"GitLab Duo Agent Platform","をお試しください！",[80,81,82],"h2",{"id":82},"フローの紹介",[12,84,85],{},"フローは、1つ以上のエージェントが協働する組み合わせです。複雑な問題を解決するために複数ステップのワークフローを調整し、GitLabプラットフォームコンピュート上で実行されます。",[12,87,88],{},[28,89,90],{},"フローの主な特徴:",[32,92,93,99,105,111,117],{},[35,94,95,98],{},[28,96,97],{},"マルチエージェントオーケストレーション",": 複数の専門エージェントを組み合わせ",[35,100,101,104],{},[28,102,103],{},"ビルトイン",": プラットフォームコンピュート上で実行、追加環境不要",[35,106,107,110],{},[28,108,109],{},"イベント駆動",": メンション、割り当て、レビュアーとしての割り当てでトリガー",[35,112,113,116],{},[28,114,115],{},"非同期",": 作業を続けながらバックグラウンドで実行",[35,118,119,122],{},[28,120,121],{},"完全なワークフロー",": 分析から実装までエンドツーエンドのタスクを処理",[12,124,125],{},"フローは、情報収集から意思決定、変更の実行、結果の提供まで、すべて自動で行う自律的なワークフローです。あなたは他の作業に集中できます。",[80,127,129],{"id":128},"フロー-vs-エージェント-違いを理解する","フロー vs. エージェント: 違いを理解する",[12,131,132],{},"エージェントはあなたと対話的に作業します。フローはあなたのために自律的に作業します。",[134,135,136,152],"table",{},[137,138,139],"thead",{},[140,141,142,146,149],"tr",{},[143,144,145],"th",{},"側面",[143,147,148],{},"エージェント",[143,150,151],{},"フロー",[153,154,155,169,182,195,208],"tbody",{},[140,156,157,163,166],{},[158,159,160],"td",{},[28,161,162],{},"インタラクション",[158,164,165],{},"対話型チャット",[158,167,168],{},"自律的な実行",[140,170,171,176,179],{},[158,172,173],{},[28,174,175],{},"使用タイミング",[158,177,178],{},"質問、ガイダンス、対話的なタスク実行",[158,180,181],{},"自律的な複数ステップワークフロー",[140,183,184,189,192],{},[158,185,186],{},[28,187,188],{},"ユーザーの関与",[158,190,191],{},"アクティブな会話",[158,193,194],{},"トリガーと結果のレビュー",[140,196,197,202,205],{},[158,198,199],{},[28,200,201],{},"実行時間",[158,203,204],{},"リアルタイム応答",[158,206,207],{},"バックグラウンド処理",[140,209,210,215,218],{},[158,211,212],{},[28,213,214],{},"複雑さ",[158,216,217],{},"単一エージェントタスク",[158,219,97],{},[80,221,222],{"id":222},"フロータイプの概要",[134,224,225,241],{},[137,226,227],{},[140,228,229,232,235,238],{},[143,230,231],{},"タイプ",[143,233,234],{},"インターフェース",[143,236,237],{},"メンテナー",[143,239,240],{},"ユースケース",[153,242,243,263],{},[140,244,245,254,257,260],{},[158,246,247],{},[28,248,249],{},[19,250,253],{"href":251,"rel":252},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/",[],"基本フロー",[158,255,256],{},"UIアクション、IDEインターフェース",[158,258,259],{},"GitLab",[158,261,262],{},"ソフトウェア開発、イシュー内のデベロッパー、CI/CDパイプライン修正、GitLab CI/CDへの変換、コードレビュー、SAST誤検知判定",[140,264,265,274,277,280],{},[158,266,267],{},[28,268,269],{},[19,270,273],{"href":271,"rel":272},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/custom/",[],"カスタムフロー",[158,275,276],{},"メンション、割り当て、レビュアー割り当て",[158,278,279],{},"自分",[158,281,282],{},"例: 大規模な移行/最新化、リリース自動化、依存関係更新管理",[80,284,253],{"id":253},[12,286,287],{},"基本フローは、GitLabが作成・保守するプロダクション対応のワークフローです。専用のUIコントロールまたはIDEインターフェースからアクセスできます。",[289,290,291],"h3",{"id":291},"現在利用可能な基本フロー",[134,293,294,309],{},[137,295,296],{},[140,297,298,300,303,306],{},[143,299,151],{},[143,301,302],{},"利用可能な場所",[143,304,305],{},"アクセス方法",[143,307,308],{},"最適な用途",[153,310,311,331,351,370,389,408],{},[140,312,313,322,325,328],{},[158,314,315],{},[19,316,319],{"href":317,"rel":318},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/software_development/",[],[28,320,321],{},"ソフトウェア開発フロー",[158,323,324],{},"IDE(VS Code、JetBrains、Visual Studio)",[158,326,327],{},"IDEのFlowsタブ",[158,329,330],{},"機能実装、複雑なリファクタリング、複数ファイルの変更",[140,332,333,342,345,348],{},[158,334,335],{},[19,336,339],{"href":337,"rel":338},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/developer/",[],[28,340,341],{},"デベロッパーフロー",[158,343,344],{},"GitLab Web UI",[158,346,347],{},"イシューの「Duoでマージリクエストを生成」ボタン",[158,349,350],{},"明確に定義された機能、明確な手順のあるバグ修正",[140,352,353,362,364,367],{},[158,354,355],{},[19,356,359],{"href":357,"rel":358},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/",[],[28,360,361],{},"CI/CDパイプライン修復フロー",[158,363,344],{},[158,365,366],{},"失敗したパイプラインインターフェース",[158,368,369],{},"パイプラインデバッグ、CI/CD設定の問題",[140,371,372,381,383,386],{},[158,373,374],{},[19,375,378],{"href":376,"rel":377},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/",[],[28,379,380],{},"GitLab CI/CD変換フロー",[158,382,344],{},[158,384,385],{},"Jenkinsfileの「Convert to GitLab CI/CD」ボタン",[158,387,388],{},"JenkinsからGitLab CI/CDへの移行",[140,390,391,400,402,405],{},[158,392,393],{},[19,394,397],{"href":395,"rel":396},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/code_review/",[],[28,398,399],{},"コードレビューフロー",[158,401,344],{},[158,403,404],{},"MRでレビュアーとして割り当て",[158,406,407],{},"AIネイティブ分析とフィードバックによる自動コードレビュー",[140,409,410,419,421,424],{},[158,411,412],{},[19,413,416],{"href":414,"rel":415},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/foundational_flows/sast_false_positive_detection/",[],[28,417,418],{},"SAST誤検出判定フロー",[158,420,344],{},[158,422,423],{},"セキュリティスキャン結果",[158,425,426],{},"SAST検出結果の誤検知を自動的に特定してフィルタリング",[80,428,273],{"id":273},[12,430,431],{},"カスタムフローは、チームの特定のニーズに合わせて作成するYAML定義のワークフローです。GitLab Runnerで実行され、GitLabイベントによってトリガーできます。",[66,433,434],{},[12,435,436,439,444],{},[28,437,438],{},"🎯 今すぐ試す:",[19,440,443],{"href":441,"rel":442},"https://gitlab.navattic.com/custom-flows",[],"カスタムフローのインタラクティブデモ"," — カスタムフローの作成と設定方法を探索します。",[289,446,447],{"id":447},"カスタムフローを作成する理由",[12,449,450],{},"カスタムフローは、チームのワークフローに固有の反復的な複数ステップタスクを自動化します。一般的な目的に使用される基本フローとは異なり、カスタムフローは組織のプロセス、ツール、要件に合わせて調整されます。",[12,452,453],{},[28,454,455],{},"一般的なユースケース:",[32,457,458,464,470,476,482],{},[35,459,460,463],{},[28,461,462],{},"自動コードレビュー",": 複数段階のレビュープロセス(セキュリティスキャン → 品質チェック → スタイル検証)",[35,465,466,469],{},[28,467,468],{},"コンプライアンスチェック",": 各MRで規制要件、ライセンスコンプライアンス、セキュリティポリシーを確認",[35,471,472,475],{},[28,473,474],{},"ドキュメント生成",": コード変更に基づいてAPIドキュメント、READMEファイル、変更ログを自動更新",[35,477,478,481],{},[28,479,480],{},"依存関係管理",": 週次セキュリティスキャン、自動更新、脆弱性レポート",[35,483,484,487],{},[28,485,486],{},"カスタムテスト",": 技術スタック用の特殊なテストスイートまたは統合テスト",[289,489,490],{"id":490},"実例",[12,492,493,494,498],{},"フィンテック企業は、すべてのマージリクエストで実行されるコンプライアンスフローを作成します。",[495,496,497],"code",{},"@compliance-flow","でトリガーされると、フローは次のステップを実行します。",[500,501,502,508,514,520],"ol",{},[35,503,504,507],{},[28,505,506],{},"セキュリティエージェント","がPCI-DSS違反のコードをスキャンし、露出した機密データをチェックします。",[35,509,510,513],{},[28,511,512],{},"コードレビューエージェント","が変更がセキュアコーディング標準とベストプラクティスに従っていることを確認します。",[35,515,516,519],{},[28,517,518],{},"ドキュメントエージェント","がAPI変更に更新されたドキュメントが含まれているかチェックします。",[35,521,522,525],{},[28,523,524],{},"サマリーエージェント","が検出結果を集約し、合格/不合格ステータスのコンプライアンスレポートを投稿します。",[12,527,528],{},"コンプライアンスレビュー全体が5〜10分で自動的に実行され、すべてのマージリクエストで一貫したチェックが提供されます。",[289,530,531],{"id":531},"カスタムフローのトリガー方法",[12,533,534],{},"カスタムフローは複数の方法でトリガーできます。",[12,536,537,540],{},[28,538,539],{},"1. イシュー/MRでのメンション:","\nコメントでフローをメンションしてトリガーします。ドキュメント生成フローの例:",[542,543,549],"pre",{"className":544,"code":546,"language":547,"meta":548},[545],"language-text","@doc-generator Generate API documentation for this feature\n","text","",[495,550,546],{"__ignoreMap":548},[12,552,553,556],{},[28,554,555],{},"2. イシューまたはMRへのフローの割り当て:","\n次のいずれかを使用してフローを割り当てます。",[32,558,559,565],{},[35,560,561,564],{},[28,562,563],{},"GitLab UI",": イシュー/MRの「アサイン」ボタンをクリックしてフローを選択",[35,566,567,570,571,574],{},[28,568,569],{},"コマンド",": コメントで",[495,572,573],{},"/assign","コマンドを使用。例:",[542,576,580],{"className":577,"code":578,"language":579,"meta":548,"style":548},"language-shell shiki shiki-themes github-light","/assign @doc-generator\n","shell",[495,581,582],{"__ignoreMap":548},[583,584,587,590],"span",{"class":585,"line":586},"line",1,[583,588,573],{"class":589},"s7eDp",[583,591,593],{"class":592},"sYBdl"," @doc-generator\n",[12,595,596,599],{},[28,597,598],{},"3. レビュアーとしてのフローの割り当て:","\n次のいずれかを使用してマージリクエストにレビュアーとしてフローを割り当てます。",[32,601,602,607],{},[35,603,604,606],{},[28,605,563],{},": マージリクエストの「レビュアーをアサインする」ボタンをクリックしてフローを選択",[35,608,609,611,612,574],{},[28,610,569],{},":コメントで",[495,613,614],{},"/assign_reviewer",[542,616,618],{"className":577,"code":617,"language":579,"meta":548,"style":548},"/assign_reviewer @doc-reviewer\n",[495,619,620],{"__ignoreMap":548},[583,621,622,624],{"class":585,"line":586},[583,623,614],{"class":589},[583,625,626],{"class":592}," @doc-reviewer\n",[12,628,629],{},"これらの方法のいずれかにより、フローが自動的にトリガーされ、タスクを実行します。",[289,631,632],{"id":632},"カスタムフローの作成方法",[12,634,635,636,639,640,643],{},"カスタムフローは、プロジェクトの",[28,637,638],{},"自動化 → フロー → 新しいフロー","、または",[28,641,642],{},"検索 → AIカタログ → フロー → 新しいフロー","からGitLab UIを通じて作成されます。コンポーネント、プロンプト、ルーティング、実行フローを指定するYAML設定を使用してフローを定義します。YAMLスキーマにより、エージェントの動作とオーケストレーションを正確に制御できる洗練されたマルチエージェントワークフローを作成できます。",[12,645,646],{},[28,647,648],{},"カスタムフローの主要要素:",[32,650,651,657,663,669],{},[35,652,653,656],{},[28,654,655],{},"コンポーネント",": ワークフロー内のエージェントとステップを定義",[35,658,659,662],{},[28,660,661],{},"プロンプト",": AIモデルの動作と指示を設定",[35,664,665,668],{},[28,666,667],{},"ルーター",": コンポーネント間のフローを制御",[35,670,671,674],{},[28,672,673],{},"ツールセット",": エージェントが使用できるGitLab APIツールを指定",[289,676,678],{"id":677},"カスタムフローyamlの例","カスタムフローYAMLの例",[12,680,681,684],{},[28,682,683],{},"背景",": この例は、旅行予約プラットフォームの機能実装フローを示しています。デベロッパーが機能要件を含むイシューを作成すると、このフローをトリガーして、要件の分析、コードベースのレビュー、ソリューションの実装、マージリクエストの作成まで、すべて手動介入なしで自動的に実行できます。\nYAML設定は次のとおりです。",[542,686,690],{"className":687,"code":688,"language":689,"meta":548,"style":548},"language-yaml shiki shiki-themes github-light","version: \"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","yaml",[495,691,692,705,716,725,739,750,761,769,783,794,806,816,824,832,840,848,856,864,872,880,888,896,904,912,920,928,935,943,955,964,973,981,993,999,1004,1010,1016,1022,1028,1034,1040,1046,1052,1058,1064,1069,1075,1081,1087,1093,1099,1105,1111,1117,1123,1128,1134,1140,1146,1152,1158,1164,1169,1175,1181,1187,1193,1199,1204,1210,1216,1222,1228,1234,1240,1246,1251,1257,1263,1269,1275,1281,1287,1292,1298,1304,1310,1316,1322,1328,1334,1340,1346,1351,1357,1363,1369,1375,1381,1387,1393,1399,1404,1410,1416,1422,1428,1434,1440,1446,1452,1457,1463,1469,1475,1481,1487,1493,1499,1504,1510,1516,1522,1528,1534,1540,1546,1551,1557,1563,1569,1575,1581,1587,1592,1598,1604,1610,1616,1622,1628,1634,1640,1645,1651,1657,1663,1669,1675,1681,1687,1692,1702,1708,1714,1719,1725,1731,1737,1743,1749,1755,1761,1767,1773,1778,1784,1790,1796,1802,1808,1814,1820,1826,1831,1842,1850,1862,1867,1875,1886,1897,1902,1910],{"__ignoreMap":548},[583,693,694,698,702],{"class":585,"line":586},[583,695,697],{"class":696},"shJU0","version",[583,699,701],{"class":700},"sgsFI",": ",[583,703,704],{"class":592},"\"v1\"\n",[583,706,708,711,713],{"class":585,"line":707},2,[583,709,710],{"class":696},"environment",[583,712,701],{"class":700},[583,714,715],{"class":592},"ambient\n",[583,717,719,722],{"class":585,"line":718},3,[583,720,721],{"class":696},"components",[583,723,724],{"class":700},":\n",[583,726,728,731,734,736],{"class":585,"line":727},4,[583,729,730],{"class":700},"  - ",[583,732,733],{"class":696},"name",[583,735,701],{"class":700},[583,737,738],{"class":592},"\"implement_feature\"\n",[583,740,742,745,747],{"class":585,"line":741},5,[583,743,744],{"class":696},"    type",[583,746,701],{"class":700},[583,748,749],{"class":592},"AgentComponent\n",[583,751,753,756,758],{"class":585,"line":752},6,[583,754,755],{"class":696},"    prompt_id",[583,757,701],{"class":700},[583,759,760],{"class":592},"\"implementation_prompt\"\n",[583,762,764,767],{"class":585,"line":763},7,[583,765,766],{"class":696},"    inputs",[583,768,724],{"class":700},[583,770,772,775,778,780],{"class":585,"line":771},8,[583,773,774],{"class":700},"      - ",[583,776,777],{"class":696},"from",[583,779,701],{"class":700},[583,781,782],{"class":592},"\"context:goal\"\n",[583,784,786,789,791],{"class":585,"line":785},9,[583,787,788],{"class":696},"        as",[583,790,701],{"class":700},[583,792,793],{"class":592},"\"user_goal\"\n",[583,795,797,799,801,803],{"class":585,"line":796},10,[583,798,774],{"class":700},[583,800,777],{"class":696},[583,802,701],{"class":700},[583,804,805],{"class":592},"\"context:project_id\"\n",[583,807,809,811,813],{"class":585,"line":808},11,[583,810,788],{"class":696},[583,812,701],{"class":700},[583,814,815],{"class":592},"\"project_id\"\n",[583,817,819,822],{"class":585,"line":818},12,[583,820,821],{"class":696},"    toolset",[583,823,724],{"class":700},[583,825,827,829],{"class":585,"line":826},13,[583,828,774],{"class":700},[583,830,831],{"class":592},"\"get_issue\"\n",[583,833,835,837],{"class":585,"line":834},14,[583,836,774],{"class":700},[583,838,839],{"class":592},"\"get_repository_file\"\n",[583,841,843,845],{"class":585,"line":842},15,[583,844,774],{"class":700},[583,846,847],{"class":592},"\"list_repository_tree\"\n",[583,849,851,853],{"class":585,"line":850},16,[583,852,774],{"class":700},[583,854,855],{"class":592},"\"find_files\"\n",[583,857,859,861],{"class":585,"line":858},17,[583,860,774],{"class":700},[583,862,863],{"class":592},"\"blob_search\"\n",[583,865,867,869],{"class":585,"line":866},18,[583,868,774],{"class":700},[583,870,871],{"class":592},"\"create_file\"\n",[583,873,875,877],{"class":585,"line":874},19,[583,876,774],{"class":700},[583,878,879],{"class":592},"\"create_commit\"\n",[583,881,883,885],{"class":585,"line":882},20,[583,884,774],{"class":700},[583,886,887],{"class":592},"\"create_merge_request\"\n",[583,889,891,893],{"class":585,"line":890},21,[583,892,774],{"class":700},[583,894,895],{"class":592},"\"create_issue_note\"\n",[583,897,899,902],{"class":585,"line":898},22,[583,900,901],{"class":696},"    ui_log_events",[583,903,724],{"class":700},[583,905,907,909],{"class":585,"line":906},23,[583,908,774],{"class":700},[583,910,911],{"class":592},"\"on_agent_final_answer\"\n",[583,913,915,917],{"class":585,"line":914},24,[583,916,774],{"class":700},[583,918,919],{"class":592},"\"on_tool_execution_success\"\n",[583,921,923,925],{"class":585,"line":922},25,[583,924,774],{"class":700},[583,926,927],{"class":592},"\"on_tool_execution_failed\"\n",[583,929,931],{"class":585,"line":930},26,[583,932,934],{"emptyLinePlaceholder":933},true,"\n",[583,936,938,941],{"class":585,"line":937},27,[583,939,940],{"class":696},"prompts",[583,942,724],{"class":700},[583,944,946,948,950,952],{"class":585,"line":945},28,[583,947,730],{"class":700},[583,949,733],{"class":696},[583,951,701],{"class":700},[583,953,954],{"class":592},"\"Cheapflights Feature Implementation（Cheapflights機能実装）\"\n",[583,956,958,960,962],{"class":585,"line":957},29,[583,959,755],{"class":696},[583,961,701],{"class":700},[583,963,760],{"class":592},[583,965,967,970],{"class":585,"line":966},30,[583,968,969],{"class":696},"    unit_primitives",[583,971,972],{"class":700},": []\n",[583,974,976,979],{"class":585,"line":975},31,[583,977,978],{"class":696},"    prompt_template",[583,980,724],{"class":700},[583,982,984,987,989],{"class":585,"line":983},32,[583,985,986],{"class":696},"      system",[583,988,701],{"class":700},[583,990,992],{"class":991},"sD7c4","|\n",[583,994,996],{"class":585,"line":995},33,[583,997,998],{"class":592},"        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights（あなたは旅行予約プラットフォーム、特にCheapflightsを専門とするエキスパートフルスタックデベロッパーです）.\n",[583,1000,1002],{"class":585,"line":1001},34,[583,1003,934],{"emptyLinePlaceholder":933},[583,1005,1007],{"class":585,"line":1006},35,[583,1008,1009],{"class":592},"        Your task is to（あなたのタスクは以下のとおりです）:\n",[583,1011,1013],{"class":585,"line":1012},36,[583,1014,1015],{"class":592},"        1. Extract the issue IID from the goal (look for \"Issue IID: XX\")\n",[583,1017,1019],{"class":585,"line":1018},37,[583,1020,1021],{"class":592},"        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details\n",[583,1023,1025],{"class":585,"line":1024},38,[583,1026,1027],{"class":592},"        3. Analyze the requirements for the flight search feature\n",[583,1029,1031],{"class":585,"line":1030},39,[583,1032,1033],{"class":592},"        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file\n",[583,1035,1037],{"class":585,"line":1036},40,[583,1038,1039],{"class":592},"        5. Design and implement the solution following Cheapflights best practices\n",[583,1041,1043],{"class":585,"line":1042},41,[583,1044,1045],{"class":592},"        6. Create all necessary code files using create_file (call multiple times for multiple files)\n",[583,1047,1049],{"class":585,"line":1048},42,[583,1050,1051],{"class":592},"        7. Commit the changes using create_commit\n",[583,1053,1055],{"class":585,"line":1054},43,[583,1056,1057],{"class":592},"        8. Create a merge request using create_merge_request\n",[583,1059,1061],{"class":585,"line":1060},44,[583,1062,1063],{"class":592},"        9. Post a summary comment to the issue using create_issue_note with the MR link\n",[583,1065,1067],{"class":585,"line":1066},45,[583,1068,934],{"emptyLinePlaceholder":933},[583,1070,1072],{"class":585,"line":1071},46,[583,1073,1074],{"class":592},"        1. ゴールからイシューIIDを抽出する(「Issue IID: XX」を探す)\n",[583,1076,1078],{"class":585,"line":1077},47,[583,1079,1080],{"class":592},"        2. project_id={{project_id}}とissue_iidを使用してget_issueでイシューの詳細を取得\n",[583,1082,1084],{"class":585,"line":1083},48,[583,1085,1086],{"class":592},"        3. フライト検索機能の要件を分析\n",[583,1088,1090],{"class":585,"line":1089},49,[583,1091,1092],{"class":592},"        4. list_repository_tree、find_files、get_repository_fileを使用して既存のコードベースをレビュー\n",[583,1094,1096],{"class":585,"line":1095},50,[583,1097,1098],{"class":592},"        5. Cheapflightsのベストプラクティスに従ってソリューションを設計・実装\n",[583,1100,1102],{"class":585,"line":1101},51,[583,1103,1104],{"class":592},"        6. create_fileを使用して必要なコードファイルをすべて作成(複数ファイルの場合は複数回呼び出し)\n",[583,1106,1108],{"class":585,"line":1107},52,[583,1109,1110],{"class":592},"        7. create_commitを使用して変更をコミット\n",[583,1112,1114],{"class":585,"line":1113},53,[583,1115,1116],{"class":592},"        8. create_merge_requestを使用してマージリクエストを作成\n",[583,1118,1120],{"class":585,"line":1119},54,[583,1121,1122],{"class":592},"        9. create_issue_noteを使用してMRリンク付きの概要コメントをイシューに投稿\n",[583,1124,1126],{"class":585,"line":1125},55,[583,1127,934],{"emptyLinePlaceholder":933},[583,1129,1131],{"class":585,"line":1130},56,[583,1132,1133],{"class":592},"        Cheapflights Domain Expertise（Cheapflightsドメインの専門知識）:\n",[583,1135,1137],{"class":585,"line":1136},57,[583,1138,1139],{"class":592},"        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)\n",[583,1141,1143],{"class":585,"line":1142},58,[583,1144,1145],{"class":592},"        - Fare comparison and pricing strategies\n",[583,1147,1149],{"class":585,"line":1148},59,[583,1150,1151],{"class":592},"        - Real-time availability and inventory management\n",[583,1153,1155],{"class":585,"line":1154},60,[583,1156,1157],{"class":592},"        - Travel industry UX patterns\n",[583,1159,1161],{"class":585,"line":1160},61,[583,1162,1163],{"class":592},"        - Performance optimization for high-traffic flight searches\n",[583,1165,1167],{"class":585,"line":1166},62,[583,1168,934],{"emptyLinePlaceholder":933},[583,1170,1172],{"class":585,"line":1171},63,[583,1173,1174],{"class":592},"        - フライト検索・予約システム(Amadeus、Sabre、Skyscanner API)\n",[583,1176,1178],{"class":585,"line":1177},64,[583,1179,1180],{"class":592},"        - 運賃比較と価格戦略\n",[583,1182,1184],{"class":585,"line":1183},65,[583,1185,1186],{"class":592},"        - リアルタイムの空席状況と在庫管理\n",[583,1188,1190],{"class":585,"line":1189},66,[583,1191,1192],{"class":592},"        - 旅行業界のUXパターン\n",[583,1194,1196],{"class":585,"line":1195},67,[583,1197,1198],{"class":592},"        - 高トラフィックのフライト検索のためのパフォーマンス最適化\n",[583,1200,1202],{"class":585,"line":1201},68,[583,1203,934],{"emptyLinePlaceholder":933},[583,1205,1207],{"class":585,"line":1206},69,[583,1208,1209],{"class":592},"        Code Standards（コーディング基準）:\n",[583,1211,1213],{"class":585,"line":1212},70,[583,1214,1215],{"class":592},"        - Clean, maintainable code (TypeScript/JavaScript/Python/React)\n",[583,1217,1219],{"class":585,"line":1218},71,[583,1220,1221],{"class":592},"        - Proper state management for React components\n",[583,1223,1225],{"class":585,"line":1224},72,[583,1226,1227],{"class":592},"        - RESTful API endpoints with comprehensive error handling\n",[583,1229,1231],{"class":585,"line":1230},73,[583,1232,1233],{"class":592},"        - Mobile-first responsive design\n",[583,1235,1237],{"class":585,"line":1236},74,[583,1238,1239],{"class":592},"        - Proper timezone handling (use moment-timezone or date-fns-tz)\n",[583,1241,1243],{"class":585,"line":1242},75,[583,1244,1245],{"class":592},"        - WCAG 2.1 accessibility compliance\n",[583,1247,1249],{"class":585,"line":1248},76,[583,1250,934],{"emptyLinePlaceholder":933},[583,1252,1254],{"class":585,"line":1253},77,[583,1255,1256],{"class":592},"        - クリーンで保守性の高いコード(TypeScript/JavaScript/Python/React)\n",[583,1258,1260],{"class":585,"line":1259},78,[583,1261,1262],{"class":592},"        - Reactコンポーネントの適切な状態管理\n",[583,1264,1266],{"class":585,"line":1265},79,[583,1267,1268],{"class":592},"        - 包括的なエラーハンドリングを備えたRESTful APIエンドポイント\n",[583,1270,1272],{"class":585,"line":1271},80,[583,1273,1274],{"class":592},"        - モバイルファーストのレスポンシブデザイン\n",[583,1276,1278],{"class":585,"line":1277},81,[583,1279,1280],{"class":592},"        - 適切なタイムゾーン処理(moment-timezoneまたはdate-fns-tzを使用)\n",[583,1282,1284],{"class":585,"line":1283},82,[583,1285,1286],{"class":592},"        - WCAG 2.1アクセシビリティ準拠\n",[583,1288,1290],{"class":585,"line":1289},83,[583,1291,934],{"emptyLinePlaceholder":933},[583,1293,1295],{"class":585,"line":1294},84,[583,1296,1297],{"class":592},"        Flight-Specific Best Practices（フライト固有のベストプラクティス）:\n",[583,1299,1301],{"class":585,"line":1300},85,[583,1302,1303],{"class":592},"        - Accurate fare calculations (base fare + taxes + fees + surcharges)\n",[583,1305,1307],{"class":585,"line":1306},86,[583,1308,1309],{"class":592},"        - Flight duration calculations across timezones\n",[583,1311,1313],{"class":585,"line":1312},87,[583,1314,1315],{"class":592},"        - Search filter logic (price range, number of stops, airlines, departure/arrival times)\n",[583,1317,1319],{"class":585,"line":1318},88,[583,1320,1321],{"class":592},"        - Sort algorithms (best value, fastest, cheapest)\n",[583,1323,1325],{"class":585,"line":1324},89,[583,1326,1327],{"class":592},"        - Handle edge cases: date line crossing, daylight saving time, red-eye flights\n",[583,1329,1331],{"class":585,"line":1330},90,[583,1332,1333],{"class":592},"        - Currency amounts use proper decimal handling (avoid floating point errors)\n",[583,1335,1337],{"class":585,"line":1336},91,[583,1338,1339],{"class":592},"        - Dates use ISO 8601 format\n",[583,1341,1343],{"class":585,"line":1342},92,[583,1344,1345],{"class":592},"        - Flight codes follow IATA standards (3-letter airport codes)\n",[583,1347,1349],{"class":585,"line":1348},93,[583,1350,934],{"emptyLinePlaceholder":933},[583,1352,1354],{"class":585,"line":1353},94,[583,1355,1356],{"class":592},"        - 正確な運賃計算(基本運賃 + 税金 + 手数料 + 追加料金)\n",[583,1358,1360],{"class":585,"line":1359},95,[583,1361,1362],{"class":592},"        - タイムゾーンをまたぐフライト時間の計算\n",[583,1364,1366],{"class":585,"line":1365},96,[583,1367,1368],{"class":592},"        - 検索フィルターロジック(価格帯、経由便数、航空会社、出発/到着時刻)\n",[583,1370,1372],{"class":585,"line":1371},97,[583,1373,1374],{"class":592},"        - ソートアルゴリズム(ベストバリュー、最速、最安値)\n",[583,1376,1378],{"class":585,"line":1377},98,[583,1379,1380],{"class":592},"        - エッジケースの処理: 日付変更線の通過、サマータイム、深夜便\n",[583,1382,1384],{"class":585,"line":1383},99,[583,1385,1386],{"class":592},"        - 通貨金額は適切な小数処理を使用(浮動小数点エラーを回避)\n",[583,1388,1390],{"class":585,"line":1389},100,[583,1391,1392],{"class":592},"        - 日付はISO 8601形式を使用\n",[583,1394,1396],{"class":585,"line":1395},101,[583,1397,1398],{"class":592},"        - フライトコードはIATA標準に従う(3文字の空港コード)\n",[583,1400,1402],{"class":585,"line":1401},102,[583,1403,934],{"emptyLinePlaceholder":933},[583,1405,1407],{"class":585,"line":1406},103,[583,1408,1409],{"class":592},"        Implementation Requirements（実装要件）:\n",[583,1411,1413],{"class":585,"line":1412},104,[583,1414,1415],{"class":592},"        - No TODOs or placeholder comments\n",[583,1417,1419],{"class":585,"line":1418},105,[583,1420,1421],{"class":592},"        - All functions must be fully implemented\n",[583,1423,1425],{"class":585,"line":1424},106,[583,1426,1427],{"class":592},"        - Include proper TypeScript types or Python type hints\n",[583,1429,1431],{"class":585,"line":1430},107,[583,1432,1433],{"class":592},"        - Add JSDoc/docstring comments for all functions\n",[583,1435,1437],{"class":585,"line":1436},108,[583,1438,1439],{"class":592},"        - Comprehensive error handling and input validation\n",[583,1441,1443],{"class":585,"line":1442},109,[583,1444,1445],{"class":592},"        - Basic unit tests for critical functions\n",[583,1447,1449],{"class":585,"line":1448},110,[583,1450,1451],{"class":592},"        - Performance considerations for handling large result sets\n",[583,1453,1455],{"class":585,"line":1454},111,[583,1456,934],{"emptyLinePlaceholder":933},[583,1458,1460],{"class":585,"line":1459},112,[583,1461,1462],{"class":592},"        - To-Doやプレースホルダーコメントは不可\n",[583,1464,1466],{"class":585,"line":1465},113,[583,1467,1468],{"class":592},"        - すべての関数を完全に実装\n",[583,1470,1472],{"class":585,"line":1471},114,[583,1473,1474],{"class":592},"        - 適切なTypeScript型またはPython型ヒントを含める\n",[583,1476,1478],{"class":585,"line":1477},115,[583,1479,1480],{"class":592},"        - すべての関数にJSDoc/docstringコメントを追加\n",[583,1482,1484],{"class":585,"line":1483},116,[583,1485,1486],{"class":592},"        - 包括的なエラーハンドリングと入力検証\n",[583,1488,1490],{"class":585,"line":1489},117,[583,1491,1492],{"class":592},"        - 重要な関数の基本的な単体テスト\n",[583,1494,1496],{"class":585,"line":1495},118,[583,1497,1498],{"class":592},"        - 大規模な結果セットを処理するためのパフォーマンス考慮\n",[583,1500,1502],{"class":585,"line":1501},119,[583,1503,934],{"emptyLinePlaceholder":933},[583,1505,1507],{"class":585,"line":1506},120,[583,1508,1509],{"class":592},"        CRITICAL - Your final comment on the issue MUST include（重要 - イシューへの最終コメントには以下を必ず含める）:\n",[583,1511,1513],{"class":585,"line":1512},121,[583,1514,1515],{"class":592},"        - Implementation Summary: Brief description of what was implemented\n",[583,1517,1519],{"class":585,"line":1518},122,[583,1520,1521],{"class":592},"        - Files Created/Modified: List of all files with descriptions\n",[583,1523,1525],{"class":585,"line":1524},123,[583,1526,1527],{"class":592},"        - Key Features: Bullet points of main functionality\n",[583,1529,1531],{"class":585,"line":1530},124,[583,1532,1533],{"class":592},"        - Technical Approach: Brief explanation of architecture/patterns used\n",[583,1535,1537],{"class":585,"line":1536},125,[583,1538,1539],{"class":592},"        - Testing Notes: How to test the implementation\n",[583,1541,1543],{"class":585,"line":1542},126,[583,1544,1545],{"class":592},"        - Merge Request Link: Direct link to the created MR (format: [View Merge Request](MR_URL))\n",[583,1547,1549],{"class":585,"line":1548},127,[583,1550,934],{"emptyLinePlaceholder":933},[583,1552,1554],{"class":585,"line":1553},128,[583,1555,1556],{"class":592},"        - 実装概要: 実装内容の簡潔な説明\n",[583,1558,1560],{"class":585,"line":1559},129,[583,1561,1562],{"class":592},"        - 作成/変更されたファイル: すべてのファイルのリストと説明\n",[583,1564,1566],{"class":585,"line":1565},130,[583,1567,1568],{"class":592},"        - 主要機能: 主な機能の箇条書き\n",[583,1570,1572],{"class":585,"line":1571},131,[583,1573,1574],{"class":592},"        - 技術的アプローチ: アーキテクチャ/パターンの簡潔な説明\n",[583,1576,1578],{"class":585,"line":1577},132,[583,1579,1580],{"class":592},"        - テストに関する注意事項: 実装のテスト方法\n",[583,1582,1584],{"class":585,"line":1583},133,[583,1585,1586],{"class":592},"        - マージリクエストリンク: 作成されたMRへの直接リンク(形式: [マージリクエストを見る](MR_URL))\n",[583,1588,1590],{"class":585,"line":1589},134,[583,1591,934],{"emptyLinePlaceholder":933},[583,1593,1595],{"class":585,"line":1594},135,[583,1596,1597],{"class":592},"        IMPORTANT TOOL USAGE（重要なツールの使用方法）:\n",[583,1599,1601],{"class":585,"line":1600},136,[583,1602,1603],{"class":592},"        - Extract the issue IID from the goal first (e.g., \"Issue IID: 12\" means issue_iid=12)\n",[583,1605,1607],{"class":585,"line":1606},137,[583,1608,1609],{"class":592},"        - Use get_issue with project_id={{project_id}} and issue_iid=\u003Cextracted_iid>\n",[583,1611,1613],{"class":585,"line":1612},138,[583,1614,1615],{"class":592},"        - Create multiple files by calling create_file multiple times (once per file)\n",[583,1617,1619],{"class":585,"line":1618},139,[583,1620,1621],{"class":592},"        - Use create_commit to commit all files together with a descriptive commit message\n",[583,1623,1625],{"class":585,"line":1624},140,[583,1626,1627],{"class":592},"        - Use create_merge_request to create the MR and capture the MR URL from the response\n",[583,1629,1631],{"class":585,"line":1630},141,[583,1632,1633],{"class":592},"        - Use create_issue_note with project_id={{project_id}}, noteable_id=\u003Cissue_iid>, and body=\u003Cyour complete summary with MR link>\n",[583,1635,1637],{"class":585,"line":1636},142,[583,1638,1639],{"class":592},"        - Make sure to include the MR link in the comment body so users can easily access it\n",[583,1641,1643],{"class":585,"line":1642},143,[583,1644,934],{"emptyLinePlaceholder":933},[583,1646,1648],{"class":585,"line":1647},144,[583,1649,1650],{"class":592},"        - まずゴールからイシューIIDを抽出(例: 「Issue IID: 12」はissue_iid=12を意味する)\n",[583,1652,1654],{"class":585,"line":1653},145,[583,1655,1656],{"class":592},"        - project_id={{project_id}}とissue_iid=\u003C抽出したiid>でget_issueを使用\n",[583,1658,1660],{"class":585,"line":1659},146,[583,1661,1662],{"class":592},"        - create_fileを複数回呼び出して複数のファイルを作成(ファイルごとに1回)\n",[583,1664,1666],{"class":585,"line":1665},147,[583,1667,1668],{"class":592},"        - create_commitを使用して、わかりやすいコミットメッセージですべてのファイルを一緒にコミット\n",[583,1670,1672],{"class":585,"line":1671},148,[583,1673,1674],{"class":592},"        - create_merge_requestを使用してMRを作成し、レスポンスからMR URLを取得\n",[583,1676,1678],{"class":585,"line":1677},149,[583,1679,1680],{"class":592},"        - project_id={{project_id}}、noteable_id=\u003Cissue_iid>、body=\u003CMRリンクを含む完全な概要>でcreate_issue_noteを使用\n",[583,1682,1684],{"class":585,"line":1683},150,[583,1685,1686],{"class":592},"        - ユーザーが簡単にアクセスできるように、コメント本文にMRリンクを必ず含める\n",[583,1688,1690],{"class":585,"line":1689},151,[583,1691,934],{"emptyLinePlaceholder":933},[583,1693,1695,1698,1700],{"class":585,"line":1694},152,[583,1696,1697],{"class":696},"      user",[583,1699,701],{"class":700},[583,1701,992],{"class":991},[583,1703,1705],{"class":585,"line":1704},153,[583,1706,1707],{"class":592},"        Goal: {{user_goal}}\n",[583,1709,1711],{"class":585,"line":1710},154,[583,1712,1713],{"class":592},"        Project ID: {{project_id}}\n",[583,1715,1717],{"class":585,"line":1716},155,[583,1718,934],{"emptyLinePlaceholder":933},[583,1720,1722],{"class":585,"line":1721},156,[583,1723,1724],{"class":592},"        Please complete the following steps（以下の手順を完了してください）:\n",[583,1726,1728],{"class":585,"line":1727},157,[583,1729,1730],{"class":592},"        1. Extract the issue IID and retrieve full issue details\n",[583,1732,1734],{"class":585,"line":1733},158,[583,1735,1736],{"class":592},"        2. Analyze the requirements thoroughly\n",[583,1738,1740],{"class":585,"line":1739},159,[583,1741,1742],{"class":592},"        3. Review the existing codebase structure and patterns\n",[583,1744,1746],{"class":585,"line":1745},160,[583,1747,1748],{"class":592},"        4. Implement the feature with production-ready code\n",[583,1750,1752],{"class":585,"line":1751},161,[583,1753,1754],{"class":592},"        5. Create all necessary files (components, APIs, tests, documentation)\n",[583,1756,1758],{"class":585,"line":1757},162,[583,1759,1760],{"class":592},"        6. Commit all changes with a clear commit message\n",[583,1762,1764],{"class":585,"line":1763},163,[583,1765,1766],{"class":592},"        7. Create a merge request\n",[583,1768,1770],{"class":585,"line":1769},164,[583,1771,1772],{"class":592},"        8. Post a detailed summary comment to the issue including the MR link\n",[583,1774,1776],{"class":585,"line":1775},165,[583,1777,934],{"emptyLinePlaceholder":933},[583,1779,1781],{"class":585,"line":1780},166,[583,1782,1783],{"class":592},"        1. イシューIIDを抽出し、イシューの詳細を取得\n",[583,1785,1787],{"class":585,"line":1786},167,[583,1788,1789],{"class":592},"        2. 要件を徹底的に分析\n",[583,1791,1793],{"class":585,"line":1792},168,[583,1794,1795],{"class":592},"        3. 既存のコードベース構造とパターンをレビュー\n",[583,1797,1799],{"class":585,"line":1798},169,[583,1800,1801],{"class":592},"        4. 本番環境対応のコードで機能を実装\n",[583,1803,1805],{"class":585,"line":1804},170,[583,1806,1807],{"class":592},"        5. 必要なすべてのファイルを作成(コンポーネント、API、テスト、ドキュメント)\n",[583,1809,1811],{"class":585,"line":1810},171,[583,1812,1813],{"class":592},"        6. 明確なコミットメッセージですべての変更をコミット\n",[583,1815,1817],{"class":585,"line":1816},172,[583,1818,1819],{"class":592},"        7. マージリクエストを作成\n",[583,1821,1823],{"class":585,"line":1822},173,[583,1824,1825],{"class":592},"        8. MRリンクを含む詳細な概要コメントをイシューに投稿\n",[583,1827,1829],{"class":585,"line":1828},174,[583,1830,934],{"emptyLinePlaceholder":933},[583,1832,1834,1837,1839],{"class":585,"line":1833},175,[583,1835,1836],{"class":696},"      placeholder",[583,1838,701],{"class":700},[583,1840,1841],{"class":592},"history\n",[583,1843,1845,1848],{"class":585,"line":1844},176,[583,1846,1847],{"class":696},"    params",[583,1849,724],{"class":700},[583,1851,1853,1856,1858],{"class":585,"line":1852},177,[583,1854,1855],{"class":696},"      timeout",[583,1857,701],{"class":700},[583,1859,1861],{"class":1860},"sYu0t","300\n",[583,1863,1865],{"class":585,"line":1864},178,[583,1866,934],{"emptyLinePlaceholder":933},[583,1868,1870,1873],{"class":585,"line":1869},179,[583,1871,1872],{"class":696},"routers",[583,1874,724],{"class":700},[583,1876,1878,1880,1882,1884],{"class":585,"line":1877},180,[583,1879,730],{"class":700},[583,1881,777],{"class":696},[583,1883,701],{"class":700},[583,1885,738],{"class":592},[583,1887,1889,1892,1894],{"class":585,"line":1888},181,[583,1890,1891],{"class":696},"    to",[583,1893,701],{"class":700},[583,1895,1896],{"class":592},"\"end\"\n",[583,1898,1900],{"class":585,"line":1899},182,[583,1901,934],{"emptyLinePlaceholder":933},[583,1903,1905,1908],{"class":585,"line":1904},183,[583,1906,1907],{"class":696},"flow",[583,1909,724],{"class":700},[583,1911,1913,1916,1918],{"class":585,"line":1912},184,[583,1914,1915],{"class":696},"  entry_point",[583,1917,701],{"class":700},[583,1919,738],{"class":592},[12,1921,1922,1925],{},[28,1923,1924],{},"このフローの機能",": このフローは、AIエージェントがイシュー要件の分析、コードベースのレビュー、ドメイン知識に基づく本番環境対応コードの作成、詳細なサマリー付きマージリクエストの作成まで、機能実装を自動で行います。",[12,1927,1928],{},"完全なドキュメントと例については、以下を参照してください。",[32,1930,1931,1937],{},[35,1932,1933],{},[19,1934,1936],{"href":271,"rel":1935},[],"カスタムフロードキュメント",[35,1938,1939],{},[19,1940,1943],{"href":1941,"rel":1942},"https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/docs/flow_registry/v1.md",[],"フローレジストリフレームワーク（YAMLスキーマ）",[80,1945,1946],{"id":1946},"フローの実行",[12,1948,1949],{},"フローはGitLabプラットフォームコンピュート上で実行されます。イベント(メンション、割り当て、ボタンクリック)によってトリガーされると、セッションが作成され、フローが実行を開始します。",[289,1951,1952],{"id":1952},"利用可能な環境変数",[12,1954,1955],{},"フローは、トリガーとGitLabオブジェクトに関するコンテキストを提供する環境変数にアクセスできます。",[32,1957,1958,1966,1974],{},[35,1959,1960,1965],{},[28,1961,1962],{},[495,1963,1964],{},"AI_FLOW_CONTEXT"," — MR差分、イシュー説明、コメント、ディスカッションスレッドを含むJSON形式のコンテキスト",[35,1967,1968,1973],{},[28,1969,1970],{},[495,1971,1972],{},"AI_FLOW_INPUT"," — フローをトリガーしたユーザーのプロンプトまたはコメントテキスト",[35,1975,1976,1981,1982,1985,1986,1985,1989,1992],{},[28,1977,1978],{},[495,1979,1980],{},"AI_FLOW_EVENT"," — フローをトリガーしたイベントタイプ(",[495,1983,1984],{},"mention","、",[495,1987,1988],{},"assign",[495,1990,1991],{},"assign_reviewer",")",[12,1994,1995],{},"これらの変数により、フローは何がトリガーしたかを理解し、関連するGitLabデータにアクセスしてタスクを実行できます。",[289,1997,1998],{"id":1998},"マルチエージェントフロー",[12,2000,2001],{},"カスタムフローには、順次連携する複数のエージェントコンポーネントを含めることができます。フローのYAML設定は次を定義します。",[32,2003,2004,2009,2014],{},[35,2005,2006,2008],{},[28,2007,655],{},": 1つ以上のエージェント（AgentComponent）または決定論的ステップ",[35,2010,2011,2013],{},[28,2012,667],{},": コンポーネント間のフローを定義(例: コンポーネントAからコンポーネントBから終了へ）",[35,2015,2016,2018],{},[28,2017,661],{},": 各エージェントの動作とモデルを設定",[12,2020,2021],{},"たとえば、コードレビューフローには、セキュリティエージェント、次に品質エージェント、次に承認エージェントがあり、ルーターがそれらを順番に接続します。",[289,2023,2024],{"id":2024},"フロー実行の監視",[12,2026,2027],{},"プロジェクトで実行中のフローを表示するには:",[500,2029,2030,2040,2043],{},[35,2031,2032,2035,2036,2039],{},[28,2033,2034],{},"自動化"," → ",[28,2037,2038],{},"セッション","に移動します。",[35,2041,2042],{},"任意のセッションを選択して詳細を表示します。",[35,2044,2045,2048],{},[28,2046,2047],{},"詳細","タブにCI/CDジョブログへのリンクが表示されます。",[12,2050,2051],{},"セッションには、ステップバイステップの進行状況、ツール呼び出し、推論、意思決定プロセスを含む詳細情報が表示されます。",[289,2053,2054],{"id":2054},"フローを使用するタイミング",[32,2056,2057,2060,2063,2066,2069,2072],{},[35,2058,2059],{},"複雑な複数ステップのタスク",[35,2061,2062],{},"バックグラウンド自動化",[35,2064,2065],{},"イベント駆動ワークフロー",[35,2067,2068],{},"複数ファイルの変更",[35,2070,2071],{},"時間がかかるタスク",[35,2073,2074],{},"自動レビュー/チェック",[80,2076,2077],{"id":2077},"次のステップ",[12,2079,2080,2081,2086],{},"フローの概念、作成方法、エージェントとの使い分けを理解しました。次に、",[19,2082,2085],{"href":2083,"rel":2084},"https://about.gitlab.com/ja-jp/blog/ai-catalog-discover-and-share-agents/",[],"パート5: AIカタログ","で組織全体でエージェントとフローを検索、作成、共有する方法を学びます。AIカタログを活用して、利用可能なフローとエージェントの閲覧、プロジェクトへの追加、独自コンテンツの公開を行います。",[80,2088,2089],{"id":2089},"関連リンク",[32,2091,2092,2099,2105,2111,2118,2125],{},[35,2093,2094],{},[19,2095,2098],{"href":2096,"rel":2097},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/",[],"GitLab Duo Agent Platform - フロー",[35,2100,2101],{},[19,2102,2104],{"href":251,"rel":2103},[],"基本フローのドキュメント",[35,2106,2107],{},[19,2108,2110],{"href":271,"rel":2109},[],"カスタムフローのドキュメント",[35,2112,2113],{},[19,2114,2117],{"href":2115,"rel":2116},"https://docs.gitlab.com/ja-jp/user/duo_agent_platform/flows/execution/",[],"フロー実行設定",[35,2119,2120],{},[19,2121,2124],{"href":2122,"rel":2123},"https://docs.gitlab.com/ja-jp/ci/variables/",[],"GitLab CI/CD変数ガイド",[35,2126,2127],{},[19,2128,2131],{"href":2129,"rel":2130},"https://docs.gitlab.com/ja-jp/user/profile/service_accounts/",[],"サービスアカウント",[2133,2134],"hr",{},[12,2136,2137,701,2140],{},[28,2138,2139],{},"次へ",[19,2141,2085],{"href":2083,"rel":2142},[],[12,2144,2145,701,2148],{},[28,2146,2147],{},"前へ",[19,2149,2152],{"href":2150,"rel":2151},"https://about.gitlab.com/ja-jp/blog/understanding-agents-foundational-custom-external/",[],"パート3: エージェントを理解する",[2154,2155,2156],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}",{"title":548,"searchDepth":707,"depth":707,"links":2158},[2159,2160,2161,2162,2165,2172,2178,2179],{"id":82,"depth":707,"text":82},{"id":128,"depth":707,"text":129},{"id":222,"depth":707,"text":222},{"id":253,"depth":707,"text":253,"children":2163},[2164],{"id":291,"depth":718,"text":291},{"id":273,"depth":707,"text":273,"children":2166},[2167,2168,2169,2170,2171],{"id":447,"depth":718,"text":447},{"id":490,"depth":718,"text":490},{"id":531,"depth":718,"text":531},{"id":632,"depth":718,"text":632},{"id":677,"depth":718,"text":678},{"id":1946,"depth":707,"text":1946,"children":2173},[2174,2175,2176,2177],{"id":1952,"depth":718,"text":1952},{"id":1998,"depth":718,"text":1998},{"id":2024,"depth":718,"text":2024},{"id":2054,"depth":718,"text":2054},{"id":2077,"depth":707,"text":2077},{"id":2089,"depth":707,"text":2089},"ai","2026-01-14","GitLab Duo Agent Platformのフローを詳しく解説。基本フロー、カスタムユーザー定義ワークフローの作成、フローオーケストレーションパターンについて学びます。","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png",{},"/ja-jp/blog/understanding-flows-multi-agent-workflows",{"noIndex":2185,"title":5,"description":2182,"ogImage":2190},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg","understanding-flows-multi-agent-workflows","ja-jp/blog/understanding-flows-multi-agent-workflows",[2194,2195,2196,2197],"AI","product","features","tutorial","BlogPost","GcmX-_u_cm2Xakag_n0ql3X9qPp0qfAGS8wfYS6Qi38",{"logo":2201,"freeTrial":2206,"sales":2211,"login":2216,"items":2221,"search":2548,"minimal":2581,"duo":2598,"switchNav":2607,"pricingDeployment":2618},{"config":2202},{"href":2203,"dataGaName":2204,"dataGaLocation":2205},"/ja-jp/","gitlab logo","header",{"text":2207,"config":2208},"無料トライアルを開始",{"href":2209,"dataGaName":2210,"dataGaLocation":2205},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":2212,"config":2213},"デモをリクエスト",{"href":2214,"dataGaName":2215,"dataGaLocation":2205},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":2217,"config":2218},"サインイン",{"href":2219,"dataGaName":2220,"dataGaLocation":2205},"https://gitlab.com/users/sign_in/","sign in",[2222,2250,2351,2356,2470,2526],{"text":2223,"config":2224,"menu":2226},"プラットフォーム",{"dataNavLevelOne":2225},"platform",{"type":2227,"columns":2228},"cards",[2229,2235,2242],{"title":2223,"description":2230,"link":2231},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":2232,"config":2233},"プラットフォームの詳細はこちら",{"href":2234,"dataGaName":2225,"dataGaLocation":2205},"/ja-jp/platform/",{"title":77,"description":2236,"link":2237},"ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":2238,"config":2239},"GitLab Duoのご紹介",{"href":2240,"dataGaName":2241,"dataGaLocation":2205},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":2243,"description":2244,"link":2245},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":2246,"config":2247},"詳細はこちら",{"href":2248,"dataGaName":2249,"dataGaLocation":2205},"/ja-jp/why-gitlab/","why gitlab",{"text":2251,"left":933,"config":2252,"menu":2254},"製品",{"dataNavLevelOne":2253},"solutions",{"type":2255,"link":2256,"columns":2260,"feature":2330},"lists",{"text":2257,"config":2258},"すべてのソリューションを表示",{"href":2259,"dataGaName":2253,"dataGaLocation":2205},"/ja-jp/solutions/",[2261,2285,2308],{"title":2034,"description":2262,"link":2263,"items":2268},"CI/CDと自動化でデプロイを加速",{"config":2264},{"icon":2265,"href":2266,"dataGaName":2267,"dataGaLocation":2205},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[2269,2273,2276,2281],{"text":2270,"config":2271},"CI/CD",{"href":2272,"dataGaLocation":2205,"dataGaName":2270},"/ja-jp/solutions/continuous-integration/",{"text":77,"config":2274},{"href":2240,"dataGaLocation":2205,"dataGaName":2275},"gitlab duo agent platform - product menu",{"text":2277,"config":2278},"ソースコード管理",{"href":2279,"dataGaLocation":2205,"dataGaName":2280},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":2282,"config":2283},"自動化されたソフトウェアデリバリー",{"href":2266,"dataGaLocation":2205,"dataGaName":2284},"Automated software delivery",{"title":2286,"description":2287,"link":2288,"items":2293},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":2289},{"href":2290,"dataGaName":2291,"dataGaLocation":2205,"icon":2292},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[2294,2298,2303],{"text":2295,"config":2296},"アプリケーションセキュリティテスト",{"href":2290,"dataGaName":2297,"dataGaLocation":2205},"Application security testing",{"text":2299,"config":2300},"ソフトウェアサプライチェーンセキュリティ",{"href":2301,"dataGaLocation":2205,"dataGaName":2302},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":2304,"config":2305},"ソフトウェアコンプライアンス",{"href":2306,"dataGaName":2307,"dataGaLocation":2205},"/ja-jp/solutions/software-compliance/","software compliance",{"title":2309,"link":2310,"items":2315},"測定",{"config":2311},{"icon":2312,"href":2313,"dataGaName":2314,"dataGaLocation":2205},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[2316,2320,2325],{"text":2317,"config":2318},"可視性と測定",{"href":2313,"dataGaLocation":2205,"dataGaName":2319},"Visibility and Measurement",{"text":2321,"config":2322},"バリューストリーム管理",{"href":2323,"dataGaLocation":2205,"dataGaName":2324},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":2326,"config":2327},"分析とインサイト",{"href":2328,"dataGaLocation":2205,"dataGaName":2329},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":2331,"type":2255,"items":2332},"GitLabが活躍する場所",[2333,2339,2345],{"text":2334,"config":2335},"大企業",{"icon":2336,"href":2337,"dataGaLocation":2205,"dataGaName":2338},"Building","/ja-jp/enterprise/","enterprise",{"text":2340,"config":2341},"スモールビジネス",{"icon":2342,"href":2343,"dataGaLocation":2205,"dataGaName":2344},"Work","/ja-jp/small-business/","small business",{"text":2346,"config":2347},"公共部門",{"icon":2348,"href":2349,"dataGaLocation":2205,"dataGaName":2350},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":2352,"config":2353},"価格",{"href":2354,"dataGaName":2355,"dataGaLocation":2205,"dataNavLevelOne":2355},"/ja-jp/pricing/","pricing",{"text":2357,"config":2358,"menu":2360},"関連リソース",{"dataNavLevelOne":2359},"resources",{"type":2255,"link":2361,"columns":2365,"feature":2459},{"text":2362,"config":2363},"すべてのリソースを表示",{"href":2364,"dataGaName":2359,"dataGaLocation":2205},"/ja-jp/resources/",[2366,2399,2426],{"title":2367,"items":2368},"はじめに",[2369,2374,2379,2384,2389,2394],{"text":2370,"config":2371},"インストール",{"href":2372,"dataGaName":2373,"dataGaLocation":2205},"/ja-jp/install/","install",{"text":2375,"config":2376},"クイックスタートガイド",{"href":2377,"dataGaName":2378,"dataGaLocation":2205},"/ja-jp/get-started/","quick setup checklists",{"text":2380,"config":2381},"学ぶ",{"href":2382,"dataGaLocation":2205,"dataGaName":2383},"https://university.gitlab.com/","learn",{"text":2385,"config":2386},"製品ドキュメント",{"href":2387,"dataGaName":2388,"dataGaLocation":2205},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":2390,"config":2391},"ベストプラクティスビデオ",{"href":2392,"dataGaName":2393,"dataGaLocation":2205},"/ja-jp/getting-started-videos/","best practice videos",{"text":2395,"config":2396},"インテグレーション",{"href":2397,"dataGaName":2398,"dataGaLocation":2205},"/ja-jp/integrations/","integrations",{"title":2400,"items":2401},"検索する",[2402,2407,2412,2417,2421],{"text":2403,"config":2404},"お客様成功事例",{"href":2405,"dataGaName":2406,"dataGaLocation":2205},"/ja-jp/customers/","customer success stories",{"text":2408,"config":2409},"ブログ",{"href":2410,"dataGaName":2411,"dataGaLocation":2205},"/ja-jp/blog/","blog",{"text":2413,"config":2414},"Demo Hub",{"href":2415,"dataGaName":2416,"dataGaLocation":2205},"/ja-jp/demo-hub/","demo hub",{"text":2418,"config":2419},"The Source",{"href":2420,"dataGaName":2411,"dataGaLocation":2205},"/ja-jp/the-source/",{"text":2422,"config":2423},"リモート",{"href":2424,"dataGaName":2425,"dataGaLocation":2205},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":2427,"items":2428},"つなげる",[2429,2434,2439,2444,2449,2454],{"text":2430,"config":2431},"GitLabサービス",{"href":2432,"dataGaName":2433,"dataGaLocation":2205},"/ja-jp/services/","services",{"text":2435,"config":2436},"コントリビュート",{"href":2437,"dataGaName":2438,"dataGaLocation":2205},"https://contributors.gitlab.com","contribute",{"text":2440,"config":2441},"コミュニティ",{"href":2442,"dataGaName":2443,"dataGaLocation":2205},"/community/","community",{"text":2445,"config":2446},"フォーラム",{"href":2447,"dataGaName":2448,"dataGaLocation":2205},"https://forum.gitlab.com/","forum",{"text":2450,"config":2451},"イベント",{"href":2452,"dataGaName":2453,"dataGaLocation":2205},"/events/","events",{"text":2455,"config":2456},"パートナー",{"href":2457,"dataGaName":2458,"dataGaLocation":2205},"/ja-jp/partners/","partners",{"config":2460,"title":2463,"text":2464,"link":2465},{"background":2461,"textColor":2462},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":2466,"config":2467},"最新情報を読む",{"href":2468,"dataGaName":2469,"dataGaLocation":2205},"/ja-jp/whats-new/","whats new",{"text":2471,"config":2472,"menu":2474},"企業情報",{"dataNavLevelOne":2473},"company",{"type":2255,"columns":2475},[2476],{"items":2477},[2478,2483,2489,2491,2496,2501,2506,2511,2516,2521],{"text":2479,"config":2480},"GitLabについて",{"href":2481,"dataGaName":2482,"dataGaLocation":2205},"/ja-jp/company/","about",{"text":2484,"config":2485,"footerGa":2488},"採用情報",{"href":2486,"dataGaName":2487,"dataGaLocation":2205},"/jobs/","jobs",{"dataGaName":2487},{"text":2450,"config":2490},{"href":2452,"dataGaName":2453,"dataGaLocation":2205},{"text":2492,"config":2493},"経営陣",{"href":2494,"dataGaName":2495,"dataGaLocation":2205},"/company/team/e-group/","leadership",{"text":2497,"config":2498},"ハンドブック",{"href":2499,"dataGaName":2500,"dataGaLocation":2205},"https://handbook.gitlab.com/","handbook",{"text":2502,"config":2503},"投資家向け情報",{"href":2504,"dataGaName":2505,"dataGaLocation":2205},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":2507,"config":2508},"トラストセンター",{"href":2509,"dataGaName":2510,"dataGaLocation":2205},"/ja-jp/security/","trust center",{"text":2512,"config":2513},"AI Transparency Center",{"href":2514,"dataGaName":2515,"dataGaLocation":2205},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":2517,"config":2518},"ニュースレター",{"href":2519,"dataGaName":2520,"dataGaLocation":2205},"/company/contact/#contact-forms","newsletter",{"text":2522,"config":2523},"プレス",{"href":2524,"dataGaName":2525,"dataGaLocation":2205},"/press/","press",{"text":2527,"config":2528,"menu":2529},"お問い合わせ",{"dataNavLevelOne":2473},{"type":2255,"columns":2530},[2531],{"items":2532},[2533,2538,2543],{"text":2534,"config":2535},"お問い合わせはこちら",{"href":2536,"dataGaName":2537,"dataGaLocation":2205},"/ja-jp/sales/","talk to sales",{"text":2539,"config":2540},"サポートを受ける",{"href":2541,"dataGaName":2542,"dataGaLocation":2205},"https://support.gitlab.com/hc/en-us","support portal",{"text":2544,"config":2545},"カスタマーポータル",{"href":2546,"dataGaName":2547,"dataGaLocation":2205},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":2549,"login":2550,"suggestions":2557},"閉じる",{"text":2551,"link":2552},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":2553,"config":2554},"GitLab.com",{"href":2219,"dataGaName":2555,"dataGaLocation":2556},"search login","search",{"text":2558,"default":2559},"提案",[2560,2562,2567,2569,2573,2577],{"text":77,"config":2561},{"href":2240,"dataGaName":77,"dataGaLocation":2556},{"text":2563,"config":2564},"コード提案（AI）",{"href":2565,"dataGaName":2566,"dataGaLocation":2556},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":2270,"config":2568},{"href":2272,"dataGaName":2270,"dataGaLocation":2556},{"text":2570,"config":2571},"GitLab on AWS",{"href":2572,"dataGaName":2570,"dataGaLocation":2556},"/ja-jp/partners/technology-partners/aws/",{"text":2574,"config":2575},"GitLab on Google Cloud",{"href":2576,"dataGaName":2574,"dataGaLocation":2556},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":2578,"config":2579},"GitLabを選ぶ理由",{"href":2248,"dataGaName":2580,"dataGaLocation":2556},"Why GitLab?",{"freeTrial":2582,"mobileIcon":2586,"desktopIcon":2591,"secondaryButton":2594},{"text":2207,"config":2583},{"href":2584,"dataGaName":2210,"dataGaLocation":2585},"https://gitlab.com/-/trials/new/","nav",{"altText":2587,"config":2588},"GitLabアイコン",{"src":2589,"dataGaName":2590,"dataGaLocation":2585},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":2587,"config":2592},{"src":2593,"dataGaName":2590,"dataGaLocation":2585},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":2367,"config":2595},{"href":2596,"dataGaName":2597,"dataGaLocation":2585},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":2599,"mobileIcon":2603,"desktopIcon":2605},{"text":2600,"config":2601},"GitLab Duoの詳細について",{"href":2240,"dataGaName":2602,"dataGaLocation":2585},"gitlab duo",{"altText":2587,"config":2604},{"src":2589,"dataGaName":2590,"dataGaLocation":2585},{"altText":2587,"config":2606},{"src":2593,"dataGaName":2590,"dataGaLocation":2585},{"button":2608,"mobileIcon":2613,"desktopIcon":2615},{"text":2609,"config":2610},"/switch",{"href":2611,"dataGaName":2612,"dataGaLocation":2585},"#contact","switch",{"altText":2587,"config":2614},{"src":2589,"dataGaName":2590,"dataGaLocation":2585},{"altText":2587,"config":2616},{"src":2617,"dataGaName":2590,"dataGaLocation":2585},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":2619,"mobileIcon":2624,"desktopIcon":2626},{"text":2620,"config":2621},"料金ページに戻る",{"href":2354,"dataGaName":2622,"dataGaLocation":2585,"icon":2623},"back to pricing","GoBack",{"altText":2587,"config":2625},{"src":2589,"dataGaName":2590,"dataGaLocation":2585},{"altText":2587,"config":2627},{"src":2593,"dataGaName":2590,"dataGaLocation":2585},{"title":2629,"button":2630,"config":2634},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":2246,"config":2631},{"href":2632,"dataGaName":2633,"dataGaLocation":2205},"/ja-jp/gitlab-orbit/","orbit",{"layout":2635,"disabled":2185},"release",{"data":2637},{"text":2638,"source":2639,"edit":2645,"contribute":2650,"config":2655,"items":2660,"minimal":2869},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":2640,"config":2641},"ページのソースを表示",{"href":2642,"dataGaName":2643,"dataGaLocation":2644},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":2646,"config":2647},"このページを編集",{"href":2648,"dataGaName":2649,"dataGaLocation":2644},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":2651,"config":2652},"ご協力をお願いします",{"href":2653,"dataGaName":2654,"dataGaLocation":2644},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":2656,"facebook":2657,"youtube":2658,"linkedin":2659},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[2661,2706,2759,2802,2836],{"title":2352,"links":2662,"subMenu":2677},[2663,2667,2672],{"text":2664,"config":2665},"プランの表示",{"href":2354,"dataGaName":2666,"dataGaLocation":2644},"view plans",{"text":2668,"config":2669},"Premiumを選ぶ理由",{"href":2670,"dataGaName":2671,"dataGaLocation":2644},"/ja-jp/pricing/premium/","why premium",{"text":2673,"config":2674},"Ultimateを選ぶ理由",{"href":2675,"dataGaName":2676,"dataGaLocation":2644},"/ja-jp/pricing/ultimate/","why ultimate",[2678],{"title":2527,"links":2679},[2680,2682,2684,2686,2691,2696,2701],{"text":2527,"config":2681},{"href":2536,"dataGaName":2215,"dataGaLocation":2644},{"text":2539,"config":2683},{"href":2541,"dataGaName":2542,"dataGaLocation":2644},{"text":2544,"config":2685},{"href":2546,"dataGaName":2547,"dataGaLocation":2644},{"text":2687,"config":2688},"ステータス",{"href":2689,"dataGaName":2690,"dataGaLocation":2644},"https://status.gitlab.com/","status",{"text":2692,"config":2693},"利用規約",{"href":2694,"dataGaName":2695,"dataGaLocation":2644},"/terms/","terms of use",{"text":2697,"config":2698},"プライバシーに関する声明",{"href":2699,"dataGaName":2700,"dataGaLocation":2644},"/ja-jp/privacy/","privacy statement",{"text":2702,"config":2703},"Cookie 優先設定",{"dataGaName":2704,"dataGaLocation":2644,"id":2705,"isOneTrustButton":933},"cookie preferences","ot-sdk-btn",{"title":2251,"links":2707,"subMenu":2716},[2708,2712],{"text":2709,"config":2710},"DevSecOpsプラットフォーム",{"href":2234,"dataGaName":2711,"dataGaLocation":2644},"devsecops platform",{"text":2713,"config":2714},"AI支援開発",{"href":2240,"dataGaName":2715,"dataGaLocation":2644},"ai-assisted development",[2717],{"title":2718,"links":2719},"トピック",[2720,2724,2729,2734,2739,2744,2749,2754],{"text":2270,"config":2721},{"href":2722,"dataGaName":2723,"dataGaLocation":2644},"/ja-jp/topics/ci-cd/","cicd",{"text":2725,"config":2726},"GitOps",{"href":2727,"dataGaName":2728,"dataGaLocation":2644},"/ja-jp/topics/gitops/","gitops",{"text":2730,"config":2731},"DevOps",{"href":2732,"dataGaName":2733,"dataGaLocation":2644},"/ja-jp/topics/devops/","devops",{"text":2735,"config":2736},"バージョン管理",{"href":2737,"dataGaName":2738,"dataGaLocation":2644},"/ja-jp/topics/version-control/","version control",{"text":2740,"config":2741},"DevSecOps",{"href":2742,"dataGaName":2743,"dataGaLocation":2644},"/ja-jp/topics/devsecops/","devsecops",{"text":2745,"config":2746},"クラウドネイティブ",{"href":2747,"dataGaName":2748,"dataGaLocation":2644},"/ja-jp/topics/cloud-native/","cloud native",{"text":2750,"config":2751},"コーディングのためのAI",{"href":2752,"dataGaName":2753,"dataGaLocation":2644},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":2755,"config":2756},"エージェント型AI",{"href":2757,"dataGaName":2758,"dataGaLocation":2644},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":2760,"links":2761},"ソリューション",[2762,2765,2767,2772,2776,2779,2782,2785,2787,2789,2792,2797],{"text":2295,"config":2763},{"href":2290,"dataGaName":2764,"dataGaLocation":2644},"Application Security Testing",{"text":2282,"config":2766},{"href":2266,"dataGaName":2267,"dataGaLocation":2644},{"text":2768,"config":2769},"アジャイル開発",{"href":2770,"dataGaName":2771,"dataGaLocation":2644},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":2773,"config":2774},"SCM",{"href":2279,"dataGaName":2775,"dataGaLocation":2644},"source code management",{"text":2270,"config":2777},{"href":2272,"dataGaName":2778,"dataGaLocation":2644},"continuous integration & delivery",{"text":2321,"config":2780},{"href":2323,"dataGaName":2781,"dataGaLocation":2644},"value stream management",{"text":2725,"config":2783},{"href":2784,"dataGaName":2728,"dataGaLocation":2644},"/ja-jp/solutions/gitops/",{"text":2334,"config":2786},{"href":2337,"dataGaName":2338,"dataGaLocation":2644},{"text":2340,"config":2788},{"href":2343,"dataGaName":2344,"dataGaLocation":2644},{"text":2790,"config":2791},"公共機関",{"href":2349,"dataGaName":2350,"dataGaLocation":2644},{"text":2793,"config":2794},"教育",{"href":2795,"dataGaName":2796,"dataGaLocation":2644},"/ja-jp/solutions/education/","education",{"text":2798,"config":2799},"金融サービス",{"href":2800,"dataGaName":2801,"dataGaLocation":2644},"/ja-jp/solutions/finance/","financial services",{"title":2803,"links":2804},"リソース",[2805,2807,2809,2811,2815,2817,2820,2822,2824,2826,2828,2830,2832,2834],{"text":2370,"config":2806},{"href":2372,"dataGaName":2373,"dataGaLocation":2644},{"text":2375,"config":2808},{"href":2377,"dataGaName":2378,"dataGaLocation":2644},{"text":2380,"config":2810},{"href":2382,"dataGaName":2383,"dataGaLocation":2644},{"text":2385,"config":2812},{"href":2813,"dataGaName":2814,"dataGaLocation":2644},"https://docs.gitlab.com/ja-jp","docs",{"text":2408,"config":2816},{"href":2410,"dataGaName":2411,"dataGaLocation":2644},{"text":2818,"config":2819},"最新リリース",{"href":2468,"dataGaName":2469,"dataGaLocation":2644},{"text":2403,"config":2821},{"href":2405,"dataGaName":2406,"dataGaLocation":2644},{"text":2422,"config":2823},{"href":2424,"dataGaName":2425,"dataGaLocation":2644},{"text":2430,"config":2825},{"href":2432,"dataGaName":2433,"dataGaLocation":2644},{"text":2435,"config":2827},{"href":2437,"dataGaName":2438,"dataGaLocation":2644},{"text":2440,"config":2829},{"href":2442,"dataGaName":2443,"dataGaLocation":2644},{"text":2445,"config":2831},{"href":2447,"dataGaName":2448,"dataGaLocation":2644},{"text":2450,"config":2833},{"href":2452,"dataGaName":2453,"dataGaLocation":2644},{"text":2455,"config":2835},{"href":2457,"dataGaName":2458,"dataGaLocation":2644},{"title":2837,"links":2838},"会社情報",[2839,2841,2843,2845,2847,2849,2853,2858,2860,2862,2864],{"text":2479,"config":2840},{"href":2481,"dataGaName":2473,"dataGaLocation":2644},{"text":2484,"config":2842},{"href":2486,"dataGaName":2487,"dataGaLocation":2644},{"text":2492,"config":2844},{"href":2494,"dataGaName":2495,"dataGaLocation":2644},{"text":2497,"config":2846},{"href":2499,"dataGaName":2500,"dataGaLocation":2644},{"text":2502,"config":2848},{"href":2504,"dataGaName":2505,"dataGaLocation":2644},{"text":2850,"config":2851},"Sustainability",{"href":2852,"dataGaName":2850,"dataGaLocation":2644},"/sustainability/",{"text":2854,"config":2855},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":2856,"dataGaName":2857,"dataGaLocation":2644},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":2507,"config":2859},{"href":2509,"dataGaName":2510,"dataGaLocation":2644},{"text":2517,"config":2861},{"href":2519,"dataGaName":2520,"dataGaLocation":2644},{"text":2522,"config":2863},{"href":2524,"dataGaName":2525,"dataGaLocation":2644},{"text":2865,"config":2866},"現代奴隷制の透明性に関する声明",{"href":2867,"dataGaName":2868,"dataGaLocation":2644},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2870},[2871,2873,2876],{"text":2692,"config":2872},{"href":2694,"dataGaName":2695,"dataGaLocation":2644},{"text":2874,"config":2875},"Cookieの設定",{"dataGaName":2704,"dataGaLocation":2644,"id":2705,"isOneTrustButton":933},{"text":2697,"config":2877},{"href":2699,"dataGaName":2700,"dataGaLocation":2644},[2879],{"id":2880,"title":7,"body":2184,"config":2881,"content":2883,"description":2184,"extension":2887,"meta":2888,"navigation":933,"path":2889,"seo":2890,"stem":2891,"__hash__":2892},"blogAuthors/en-us/blog/authors/itzik-gan-baruch.yml",{"template":2882},"BlogAuthor",{"name":7,"config":2884},{"headshot":2885,"ctfId":2886},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch","yml",{},"/en-us/blog/authors/itzik-gan-baruch",{},"en-us/blog/authors/itzik-gan-baruch","bz9VMiTQ1ixvnoxUFk0jiUcnLG3oQsymgXNCqyRqfsk",[2894,2902,2909],{"title":2895,"description":2896,"heroImage":2897,"category":2180,"date":2898,"authors":2899,"slug":2901,"externalUrl":2184},"Loop Engineeringの実践方法：GitLab × Claude Codeでの実装例","GitLabとClaude Codeで実践するLoop Engineeringの実装例をご紹介。AIエージェントを自律稼働させるcron起動・Skills活用・ラベルベースのフローと、必須のガードレール設計を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785215335/oevhcbrbev1zyfubdfxz.jpg","2026-07-31",[2900],"Issei Hamada, Sony Biz Networks Corporation","loop-engineering-gitlab-claude-code",{"title":2903,"description":2904,"heroImage":2905,"category":2180,"date":2898,"authors":2906,"slug":2908,"externalUrl":2184},"エージェント型AI、MCP、AIコードアシスタントを統制する方法","AIエージェントは、各ステップで人によるレビューを介さずに、コードの記述、プッシュ、デプロイを行うことができます。アクセス、権限、監査証跡を統制する実践的なフレームワークを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",[2907],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":2910,"description":2911,"heroImage":2912,"category":2180,"date":2913,"authors":2914,"slug":2916,"externalUrl":2184},"Claude Opus 5、GitLabで最難関タスクに挑む","AnthropicのClaude Opus 5がGitLab Duo Agent Platformで利用可能になりました。速度を犠牲にすることなく、より深い推論力を提供します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[2915],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":2918},[2919,2932,2943,2955],{"id":2920,"categories":2921,"header":2922,"text":2923,"button":2924,"image":2929},"ai-modernization",[2180],"AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":2925,"config":2926},"AI成熟度スコアを確認する",{"href":2927,"dataGaName":2928,"dataGaLocation":2411},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":2930},{"src":2931},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2933,"categories":2934,"header":2935,"text":2923,"button":2936,"image":2940},"devops-modernization",[2195,2743],"単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":2937,"config":2938},"DevOps成熟度スコアを確認しましょう",{"href":2939,"dataGaName":2928,"dataGaLocation":2411},"/ja-jp/assessments/devops-modernization-assessment/",{"config":2941},{"src":2942},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2944,"categories":2945,"header":2947,"text":2923,"button":2948,"image":2952},"security-modernization",[2946],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":2949,"config":2950},"セキュリティ成熟度スコアを確認しましょう",{"href":2951,"dataGaName":2928,"dataGaLocation":2411},"/ja-jp/assessments/security-modernization-assessment/",{"config":2953},{"src":2954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2956,"paths":2957,"header":2960,"text":2961,"button":2962,"image":2967},"github-azure-migration",[2958,2959],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":2963,"config":2964},"GitLabとGitHubの比較を見る",{"href":2965,"dataGaName":2966,"dataGaLocation":2411},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2968},{"src":2942},{"header":2970,"blurb":2971,"button":2972,"secondaryButton":2976},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":2207,"config":2973},{"href":2974,"dataGaName":2210,"dataGaLocation":2975},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":2527,"config":2977},{"href":2536,"dataGaName":2215,"dataGaLocation":2975},1786803753262]