VSCode の最近 v1.99

## 初めに
2025 年から AI の進化が激しいですね。
OpenAI をはじめ、Google / microsoft など、どんどん AI ツールを導入・リリースされております。
そんな中で、最近の VSCode の AI 機能について、簡単にメモがてらまとめてみたので、気になる方はみていただければです。

## リリースノート確認
リリースノート: https://code.visualstudio.com/updates/v1_99

上記のサイト確認した際に、個人的に気になったことだけをピックアップしていく

### Chat 機能
VSCode で chat 機能が使えるようになった
元々は、[VSCode Insiders](https://code.visualstudio.com/insiders/) でアルファ版として使用できていたのだが、正式に VSCode に導入された
VSCode の settings.json にて `"chat.agent.enabled": true` にすると使用できる

### MCP サーバ
VSCode で MCP サーバが使用できるようになった
ワークスペースで使用する場合は `.vscode/mcp.json` を作成すれば使用できる
ただ、まだ検証段階だった場合、コミットの diff に含まれ間違ってコミットする可能性もあるため、厄介な場合は User の settings.json の中身に mcp の設定を追加すればいける

![スクリーンショット 2025-04-06 13.22.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/42e88c90-d8f1-477b-8217-54f1d011aacd.png)

Claude Desktop と連携してるっぽいので、Claude Desktop で MCP の設定が追加されている場合は、その設定が反映される
Cursor での MCP も検知するので、そこで設定されていてもおけ

これで、今まで使用していた [Copilot MCP](https://marketplace.visualstudio.com/items/?itemName=AutomataLabs.copilot-mcp) の拡張機能とはおさらばできますね

### Fetch tool
公式より

> 一般にアクセス可能なウェブページのコンテンツをプロンプトに含める には、#fetchツールを使用する。たとえば、MCPのようなトピックに関する最新のドキュメントをプロンプトに含めたい場合、完全なドキュメント(LLMが利用するのに便利な状態になっている)をフェッチしてもらい、それをプロンプトに使用することができます。

とのことで、ヘッドレスブラウザを立ち上げてサイトを読み込むらしい
ただ、そのブラウザでは JavaScript がオフになってる（今後オンになっていく予定らしい）
なので、もし JS も実行したいようにしたいのであれば、[Playwright MCP](https://github.com/microsoft/playwright-mcp) を使用しろだそうです

### usages tool
公式より

> usagesツールは、"すべての参照を検索"、"実装を検索"、"定義へ移動 "を組み合わせたものです。このツールは、チャットが関数、クラス、インターフェイスについて詳しく知るのに役立ちます。例えば、チャットはこのツールを使ってインターフェースの実装サンプルを探したり、リファクタリングを行う際に変更が必要な箇所をすべて見つけることができます。

とのことなので、既存の開発基準などがあればそちらに準拠した書き方でコードを生成してくれるっぽい
地味に使いそうな予感

### Agent モードでのワークスペース新規作成
公式より

> エージェントモードで新しいVS Codeワークスペースを雛形化できるようになりました。VS Code エクステンション、MCP サーバー、その他の開発環境のいずれをセットアップする場合でも、エージェントモードを使用することで、必要な依存関係や設定でこれらのプロジェクトを初期化、構成、起動することができます。

これは [Bolt](https://bolt.new/) のようなことが Agent モードでも使用できる感じかなと思った

### Agent mode tool approvals
Agent モードでターミナル実行も可能になるが、リスクが伴う
そのため、ターミナルコマンドの使用を承認する必要があるとのこと
今まで VSCode Insiders を使用していて、そこで Agent モードを使用していた人はもう慣れていることだとは思うが、こちらは引き続き慎重に扱っていきたい（脳死でポンポン承認しているとディレクトリ構成がぶっ壊れることも・・・）
また承認の最適化を行うため、セッション・ワークスエース・アプリケーションレベルで承認を記憶できるようになったとのこと
ただ、現在のターミナルツールでは有効になっていないので、今後のリリースでターミナル用の承認システムを開発する予定だそう
[oh my zsh](https://ohmyz.sh/) とかとうまく組み合わせることができるのかしら？と気になったりした

### Unified Chat view
改めて、Chat 機能は下記のような UI に変更された

![スクリーンショット 2025-04-06 13.36.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/341734/b33a8b62-2874-4df1-bc27-7408b66bba1d.png)

* Ask: これは前のチャットビューと同じです。任意のモデルを使用して、ワークスペースやコーディング全般について質問することができます。組み込みのチャット参加者やインストールされている拡張機能を呼び出すには `@` を使用します。任意のコンテキストを手動で添付するには `#` を使用します
* Agent: タスクを完了するために、自律的にコンテキストを収集したり、ターミナルコマンドを実行したり、その他のアクションを実行するための一連のツールを使って、エージェント的なコーディングフローを開始します。エージェントモードはすべてのVS Code Insidersユーザーで有効になっており、VS Code Stableではより多くのユーザーに提供される予定です
* Edit: 編集モードでは、モデルは複数のファイルに対して指示された編集を行うことができます。codebaseを付けると、自動的に編集するファイルを見つけることができます。しかし、ターミナルコマンドを実行したり、他のことを自動的に行うことはできません

今更知ったが、このモードの切り替えにはショートカットが用意されていた
それが **「`Cmd` + `.`」** となる

### Bring Your Own Key (BYOK) (Preview)
公式より

> Copilot ProとCopilot Freeのユーザーは、Azure、Anthropic、Gemini、Open AI、Ollama、Open Routerなどの一般的なプロバイダーのAPIキーを持参できるようになりました。これにより、Copilotでネイティブにサポートされていない新しいモデルを、リリースされたその日から使用できるようになります。
> 
> これを試すには、モデルピッカーからモデルの管理...を選択します。Copilot BusinessおよびEnterpriseのお客様へのサポートを積極的に検討しており、今後のリリースで最新情報を共有する予定です。この機能の詳細については、[ドキュメント](https://code.visualstudio.com/docs/copilot/language-models)をご覧ください。

ちょっと気になるので、暇な時に試そうかなぁ〜（多分試さないやつだが）

### Reusable prompt files

#### Improved configuration
settings.json の設定で `chat.promptFilesLocations` があるが、こちらにグロブパターンがサポートされるようになった
さらに、ファイルシステム上で大文字と小文字の区別が適用されるようになり、ホスト・オペレーティング・システムの動作と一致するようになった

#### Alignment with custom instructions
`.github/copilot-instructions.md` ファイルが使用できるようになった
こちらは VSCode Insiders で実験的に追加された機能で今回、正式に VSCode に追加される運びとなっている
こちらの機能に関しては Chat した際の返答の材料となるものを事前に入力できるといったもの

カスタム命令についてはこちらを参照とのこと
https://code.visualstudio.com/docs/copilot/copilot-customization

#### User prompts
> Create User Promptコマンドにより、ユーザープロンプトと呼ばれる新しいタイプのプロンプトを作成できるようになりました。これらはユーザーデータフォルダに保存され、コードスニペットやユーザー設定と同様にマシン間で同期することができます。同期の設定は同期設定の同期リソースリストでプロンプト項目を使用して行います。

ようわからんが、なんか便利そう

#### Improved vision support (Preview)
前回は GPT-4o で Copilot Vision が有効になっていた
チャットで画像を添付して使用する方法については、[リリースノート](https://code.visualstudio.com/updates/v1_98#_copilot-vision-preview)を確認すること

このリリースでは、どのブラウザからでもドラッグ＆ドロップで画像を添付できる
ブラウザからドラッグ＆ドロップした画像は、`.jpg`・`.png`・`.gif`・`.webp`、または `.bmp` の正しい URL 拡張子を持つ必要があります。

画像読み込ませてやり取りは地味にありがたいのでフロントエンジニアはどんどん活用できそうだと感じる

### Semantic text search improvements (Experimental)
AIを活用したセマンティック・テキスト検索が「検索」ビューでデフォルトが有効になった
キーボードショートカットの `⌘I` を使用すると、通常の検索結果の上に、クエリに基づいて最も関連性の高い結果を表示するセマンティック検索をトリガーできる
設定を変更したい場合は `github.copilot.chat.search.semanticTextResults` を変更する

### Code Editing

#### Next Edit Suggestions general availability
Next Edit Suggestions（NES）の一般提供が開始された
これは早く実装の時に試したい
設定をいじるには `github.copilot.nextEditSuggestions.enabled` を `true` にする必要がある

どんな機能なの？に関してはリリースノートにある動画を見ればわかると思う
https://code.visualstudio.com/assets/updates/1_99/next-edit-suggestion.mp4

### Notebook
こちらに関しては、いまだに Nodebook をそこまで使用したことがないので割愛


## まとめ
まず前回 v1.98 が出てから、もう v1.99 が出て、すごいスピード感だなぁと思いました
Agent モードの使用が VSCode Insiders で使用でき、その後すぐ VSCode で使用できるようになったため、VSCode Insiders はまた眠らせようと思いますw
次の VSCode のリリースも楽しみにしつつ、頑張って AI のキャッチアップは行っていこうと思います
キャッチアップが遅れるとエンジニアとしても結構危機的状況にもなりかねないので、皆さんも頑張っていきましょう！