GitHub Copilot Coding Agent 体験記

はじめに

こんにちは。スマートコンテンツ事業部の中津留です。
最近、OKR活動の一環として「AIを活用したコーディング」に取り組んでいます。

普段はGitHub Copilotにコード補完をしてもらう程度でしか活用していませんが、
今回はせっかくの機会なので、それ以外の機能についても試してみることにしました。

※この記事は「エムティーアイ Blog Summer 2025」の 8/18 分の記事です。

作るもの

現在模擬プロジェクトとして健康をサポートするアプリを開発しており、私は「健診機関一覧を表示」する機能の実装を担当中です。
アプリ画面は別途AIで実装済みの状態のため、今回はアプリから 健診機関一覧を取得するためのGET APIを実装していこうと思います。
言語はC#で、REST APIを作成していきます。

ソフトウェアアーキテクチャは事前に決まっており、プロジェクト内には各層(Controllers, Models, Logics, Repositoriesなど)のフォルダと仮実装がすでに入った状態から開発を始めています。

GitHub Copilot Coding Agent で実装してみる

現状のコードは以下のように、コントローラー層に仮実装をしている状態です。

    public class HealthInstitutionController : ControllerBase
    {
        [HttpGet]
        public async Task<IActionResult> GetHealthInstitutions()
        {
            // TODO: Implement health institutions logic
            return Ok(new { message = "Health institutions endpoint - Implementation needed" });
        }
    }

Visual Studio CodeからGitHub Copilot Chatを開き、「Agent」モードにします。
LLMはGPT-4.1を使用しました。

チャット欄で以下のように指示します:
「GetHealthInstitutionsを実装してください。健診機関一覧を取得するGETメソッドです。」

すると、Model層やRepository層の関連ファイルを検索し、実装の提案をしてくれました。

提案された内容に従い進めてもらうと、わずか10秒ほどで実装が完了しました!

コードの差分を確認できるので、これをレビューして、直してほしい部分を再度チャットします。

「健診機関を取得する処理はLogic層で行ってください。 また、HealthInstitutionsモデルは以下を持ちます。
id BIGINT IDENTITY(1,1) PRIMARY KEY,
code VARCHAR(50) NOT NULL,
name VARCHAR(100) NOT NULL, ... (DDLをコピペして指示)」
「インターフェースは別ファイルに分けて」
「テーブル名は○○」
「カラム名は○○」
「DIを実装してください」

行またはファイルごとにKeep / Undo を選択でき、Copilotによるコード変更を反映するか、破棄するかを選択できます。

また、チャット1回ごとにチェックポイントが保存されており、あるチャット地点まで変更を戻したい場合は「Restore Checkpoint」で巻き戻すことができます。

こうしてコードを1文字も書かず、チャットだけで1機能を実装することができました!

postmanで動作確認も行い、結果は期待通りでした。

おわりに

普段はコード補完程度しか使えていませんでしたが、
丸ごと実装をAIに任せて、人間はコードレビューのみという方法を試すことができました。
(かなりシンプルな実装だったからかもしれませんが) クオリティも問題ないように感じました。

今回はチャットを数ラリーしながら少しずつコードの軌道修正をしていきましたが
コーディングルールを事前にまとめてAIに覚えさせると更に高速に開発が進められそうです。

AI活用初心者なので、アドバイスや改善案があれば是非教えていただきたいです。

以上