GitHub Copilot エージェントの二段階レビュー体制が凄かった話

GitHub Copilot エージェントで「タグの整理」を依頼した体験記。短い指示から始まり、システムプロンプトの更新、そしてレビューエージェントによる精密なチェックまで、二段階のエージェント体制の素晴らしさを実感しました。

@nqounetです。

GitHub Copilotのエージェント機能を使って、ブログ記事のタグを整理してもらいました。この体験を通じて、Copilotエージェントの真の実力を実感することができました。

この記事では、PR #4での体験を振り返り、GitHub Copilotエージェントの素晴らしさについて共有します。

きっかけ:たった一言の指示

最初の指示は、わずか4文字でした。

タグの整理をする

この短い指示だけで、Copilotエージェントはタスクセッション(c13e0091-aea5-48e2-b4a7-6b51d5bbc6e6)を開始しました。

短い指示でどこまでできるのかを試してみたかったのですが、実際には指示以外の要素がたくさん働いていることがわかりました。

システムプロンプトとMCPサーバーの力

エージェントが実際に作業を進める際、以下の要素が追加されていたようです:

  1. システムプロンプト.github/copilot-instructions.md

    • リポジトリ固有の指示やガイドライン
    • 記事のfront matter形式
    • タグ付与の方針(後に追加)
  2. MCPサーバー(Model Context Protocol)

    • GitHubとの連携機能
    • リポジトリの構造理解
    • ファイル操作の支援

これらの要素により、「タグの整理」という抽象的な指示が、具体的なアクションに変換されました。

実際の作業内容

エージェントは以下の作業を自動的に実行しました:

1. 大文字小文字の統一

1
2
3
4
5
6
7
# 修正前
tags:
  - AI

# 修正後
tags:
  - ai

わずか1件でしたが、AI タグを ai に統一しました。

2. タグなし記事への追加

ウイスキー記事に favorites, life タグを追加(1件)。

3. undefタグの削除と再生成

これが最も大規模な作業でした。133件の記事から undef タグを削除し、本文とタイトルを解析して適切なタグを自動生成しました。

分類例:

  • perl: Perlコード、モジュール使用が明確な記事
  • social: Twitter、Facebook、SNS関連記事
  • web: ウェブ開発、API、HTML関連記事
  • game: ゲーム関連記事
  • linux: ファイルシステム、コマンド関連記事
  • meals: ラーメン、飲食店関連記事
  • life: 上記に該当しない日常記事

システムプロンプトの更新を覚えた

作業の途中で、私はエージェントにシステムプロンプトの更新を依頼しました:

1
@copilot タグの方針について、システムプロンプトを更新してください。

これにより、.github/copilot-instructions.md に以下の方針セクションが追加されました:

  • タグは必ず1〜3個付与する(0個や4個以上は避ける)
  • 既存タグを優先的に使用し、新規タグの作成は最小限にする
  • タグは小文字で統一する(例: ai であり AI ではない)
  • 本文とタイトルから記事の主題を分析してタグを選定する
  • カテゴリ別のタグ分類(技術系、ブログ/CMS、ソーシャル、日常、コミュニティ、AI関連)
  • undef や未定義のタグは使用しない
  • タグの表記ゆれを避ける(例: macos と mac を併用しない)

一つのプルリクエストの中に色々と詰め込むのは良くないとは思うのですが、エージェントにシステムプロンプトを更新してもらうことを覚えたので、プルリクエストの中で更新をしてもらうことにしました。

これはこれで良い感じになったと思います。

タグ付与方針違反の修正

システムプロンプトに方針を追加した後、既存記事の方針違反も修正してもらいました(17件):

  • タグ数違反の修正: 4〜5個のタグを持つ記事を3個に削減(16件)
  • 表記ゆれの修正: macmacos に統一(1件)

凄かったのはここからでした

プルリクエストをドラフト状態からレビュー可能にすると、自動的にCopilotのレビューが行われます。(設定によりますが)

このレビューによって、変更されたファイルが精査されていきました。

レビューエージェントの精度の高さ

このレビューエージェントの精度が高くて、タグの変更がおかしいのでは?という指摘をビシバシとしてきました。

誤分類の指摘例

  1. 日常記事が web タグになっている問題(7件)

    1
    2
    3
    4
    5
    
    この記事は請求書処理の苦手克服についての個人的な考察で、
    ビジネス・日常的な内容です。`web` タグではなく、
    元の `life` タグが適切です。
    
    推奨: tags: [life]
    
  2. Perl技術記事が social タグになっている問題(2件)

    1
    2
    3
    4
    5
    
    この記事はPerlの返り値の扱いに関する技術的な内容です
    タグを `social` に変更するのではなく、`perl` タグを使用すべきです。
    記事の内容とタグが一致していません。
    
    推奨: tags: [perl] または tags: [perl, programming]
    
  3. git技術記事の誤分類(1件)

    1
    2
    3
    4
    5
    6
    
    この記事はgitoliteに関する技術的な内容です
    `social`  `web` ではなく、`git` タグを使用すべきです。
    gitoliteはgitのリポジトリ管理ツールなので
    技術的なカテゴリに分類されます。
    
    推奨: tags: [git] または tags: [git, linux]
    
  4. macOS技術記事の誤分類(1件)

    1
    2
    3
    4
    5
    
    この記事はHomebrewとffmpegに関する技術的な内容です
    `social` タグではなく、`macos` タグを使用すべきです
    Homebrewは主にmacOSで使用されるパッケージマネージャー)。
    
    推奨: tags: [macos] または tags: [macos, tools]
    

システムプロンプトの矛盾も指摘

レビューエージェントは、システムプロンプトの例示と実際の変更内容の矛盾も見つけました:

1
2
3
4
5
6
7
タグ付与の方針セクションで、「コミュニティ」カテゴリに 
`perl-entrance` と `perl-nabe` が例示されていますが、
実際のPRでは多くの記事からこれらのタグが削除されています。

ガイドラインと実際の変更内容に矛盾があります。
これらのタグをガイドラインから削除するか、
または記事に残す方針を明確にする必要があります。

レビューコメントへの対応

レビューコメントを受けて、さらに修正を依頼しました:

1
@copilot apply changes based on the comments in this thread

この指示により、誤って分類されたタグを修正(11件)し、システムプロンプトの例示も実態に合わせて更新しました。

二段階レビュー体制の価値

この体験を通じて、GitHub Copilotの素晴らしい体制が見えてきました:

第一段階:作業エージェント(大胆な変更)

  • 全体を網羅的に変更
  • 133件の記事のタグを自動生成
  • システムプロンプトの更新
  • タグ付与方針違反の修正

特徴

  • スピードが速い
  • 大量のファイルを一度に処理
  • 方針に基づいて自動判断

第二段階:レビューエージェント(詳細なチェック)

  • 変更された部分を詳細に見る
  • 記事の内容とタグの一致を確認
  • システムプロンプトとの整合性をチェック
  • 具体的な改善案を提示

特徴

  • 精度が高い
  • コンテキストを理解
  • 人間にわかりやすい説明

なぜこの体制が優れているのか

  1. 大胆に変更しつつも、厳しくチェック

    • 作業エージェントが大量の変更を実行
    • レビューエージェントが問題を発見
  2. 人間とは比較にならないレベルの速さ

    • 174ファイルを更新(173件の記事 + 1件のシステムプロンプト)
    • 複数回の修正を経ても、すべて数分以内に完了
  3. 見落としが限りなく少ない

    • 11件のタグ誤分類を発見
    • システムプロンプトの矛盾も指摘
    • 人間のレビューではここまで徹底できない
  4. 安心して任せることができる

    • 自動化されたチェック
    • 具体的な改善案
    • 変更内容の透明性

「Copilotの編集」とは比較にならない進化

以前のCopilot機能と比較すると、エージェント機能は圧倒的に進化しています:

機能 Copilotの編集 Copilotエージェント
対象範囲 1ファイル 複数ファイル・リポジトリ全体
判断 人間の指示が必要 自律的に判断
レビュー なし 自動レビュー機能あり
コンテキスト理解 限定的 システムプロンプト・MCP活用
修正 手動 自動フィードバックループ

最終結果

すべての修正を経て、以下の結果となりました:

  • ユニークタグ数: 57 → 55(AI/ai統合とmac/macos統合により2つ削減)
  • タグ付与率: 867/868 → 868/868(100%達成
  • 大文字小文字の不統一: 解消
  • undefタグ: 133件 → 0件(完全削除
  • タグ数違反: 16件 → 0件(全記事が1〜3個のタグを保持
  • 表記ゆれ: 解消(mac → macos統一)

タグ分布の改善

レビュー後の修正により、より適切な分類になりました:

  • perl: 334 → 335(技術記事を正しく分類)
  • life: 104 → 149(日常記事を正しく分類)
  • social: 60 → 123(自動生成で増加後、誤分類を修正)
  • web: 18 → 49(自動生成で増加後、誤分類を修正)
  • git: 26 → 27
  • macos: 5 → 7(macから統合+技術記事の修正)
  • meals: 23 → 24

まとめ

GitHub Copilotエージェントの二段階レビュー体制は、本当に素晴らしいものでした。

主なポイント:

短い指示でも十分: システムプロンプトとMCPサーバーが補完

システムプロンプトの更新: プルリクエスト内で柔軟に対応

大胆な変更: 174ファイルを一度に処理

精密なレビュー: 11件の誤分類を発見・修正

圧倒的なスピード: 人間の数十倍・数百倍の速さ

見落としが少ない: 網羅的かつ詳細なチェック

安心して任せられる: 透明性の高い作業とレビュー

この体験を通じて、Copilotに安心して任せることができる体制になっていることがわかりました。

見落としがないとは言いませんが、限りなく少ないです。しかも、人間とは比較にならないレベルの速さで、です。

「Copilotの編集」とはもう比較にならないほど進化してますね。

参考リンク


本記事はバイブブロギングで作成しています

この記事は、実際にGitHub Copilotエージェントを使用した体験を基に作成されました。

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。