はじめに
この記事は、現場の最前線で働くSEによる、生成AI活用に向けた試行錯誤の記録です。
「AIにレビューを任せたいけど、なんか薄っぺらい指摘しか来ないんだよなぁ」と悩んでいる皆さんに捧げます。
対象読者
- GitHub Copilotを導入したものの、コードレビューの精度に満足していない方
- 「生成AIを活用せよ」という上層部からの無茶ぶりに、具体的な解を求めている方
- MCP(Model Context Protocol)やCustom Agentsといった最新技術の実装例を知りたい方
TL;DR
- 標準のCopilotレビューは「一般論(命名規則やDRY原則)」には強いが、プロジェクト固有のコンテキストには弱い。
- レビューの質を上げる鍵は、**「テックリードの思考プロセス(概要把握→アタリ付け→深掘り)」**をAIに再現させること。
- Custom Agentsで「レビュー専用モード」を構築し、MCPでGitHub API経由の外部情報を注入することで、一歩先のレビューを実現した(格闘中!)。
1. はじめに:AIレビューの「理想」と「現実」
現在、私のプロジェクトでも「生成AIを使い倒せ!」という大号令が響き渡っています。
特に期待されているのがコードレビューの自動化。GitHub Copilotを導入し、Pull Request(PR)でのCopilotレビュー機能もフル活用し始めました。
最初は「これでレビュー依頼の行列から解放される!」と歓喜したものです。
しかし、実際に使い込んでいくと、ある「壁」にぶち当たりました。
2. ぶち当たった「一般論レビュー」という壁
Copilotレビューは、確かにコード単体を見れば非常に優秀です。
- 「変数の命名をもう少し具体的にしましょう」
- 「ここのネストは深くしすぎない方がいいですよ」
といった指摘はバシバシ飛んできます。しかし、SEとして本当に欲しい指摘は、もっと別のところにありました。
現場で本当に欲しいのは「プロジェクトの文脈」
- 「この変更、実はあっちのファイルの共通処理とロジックが重複してない?」
- 「うちのプロジェクトの設計指針では、ここはAじゃなくてBを使う決まりだよね?」
- 「この修正、一見良さそうだけど、バッチ処理側のあの定数と矛盾しない?」
こうした**「Instructions(指示書)に書ききれないプロジェクトの特性」や、「複数ファイルにまたがる影響範囲」を、標準のAIレビューは見抜いてくれないのです。いわば、「教科書は完璧だけど、現場のルールを知らない新入社員」**のような状態でした。
3. テックリードはどうやってレビューしているのか?
どうすればAIを「テックリード級」に引き上げられるのか?
私は、人間(特にテックリード層)がレビューする時の動作を観察し、以下の3ステップに分解しました。
- 概要把握: PRのタイトルや説明、変更ファイルのリストを見て「何のための修正か」を掴む。
- アタリ付け: 「この機能の修正なら、あの共通部品にも影響が出るはず」「ここ、以前バグが出た箇所に近いな」と、怪しい箇所を直感(経験)で絞り込む。
- 深掘り: 絞り込んだ箇所に集中して、関連ファイルを横断的に読み、矛盾がないか確認する。
多くの時間がかかるのは「3」ですが、最も価値があるのは「2」のアタリ付けです。
ならば、**「AIにアタリを付けさせ、必要な情報を動的に取ってこさせる仕組み」**を作ればいいのではないか?と考えました。
4. 解決策:Custom Agents × MCP で「脳」と「手足」を作る
ここで登場するのが、GitHub Copilotの最新機能である Custom Agents (カスタムエージェント) と、今話題の MCP (Model Context Protocol) です。
① Custom Agents で「レビュー専用モード」を定義
単なるチャットではなく、レビューに特化したシステムプロンプトを持つエージェントを作成しました。
ここでは「一般論の指摘は8割削れ」「プロジェクトの設計書(Markdown)を常に参照しろ」といった、テックリードの着眼点を叩き込みます。
② MCP で AIに「調査する手足」を与える
AIの最大の弱点は、コンテキスト(把握できる情報量)の限界です。これを突破するために、以下のMCPを組み合わせました。
- 公式GitHub MCP: PRのメタデータや差分を詳しく取得。
- 自作MCP (FastMCP使用): GitHub REST API を叩き、「特定のキーワードを含むファイルをプロジェクト全域から検索する」「指定したファイルの依存関係を抽出する」といったツールを自作しました。(さらに一段取得したデータを生成AIに要約させることも検証中)
これにより、AIが「このファイル修正してるけど、関連するXXXService.javaも確認しなくて大丈夫?」と、自らGitHub APIを叩いて調査し、アタリを付けることが可能になります。
5. 現在の手応えと、一歩先のレビューへ
正直に言います。まだ「精度100%!人間不要!」ではありません。
というか、AIに渡すコンテキストが多すぎると逆に迷走したり、自作MCPの挙動が甘くて空振りしたりすることも多々あります(笑)。
しかし、標準のCopilotレビューと比べれば、「おっ、そこまで見てるのか!」という指摘が出る確率は格段に上がりました。
今後の展望:スキルの「仕組み化」
この試行錯誤で気づいたのは、AIを使いこなすには、人間側の「言語化能力」と「PRの出し方」も重要だということです。
- AIが読みやすいPRの粒度(AtomicなPR)にする。
- コンテキストの整理(どのドキュメントを読ませるか)を最適化する。
これらを磨くことで、AIレビューは「単なる文法チェック」から「設計の番人」へと進化できると確信しています。
まとめ
「生成AIでレビュー」は、ツールを入れて終わりではありません。
「テックリードの勘所」をどうやってAIに教え込み、MCPなどの技術でどうやって「現場のコンテキスト」を届けるか。 この泥臭いチューニングこそが、SEとしての新しい腕の見せ所ではないでしょうか。
皆さんも、自分だけの「最強のレビューエージェント」を育ててみませんか?
最後に
今回のAdvent Calendarのテーマである CodeRabbit は、まさにこの「コンテキストの深い読み取り」を高い次元で実現しているサービスです。自作MCPで苦労している部分を、CodeRabbitがどう鮮やかに解決しているのか……。それと比較してみるのも、面白いかもしれません。