GitHub Copilot のエージェントモード(パブリックプレビュー)を試す

| 3 min read
Author: masahiro-kondo masahiro-kondoの画像

はじめに

#

GitHub Copilot のエージェントモードが覚醒したそうです。

紹介ビデオも YouTube に上がっています。


GitHub Copilot のエージェント、どんなものか使ってみたいと思います。

Information

昨年のアドカレ記事でも今年2025年は、エージェントがくると予想されていました。

利用の準備

#

記事執筆時点では、リリース版の VS Code ではなく Insiders 版が必要になりますので、以下のリンクから VS Code Insiders 版をダウンロード、インストールします。[1]

VS Code Insider 版を起動したら GitHub Copilot Chat 拡張の Pre-Release 版をインストールします。拡張のタブで "Copilot Chat" で検索するとトップに出てきます。

Install GitHub Copilot Chat Pre-Release

Copilot を利用するため、有効なサブスクリプションを持つ GitHub アカウントでサインインします。

Sign in with GitHub

Copilot の設定で、Agent が有効になっていることを確認します。

Settings

Copilot Edits モードを開きます。

Open Copilot Edits

自律的に作業を行うエージェントモードでは、従来型の Chat UI ではなく、作業セットのファイルを直接編集可能な Copilot Edits がフィットするのだと思います。

Information

Copilot Edits については以下の記事で紹介しましたのでご参照ください。

プロンプト入力ボックスの下部にあるオプションで、Edit から Agent にスイッチします。

Switch to Agent

こうすることで、Copilot Edits が エージェントモード (Experimental) になります。

Agent Mode Panel

せっかくなので、モデルも GPT 4o ではなく Claude 3.5 Sonnet (Preview) を選んでみました。

Cloude

エージェントモードを利用して簡単なアプリを作ってみる

#

エージェントなのでちょっと高度なことをやってもらおう、ということで以下のような指示を出してみました。

「Nuxt 3 で ToDo を管理するサイトを作って。データは SQLite に保存するようにして。」

最初 Sonnet を有効にするダイアログが出ましたので Enable を押しました。

Enable sonnet

次に Nuxt アプリを生成するためのコマンドの実行が提案されました。

Create Nuxt app

Continue をクリックすると実際にコマンドが実行されます。コマンド実行の間は待ち状態になります。

waiting for executing CLI

ターミナルで Nuxt プロジェクトの生成が開始され、パッケージインストールとプロジェクト生成を行います(nuxi の実行では通常通り人間がパッケージマネージャの選択などを行います)。

npx nuxi

プロジェクト作成の次は SQLite 関連のインストールだそうです。言われるがままに Continue します。

Install SQLite

ターミナルでは、パッケージがインストールされていきます。

Install npm packages

プロジェクト作成と必要パッケージのインストールが完了すると、アプリが怒涛の勢いで作成されていきます。最後に、開発サーバーの起動を促されます。

Building App and run app

この時点でプロジェクトには作成されたファイルが追加されています。

Explorer

とりあえず、開発サーバーを起動してみました。

npm run dev

アプリが利用できるようになりました。

ready to use

localhost:3000 に接続するとアプリが表示されました。

Open App

試しに ToDo を入れて追加ボタンを押してみましたが、反応がありません。

Cannot add todo

ターミナルに、todos テーブルがないというエラーが出ています。

Error message

実行エラーを修正する

#

さて、怒涛の勢いでアプリが出来ましたが、うまく動作しませんでした。そこでターミナルのエラーメッセージをコピーし、プロンプトに貼り付けてみました。Dizzle ORM のマイグレーションでテーブルを作成するそうです。

recover from error

Continue すると、ターゲットのターミナルのカレントパスが違っていたためかエラーになってしまいました。

Command execution error

実行エラーを検知して代案を出してくれましたので Continue します。

retry command

非推奨の警告は出ましたが、成功したようです。

dizzle-kit

コマンドの成功を検知して、開発サーバーが再起動が促されましたので Continue。

Rerun app

今度はめでたくちゃんと動きました。

ToDo App worked

仕様を追加する

#

もうエージェントモードの威力は十分に確認出来ましたが、せっかくなのでちょっとした機能追加をやってもらいます。

「ToDo の項目に期日を追加したい。期日のデフォルトは当日日付。カレンダーコントロールで入力できるようにしたい。」というプロンプトを投入してみます。

Add feature

また、怒涛の勢いでタスクが計画・実行され、コードの修正が完了しました。あとはデータベースを初期化して再起動するだけです。

Feature implemented

筆者のオペミスで、データベースが作られませんでした。困ったのでプロンプトで、コマンドを教えてもらいました。

Ask DB initialize command

DB は成功したのですが、起動時エラーになりましたので、エラーメッセージを貼り付けて訊いてみました。

Fix error

すぐに自身の生成したコードの問題点を発見し直してしまいました。そして要望通りの機能が追加されています。

Updated app

さいごに

#

以上 Copilot のエージェント機能を試してみました。アプリの生成や機能追加に要した時間はそれぞれ数十秒といったところです。紹介した通り、非常に自律的に振る舞っており、エージェントの名に恥じない機能となっていました。エラーが発生しても、フィードバックしてあげることで自律的にコード修正をしてくれます。有能すぎる。


  1. Insiders をインストールしてもリリース版の VS Code には影響しませんのでご安心ください。 ↩︎

豆蔵では共に高め合う仲間を募集しています!

recruit

具体的な採用情報はこちらからご覧いただけます。