Github Copilot Agent Modeを使ってみる(実験中)

もくじ

https://tera1707.com/entry/2022/02/06/144447

github copilot 情報源

https://tera1707.com/entry/2025/06/10/223811

前提

使用した vscode バージョン

バージョン: 1.100.3 (user setup)
コミット: 258e40fedc6cb8edf399a463ce3a9d32e7e1f6f3
日付: 2025-06-02T13:30:54.273Z
Electron: 34.5.1
ElectronBuildId: 11369351
Chromium: 132.0.6834.210
Node.js: 20.19.0
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.26100

やったこと

Github Copilot Agent Mode を使ってみたときのメモ。

最初に、AgentModeで「WPFインベーダーゲームを作ってください」というと、いくつかの確認メッセージにOKを押すだけで、インベーダーゲームができてしまった。

なんかおもろいぞ、となったので、使い方を調べてみる。

前提

下記環境で試した。

  • 2025/06/02頃に実験した
  • VisualStudio2022 17.14.3

VisualStudioでAgentモードを使う

VisualStudioの

  • [ツール] > [オプション]

を押し、オプションの中の[Github] > [Copilot] を選ぶ。

その中の「チャットウインドウでエージェントモードを有効にする」にチェックを入れる。

そうすると、ここにこんな欄が出てくる。

中身は質問(Ask)エージェント(Agent)

  • 質問(ASK):
    質問に答えてくれるだけ。コードの編集等は行わない。
  • エージェント(AGENT):
    質問にも答えるし、コードの編集、ファイルの追加削除、プロジェクトやソリューションの作成もやってくれる。

補助ツールの有効化設定画面

下図のスパナマークを押すと、補助ツールの有効無効を設定できる。

それぞれこういう設定らしい。

•  learn_search
.NET APIやC#、F#言語のドキュメントやサンプルコードを検索します。
• text_search
コードベース内で指定した用語に関連するコードスニペットを検索します。
• get_file
指定したファイルの内容を取得します。
• get_currentfile
現在アクティブなファイルの内容を取得します。
• get_errors
指定したファイルのコンパイルエラーを取得します。
• find_files
ワークスペース内でファイル名やパスに一致するファイルを検索します。
• get_files_in_project
指定したプロジェクト内のすべてのファイルのパスを取得します。
• get_projects_in_solution
現在開いているソリューション内のプロジェクトの相対パスを取得します。

learn_searchのlearnは「MS_Learn」のこと。要するに、MSのドキュメントから検索するということか。

コンテキストの実験

コンテキストとは、

GitHub Copilot Chatにおける「コンテキスト」とは、
現在の作業状況や、関連するコード・ファイル・プロジェクトの情報、ユーザーの指示内容など、AIがより適切な回答や提案を行うために参照する周辺情報を指します。
たとえば、
• 開いているソースコードやファイルの内容
• プロジェクトの種類や設定(例:.NET 9、WPFアプリケーションなど)
• 直前の会話や指示
• エラーやビルド結果
などが「コンテキスト」としてAIに利用されます。
これにより、Copilot Chatはユーザーの意図や状況に合った回答やコード提案ができるようになります。

とのこと。

Github Copilot のAskやAgentでは、コンテキストを指定しておくと、その内容をもとに、回答をくれる。

コンテキストの指定の仕方

この枠に、Copilotに質問したりやってほしいことを入力するのだが、

試した限り、下記のような感じだった。

コンテキストになにも指定しない

このコードはなにをしているコードですか?と聞くと、「何について聞かれているかわかりません」と言われる。

エディターでファイルを開いておく

エディターでファイルを開いておく、とはこういうイメージ。

この状態で、このコードはなにをしているコードですか?と聞くと、その開いているファイルの説明をしてくれる。

「+参照」ボタンを押して、クラスやメソッドの名前を選択する

「+参照」ボタンを押すと、いろいろ選択できるメニューが出てくる。

それぞれ、その項目を選ぶと、そいつをコンテキストにしてくれる。

メソッドを選ぶと、選んだメソッドの説明、ソリューションを選ぶと、全体の説明をしてくれた。

※試した限り、今開いているドキュメントよりも、「+参照」で選んだ方が優先されるっぽい。

チャット欄に「@workspace」と入れる

おそらく、VSで開いている全体を表しているので、「+参照」でソリューションを選んだ時と同じな気がする。(未検証)

このコードはなにをしているコードですか?とどちらでも聞いてみた限り、同じような回答が来ていた。

??「@workspace」と書いて、下図の表示が出ていると、AgentModeが解除されてAskになってしまう気がする?

新しいチャット(スレッド)を立てる

ここを押すと、新しくチャットを立てられる。

その横の「▼」を押すと、それまでに立てたチャットを見て、押すと開ける。

※どこで見たか忘れたが、

  • チャットが続いていくと、そこまでの会話を「コンテキスト」として使うので、
  • いったんそれをリセットしたい場合は、新しいチャットを立てたらよい

という使い方だったと思う。

Agentが実装した分の差分表示

Agentモードで「〇〇してください」というと、どんどんエディタ上で差分表示が切り替わっていって、少しずつ目的のコードに近づいていくサマが見える。

試しに、最初に作ってくれたインベーダーゲームの敵機が四角形だったので「敵機を三角形にして」と指示すると、30秒ほどいろいろ自動で変更が走った後、下図のような結果が出た。

変更が入ったコードがこのように表示され、右端のアイコンを押すと、差分を表示できる。 差分はこんな感じで見える。

この状態でF5を押して実行すると、変更後のコードで動く。 (実際のファイルも、その変更後のコードになっている。)

で、↓の画面で「保持」を押すと、そのコードが採用されるが、「元に戻す」を押すと変更が破棄されて、元に戻る。(どこかで一時的に前のコードを覚えてて、それを使って巻き戻ってるっぽい)

※AgentModeにいい加減な指示をすると、とんでもないことになることがある。(xaml.csのなかに、xamlをかいてしまったりとか)
そういうときは、「元に戻す」を押してあげれば、その指示を出す前の状態に戻ってくれる。かなり焦る。

VisualStudioとVSCode

VSCodeだと、「C++で〇〇をするアプリを作成してください」というと、プロジェクトを作成してくれる。

が、VisualStudioだと、同じ指示をしても、プロジェクトを作成したりはしてくれなかった。

指示の仕方が悪いのか?IDEの仕様の違いなのか?は分からない。

VisualStudioで、いつも通りのやり方でC++のコンソールアプリテンプレートでプロジェクト(ソリューション)を作成してから、〇〇をするコンソールアプリにしてください、というと、その通りにしてくれた。

VisualStudioは、プロジェクト自体を作るようには現状なっていないのかもしれない。

また、VSCodeは、ビルドが成功した後に「アプリを実行してください」というと実行してくれたが、VisualStudioは実行はしてくれなかった。(ただ、VisualStudioは、ただF5をおせば実行できるので、大した問題ではないと思った。むしろF5でじっこうできるのでこっちのほうがよいかも)

VSCodeで既存のプロジェクトを開くときのやり方

プロジェクトを開くときは、VSCodeのメニューの[ファイル] > [フォルダーを開く] で、 slnファイルのあるフォルダを開いてやればよい。

閉じるときは、「フォルダーを閉じる」をした。

VSCodemsbuild.exeがみえないとき

「ビルドして」というと、

こういうエラーが出た。msbuildがみえてない。ので、msbuildが見えていないようです。フルパスで実行してくださいと指示すると、フルパスで実行してくれた。

参考

GitHub Copilot のドキュメント
Github側のページ

https://docs.github.com/ja/copilot

Use Copilot agent mode in Visual Studio (Preview)
MS側のページ

https://learn.microsoft.com/en-us/visualstudio/ide/copilot-agent-mode?view=vs-2022

よさげな参考ページ 2025・4月 https://dev.classmethod.jp/articles/vs-code-copilot-features/

MCPサーバー

https://learn.microsoft.com/en-us/visualstudio/ide/mcp-servers?view=vs-2022

github公式MCPサーバー

https://github.com/github/github-mcp-server

github オフィシャル/コミュニティMCPサーバー

https://github.com/modelcontextprotocol/servers

MCPでチャットを拡張

https://docs.github.com/ja/copilot/customizing-copilot/extending-copilot-chat-with-mcp

MSのgithub copilot トレーニン

https://learn.microsoft.com/ja-jp/training/browse/?terms=github%20copilot