概要
VSCode v1.99(2025年3月)よりエージェント機能がStableになったので試してみます。
背景
コーディングにおいてAIエージェントが統合されたエディタは非常に便利です。
筆者もCursorのエージェント機能を使い始めてからコード生産性が3倍にあがったりしました。
AIエージェント統合エディタとしてよく名前を聞くものとしてCursor,windsurf、clineなどがあります。CursorとwindsurfはVSCodeのフォーク版、clineはVSCodeの拡張機能であり、ビジネス利用を考慮した場合には、VSCode単体に比べてセキュリティ面などで一定のハードルがあります。
そんな中、2025年3月リリースのVSCode v1.99にてエージェント機能がリリースされました。
VSCodeの公式機能ですので、相対的には企業での利用のハードルが低い可能性が高いです。
加えて、MCPのサポートもされており、Cursorなどと比べても大きく遜色ない使いごこちも期待されます。
そこで、今回手元で使い方を試してみたいと思います。
参考: https://code.visualstudio.com/docs/copilot/chat/chat-agent-mode
導入
- GitHub Copilotに加入する。無料プランでもOK。
- VSCodeのバージョンを確認し、1.99未満であれば、更新する。
- 設定エディタからchat.agent.enabledを設定する。よくわからない場合は、リリースページの同文字列のリンクをクリックするとvscodeを開いて設定してくれます。
- 「ヘッダーのCopilotアイコン > Open Chat」でコパイロットの画面を開く。GitHubにサインインしていない場合はここでサインインする。
- Copilotのチャット画面の右下の「質問する(Ask)」をクリックし「エージェント(Agent)」を選択
- 標準以外のモデルを使用したい場合は「model」から追加しAPIキーなどを登録する
なお、企業などorganizationに属するアカウントの場合は、organization設定でプレビュー機能がオフになっていると「エージェント」が選択できないかもしれません。Stableとしてのリリースなので、遠からず使えるようになる可能性もありますが、急ぎの場合は、GitHubのorganizationの設定を確認してください。
使用できるモデルも同様にorganizationによって制限されている可能性があります。
エージェント機能
試しに適当なフォルダを作って、reactのプロジェクトの初期化をお願いするとやってくれました。
ターミナルでのコマンド実行、ファイルの読み書きなどよしなにやってくれました。
モデルはClaude 3.7 Sonnetで試しました。
普段はCursorのdefaultモデルを使っているのですが、それと比べると、少し文脈の理解が弱く、2つ前に行ったことを無視して実装されることが何度かありました。モデルのせいなのかエディタ独自のインストラクションのせいなのかは不明です。
カスタムインストラクション
以降は、エージェント機能と関係なく、Copilotのころからある設定と思いますが、Cursorから乗り換えた手前、基本的な使い方として確認しておきます。
こちらを参考に、リポジトリ固有のカスタムインストラクションを.github/copilot-instructions.md
に書きます。
試しなので、instructionsはエージェントに書いてもらいました。
最初、上記のリンクを参考に書いてと頼むといい感じに書いてくれなかったので、上記のサイトを読んで、書くときに注意することをまず列挙してから書かせると、いい感じになりました。
.github
の直下に1つしかおけないのはCursorと比べると不親切に思いました。
Cursorでは.cursor/rules/
の下に複数のmdcファイルを置くことができます。
workflowsなど.github
下の他の設定ファイルとゴチャゴチャにならないように、.github/rules
みたいな場所におけるようになるといいなと思いました。
コミットメッセージ
エディタのソース管理タブからコミットメッセージを自動生成できます。
デフォルトだと英語で生成されるので、こちらを参考にコミットメッセージ用のカスタムインストラクションを設定しました。
settings.jsonに書けるタスクごとのインストラクションは
- Review Selection,
- Code Generation
- Commit Message Generation
- Pull Request Description Generation
- Test Generation
があるようです。
Memory Bank
clineのメモリバンク的なことをやってみたかったので、こちらを参考に実装しました。
上記に記載のmdを、すでに作成したinstructionsに追記し、init memory
とchatで指示しました。
数時間使った感想(主に不満)
コードハイライトのCopilotチャットへのコピーができない
Cursorだとcmd+Lでコードのハイライト部分をチャットにコピーできます。
これに相当する方法をCopilotで探しましたが見つかりませんでした。
コードハイライトへの質問ができない
Cursorだとcmd+Kでコードハイライト部分の編集ができるのですが、送信時にoption+Enterとすると、編集ではなく単なる質問があります。
GitHub Copilotではcmd+Iでコードハイライト部分の編集ができますが、Cursorのoption+Engerに相当する、単に質問するだけのやり方はわかりませんでした。
遅い
Cursorと比べると出力がかなり遅いです。
生産性に直結します。
おわりに
とりあえず以上です。
細かい差異はありますが、cursorやclineと遜色ないことができそうな気配があります。
引き続き使い勝手を試していきたいです。