公開:2026年5月28日

11分で読めます

エージェント型コーディングの品質はコンテキスト次第

エージェント型コーディングはスピードをもたらします。GitLabのライフサイクルコンテキストにより、企業は表面的な修正や長いレビューサイクルといった課題に対処できます。

毎週のように、プロンプトを入力するだけで5分以内にプルリクエストが生成される、というコーディングエージェントのデモが公開されています。こうしたデモの多くは、まだ本番環境に導入されていない限定的なユースケースを取り上げており、コミット後に起こることはすべて省略されています。

プルリクエストには、修正対象のイシューへのリンクがありません。エージェントが最近追加されたリンタールールを把握していなかったため、CI/CDパイプラインが失敗します。プロジェクトの承認済みリストを確認せずにエージェントが追加した依存関係を、セキュリティスキャンが検知します。

これらはコンテキスト不足による失敗であり、エージェント型コーディングがデリバリーを加速させるのか、手戻りを生み出すのかを左右する要因です。しかし開発チームがGitLabでコーディングエージェントを使用する場合、エージェントはプラットフォーム上にすでに存在するイシュー、パイプライン、セキュリティポリシーを活用し、デベロッパーのフローの中で問題を検出・修正します。

本記事では、コーディングエージェントに段階的にライフサイクルコンテキストを与えていった場合(リポジトリのみのアクセスから、フルプラットフォームの可視性まで)に何が変わるのかを、最近公開された2つのGitLabチュートリアルを参考に解説します。プラットフォームのコンテキストがコード品質、セキュリティ評価、レビューサイクルをどのように改善するか、そして今日からプラットフォームチームがどのようにしてコンテキストのギャップを埋められるかをご紹介します。

コンテキストを実践で活用する

GitLabのチュートリアルでは、外部コーディングエージェントに段階的により多くのフルプラットフォームコンテキストを提供した場合に何が起こるかを示しています。1つ目のチュートリアルでは、Claude Codeを使った3つのワークフローを紹介しています:C++センサーのクラッシュ修正、GitLabのModel Context Protocol(MCP)サーバーによるセッションの拡張、そしてマージリクエスト内でClaude Codeを外部エージェントとして使用してレビューのフィードバックに対応するワークフローです。2つ目のチュートリアルでは、CodexとGitLabを使った同様の段階的な進め方を紹介し、今回はRust WebSocketフィルタリングのバグを同じ3つのシナリオで修正しています。

シナリオ1:エージェントがリポジトリのみを参照する場合
エージェントにコードベースを指定し、プロンプトで問題を説明します。エージェントはファイルを読み込み、修正案を提示し、ビルドを実行します。修正は機能しますが、エージェントがローカルファイルとプロンプトから推測した情報のみに基づいたものです。組織のコンテキスト(イシューの受け入れ基準、非機能要件、プロジェクトのCI設定で定義されたレビュー基準)は把握されていません。コードはコンパイルできても、チームが本当に必要としているものとは異なる可能性があります。

シナリオ1:エージェントがリポジトリのみを参照する場合

シナリオ2:エージェントがリポジトリとGitLabイシューを参照する場合
GitLab MCPサーバーを接続すると、エージェントはコードを書く前にイシューを取得できるようになります。機能要件、実装メモ、ラベル、マイルストーンを読み込めます。CodexとGitLabのチュートリアルでは、エージェントがコード変更とイシューの関連性を理解したうえで、マージリクエストの説明にCloses #32を追加します。Claude Codeのチュートリアルでは、エージェントがget_issueでバグレポートを取得し、create_merge_requestで適切な参照情報を含むMRを作成します。今回の修正は、チームが計画した内容と一致したものになります。

シナリオ2:エージェントがリポジトリとGitLabイシューを参照する場合

シナリオ3:エージェントがマージリクエスト内で作業する場合
MRが作成されると、GitLabのコードレビューフローが自動的に実行され、フィードバックが投稿されます。両方のチュートリアルでは、コーディングエージェントがMR内で外部エージェントとして呼び出され、レビューのフィードバックに対応します。不足しているテストの追加、ドキュメントコメントの更新、レビューで指摘された検証の漏れを修正します。エージェントはMRブランチに直接コミットし、新しいコミットに対してCI/CDパイプラインが自動的に実行されます。人間のレビュアーはツールを切り替えることなく結果を確認できます。

このシナリオで、両チュートリアルともレビュー回数の減少とマージまでの時間短縮が実証されました。

シナリオ3:エージェントがマージリクエスト内で作業する場合

シナリオ3の続き:エージェントがマージリクエスト内で作業する場合

エージェント型コーディングとプラットフォームの可視性の重要性

プラットフォームチームを担当している場合、組織全体でAI支援開発をどのように機能させるかを決定する立場にあります。どのエージェントを使用できるか、どのツールにアクセスできるか、出力をどのように検証するか、そしてどこで人間が判断を下すかを定義します。

エージェントが組織として信頼できる変更を生み出すためにはコンテキストが必要であり、そのコンテキストはDevSecOpsプラットフォームに存在します。イシュートラッカーには要件が記載されています。CI/CD設定は品質基準を定めています。コードレビューの指示はチームのスタイルと標準を体系化しています。セキュリティスキャナーは脆弱性ポリシーを適用します。そしてマージリクエストは、すべてが集約される人間による最後の承認関門です。

コードレビューの指示

プラットフォームコンテキストを持つエージェントは、開発チームと同じワークフローに沿い、同じガードレールの中で動作します。差が出るのは、レビューサイクル、パイプライン通過率、マージまでの時間です。

一方、IDEやターミナルベースのエージェントは、いかに高性能であっても、渡されたファイルしか見えません。プラットフォームはイシュー、パイプライン、セキュリティポリシーから、デプロイ対象や承認ルールまで、ライフサイクル全体にアクセスできます。この可視性のギャップこそが、安全にリリースできるかどうかを決めるのは、エージェントではなく組織のプラットフォームだという理由です。

エージェントがコードを大量生成する場合のセキュリティへの影響

すべてのチュートリアルで、コーディングエージェントが作成するすべてのマージリクエストに対して、CI/CDパイプラインとコードレビューが自動的に実行されます。チュートリアルではコード品質に焦点を当てていますが、セキュリティスキャンもパイプラインに組み込まれています。セキュリティが関わる場面では、プラットフォームチームにとってコンテキストがさらに重要になります。

コーディングエージェントはより多くのコードをより速く生成します。コードが増えるほど、導入される脆弱性も増え、スキャナーが検知する件数も増え、修正MRも増えます。

  • AIコーディングエージェントが登場する以前は、脆弱性管理のボトルネックはアプリケーションセキュリティ側にありました。スキャン、検知結果の優先順位付け、重要なものをデベロッパーにエスカレーション、修正を待つ、という流れです。
  • エージェントがコード生成と修正を加速させている今、ボトルネックは移動しています。ワークフローは「どの脆弱性を最初に修正すべきか」から「どのAI生成の修正MRを人間が最初にレビューして承認すべきか」へと進化しています。

この判断には、コーディングエージェントが持っていないコンテキストが必要です。つまり、周辺のプロジェクトコード全体、完全なデータフロー、デプロイ対象、そして組織全体に適用されるセキュリティポリシーです。

  • コンテキストがあれば、優先順位付けの精度が上がります。周辺コード、データフロー、適用されるポリシーを把握したエージェントは、汎用的な重大度スコアではなく、実際の環境における本物のリスクに基づいて検知結果をランク付けし、レビュアーが時間を費やす前に重要なものを浮かび上がらせます。

シナリオ2のコーディングエージェントがGitLabイシューを読んでより良いコードを生成したように、セキュリティレイヤーも単一ファイルではなくアプリケーション全体のコンテキストを参照できれば、より精度の高い評価が可能になります。

GitLabのセキュリティレイヤーはプロジェクトの全コンテキストで検知結果を分析し、誤検知をフィルタリングして、確認された脆弱性にフラグを立てます。脆弱性が確認されると、エージェント型SASTの脆弱性解決機能が脆弱なコードとリポジトリ内の周辺コンテキストを読み込み、修正案を含むマージリクエストを自動的に作成します。パイプラインが実行されて修正を検証します。人間のレビュアーが確認し、最終的なマージの判断を下します。エージェントが修正を担当し、ガバナンスモデルは維持されます。

CI/CDの品質ゲート、コードレビューの指示、セキュリティスキャンはいずれもマージリクエストで機能し、コーディングエージェントも同じ場所で作業します。コード生成の時点でこれらのコントロールが効果的であるほど、本番環境に到達する脆弱性は少なくなります。

AGENTS.mdによるカスタム指示

両チュートリアルでは、リポジトリ内のAGENTS.mdファイルを活用しています。これはエージェントに対するカスタム指示であり、プロジェクトの構成、実行するコマンド、コード品質の期待値(触れてはいけない箇所も含む)を定義します。

CodexとGitLabのチュートリアルでは、AGENTS.mdファイルがRustエディションから非同期並行処理パターン、CIイメージのピン留めポリシーまですべてを定義していました。エージェントはプロンプトでコンテキストを繰り返し与えられる必要はなく、ファイルを読んでルールに従うだけでした。

ローカルツールチェーンのセットアップ

この一度きりの手間が、デベロッパーのターミナルでローカルに実行している場合でも、MCPで接続している場合でも、マージリクエスト内で外部エージェントとして動作している場合でも、すべてのエージェントとのインタラクションに効果をもたらします。プロジェクト全体でAGENTS.mdを標準化することでエージェント出力の品質が向上します。ローカルかリモートかにかかわらず、すべてのエージェントセッションが同じルールを読み込むためです。

コンテキストウィンドウの制限

大規模言語モデルには有限のコンテキストウィンドウがあり、コンテキストの使用率が30〜40%を超えるとモデルのパフォーマンスが低下することが、さまざまなチームの研究で示されています。ツール、ファイル、指示をセッションに詰め込めば詰め込むほど、エージェントの推論の信頼性は下がります。

組織としては、エージェントに豊富なライフサイクルコンテキスト(イシュー、レビュー指示、パイプライン履歴、セキュリティポリシー)を提供したいと考えています。ただし同時に、コンテキストが構造化されており、関連性が高く、効率的に提供されることも必要です。

すべてのエージェントセッションでファイルを読み込んで不要なAPIコールを繰り返すことでコンテキストを再構築する(コンテキストウィンドウの質を低下させ、トークンを消費する)のではなく、コード、イシュー、パイプライン、デプロイ間の関係を理解するプラットフォームが、適切なタイミングで適切なコンテキストを提供できます。GitLabはライフサイクル全体にわたってこれらの関係性を多数把握しており、よりコンテキストを効率的に提供する基盤を持っています。マージリクエストが対象とするイシュー、コード変更が影響するサービス、結果を検証するパイプラインをプラットフォームが把握していれば、断片から再組み立てするのではなく、構造化されたコンテキストとして提供できます。

組織のAI支援開発ワークフローの効率は、モデルのコンテキストウィンドウのサイズではなく、プラットフォームが構造化されたコンテキストをいかにうまく提供できるかにかかっています。

エージェントがフィードバックループを短縮する

コーディングエージェントがマージリクエスト内でレビューのフィードバックに対応する場合、エージェントはそのフィードバックに基づいて行動します。フィードバックを読み、要求された変更を加え、コミットし、CI/CDに検証させます。人間のレビュアーは引き続き結果を確認し、承認するか追加変更を求めるかを判断し、最終的なマージの決定を下します。

承認ルール、コードオーナー、セキュリティポリシー、監査証跡はすべて維持されます。エージェントは周囲のコントロールを迂回することなく、修正サイクルを加速させます。

GitLab Duo Agent Platformの外部エージェントは、イベントトリガーカスタムフローとさらに統合でき、プラットフォームチームがエージェントのワークフロー上での動作タイミングと方法をコントロールできます。

エージェント型コーディングを始めるには

コーディングエージェントを組織の開発ワークフローにどう組み込むか評価している場合は、以下を参考にしてください:

実際のプロジェクトで目に見えるバグを選ぶ。 GitLabイシューに明確な要件で期待される動作を定義します。チュートリアルで示された同じ段階的な進め方を実践しましょう:エージェントがリポジトリからローカルで修正する→GitLab MCPを接続してエージェントがイシューから作業できるようにする→マージリクエスト内でフィードバックに対応する外部レビュアーとしてエージェントを使用する。

AGENTS.mdを整備する。 リポジトリの仕組み、注意すべきコマンド、コード品質の期待値を文書化します。これらの指示により、時間が経過してより多くのエージェントとデベロッパーがプロジェクトを利用するにつれて、エージェント出力の品質が複合的に向上します。

コンテキストの消費量を監視する。 エージェントセッションが遅い、コストがかかる、または表面的な結果しか生み出せていない場合、問題はモデル自体ではなく、モデルに提供しているコンテキストにある可能性が高いです。プラットフォーム統合を通じて提供される構造化された関連コンテキストは、ファイルをそのまま無加工で渡すよりも優れたパフォーマンスをもたらします。

セキュリティカバレッジを確認する。 コーディングエージェントが複数のプロジェクトでより多くのマージリクエストを生成するにつれ、すべてのプロジェクトがスキャンされていることを確認しましょう。グループレベルでセキュリティ設定プロファイルを適用してスキャナーが自動的に有効になるようにし、セキュリティインベントリでカバレッジを確認して脆弱性が集中している箇所を把握します。

エージェント型コーディングを今すぐ始める

エージェント型コーディングを最大限に活用できる組織は、エージェントに適切なコンテキストとコントロールを提供して安全にリリースできるDevSecOpsプラットフォームを持つ組織です。

GitLab Duo Agent Platformをまだご利用でない方は、無料トライアルからお試しください。

GitLab Freeプランをすでにご利用の方は、以下の手順でGitLab Duo Agent Platformにサインアップできます。

GitLab PremiumまたはUltimateをすでにご利用いただいている方は、Duo Agent Platformを有効化し、サブスクリプションに含まれるGitLabのプロモーション用クレジットをご活用ください。

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。

フィードバックを共有する

今すぐ開発をスピードアップ

DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。