Visual Studio Code⁠コーディングエージェントによるマージコンフリクトの解決アクションの追加⁠ネストされたAGENTS.mdの設置⁠AppleアカウントでのGitHub Copilotログイン可能に

Visual Studio Codeは2025年10月9日、バージョン1.105をリリースした。この記事ではいくつかの新機能と改善点を紹介する。

まず言語モデルの選択肢として「GPT-5-Codex」⁠Claude Sonnet 4.5」を選べるようになった。また、GitHubアカウントまたはGoogleアカウントでのサインインに加え、Appleアカウントを使ってGitHub Copilotアカウントにサインインできるようになった(つまりGitHubへログイン可能になった)


Gitマージコンフリクトマーカー付きのファイルを開くと、マージコンフリクトの解決をエージェントに任せることが可能になった。コンフリクトしているファイルのエディタ右下に「Resolve in Editor(マージエディターで解決⁠⁠」ボタンが表示された際に、その右端にあるチャットボタン(⁠⁠AIを使った競合の解決]アクション)を選択すると、コーディングエージェントがチャットビューを開き、マージベースとそのブランチの変更それぞれのコンテキストとしたマージコンフリクトの解決作業を始める。

そして、マージコンフリクトの解決案をエディタ上で確認し、必要に応じて追加のコンテキスト(たとえば、さらなる修正やコミットしてマージさせる処理)を追加できる。またAGENTS.mdを使うことで、マージコンフリクトの解決方法をカスタマイズできるとのこと。

ソース管理ビューのグラフでは、各コミット項目で変更が加えられたファイルを表示する機能を追加していたが、今回、その特定のバージョンのファイルをチャットリクエストのコンテキストとして追加できるようになった。それには、コミットを選択してファイルリストを表示し、特定のファイルを右クリックして、コンテキストメニューから「チャットに追加」を選択する。

VS Codeのテストビューを利用するための拡張機能がインストールされている場合、チャット上でrunTestsツール(#runTests)を使用することで、エージェントはコマンドラインからテストを実行するのではなく、VS Codeに統合されたテスト機能を使ってコードベースでテストを実行できる。今回、runTestsツールを使うとテストコードカバレッジもエージェントに報告するようになった。

また、VS Code内のターミナルのテスト結果ビューにおいて、そのタイトルメニューに新しく追加された「↔️(Toggle Tree Position⁠⁠」ボタンを使うことで、結果ツリーの位置を左右に切り替えられるようになった。

先月の更新で、ワークスペースのルートに配置したカスタムインストラクションファイルAGENTS.mdを利用できるようになった。さらに今回、実験的に、ワークスペースのサブフォルダに配置されたAGENTS.md、つまりネストさせてAGENTS.mdを設定できるようになった(chat.useNestedAgentsMdFilesを有効にする必要がある⁠⁠。これにより、コードベースの様々な場所に、より具体的なコンテキストと指示をエージェントに提供できるようになった。

言語モデルが推論するときに、思考の連鎖(Chain of Thought)を確認できればデバッグやモデルによる提案の理解に役立つ。今回モデルとしてGPT-5-Codexを選択した場合に、その思考トークンをチャットに展開表示できるようになった(実験的機能なのでchat.agent.thinkingStyleを有効にする必要がある⁠⁠。思考トークンの表示は、他のモデルでもできるようになる予定。

新規チャット時に、ワークスペースの最近のチャット履歴3つを常に表示し、さらに過去の履歴を振り返ったり利用したりできるリンクを表示できるようになった(実験的機能なのでchat.emptyState.history.enabledを有効にする必要がある⁠⁠。これまでは「チャットの表示」ボタンを押して確認できていた機能ではあるが、手軽に利用できるようになった。

これまではエージェントがチャットリクエストを処理中の場合、エージェントが処理を完了するまでファイルの編集内容を保持または元に戻すことができなかったが、今回、ファイルの編集が繰り返されている最中にファイルへの変更を保持または元に戻すことができるようになった。これにより、長時間実行されるタスクにおいて、より細かな制御が可能になる。

また、チャットのセッションにおいて、ユーザー自身が入力した過去のチャットプロンプトに素早く移動できるためのキーボードショートカットが導入された。⁠Ctrl+Alt+上矢印」で前のメッセージに移動し、⁠Ctrl+Alt+下矢印」で次のメッセージに移動できる。


チャットからターミナルを操作するrun-in-terminalツールによって起動されるシェルを設定するために、プラットフォーム固有のプロファイルを設定できるようになった(chat.tools.terminal.terminalProfile.windows、chat.tools.terminal.terminalProfile.osx、chat.tools.terminal.terminalProfile.linux⁠⁠。チャット専用のシェルを使用することで、エージェントの使いやすさを向上させることができるとのこと。なお、通常の環境とシェル起動スクリプトは変更されることはない。

"chat.tools.terminal.terminalProfile.osx": {
  "path": "bash", // zsh の代わりに bash
  "args": [], // macOS でログインの代わりに非ログイン
  "env": {
    "COPILOT": "1" // init スクリプトで使用できる環境変数
  }
}

Copilotエージェントによるターミナル操作において「Confirm?」などの確認時に「y/n」の自動で応答するための設定が実験的に追加された(設定でchat.tools.terminal.autoReplyToPromptsで有効にする⁠⁠。またターミナルで自由形式の入力が必要な場合、確認プロンプトを表示するようになった。


プロンプトファイルやカスタムチャットモードで使用するツールがどれに属しているかを明確にするために、正確なツール名の指定に対応した(たとえばcodebasesearch/codebase⁠。これにより、組み込みツールと、別途MCPサーバーや拡張機能によって提供されるツールとの名前の競合を避けられる。なお、これまでののツール名の表記法も引き続き使うことができる(プロンプトファイルでCode Actionを使うと、この新しいツール名に修正提案がおこなわれる⁠⁠。

ローカルのチャットとGitHubリモートコーディングエージェントセッションの両方を一元的に管理できるチャットセッションビューでは、複数のセッションを同時に管理できる。今回、チャットセッションの体験を向上させるために、UIの改良とパフォーマンスの改善がおこなわれた。UIとしては、ローカルチャットとリモートコーディングエージェントのヘッダーの「+」ボタンを使用して、新しいセッションをすばやく開始できるようになった。

GitHubリモートコーディングエージェントと連携する場合の一般的なシナリオは、まずローカルチャットセッションでタスクの議論と計画をおこない、コードベースのコンテキスト全体にアクセスできるようにする。その後、実装作業をリモートコーディングエージェントに委任するかたちになる。リモートエージェントはバックグラウンドでタスクを処理し、解決策を含むGitHub上でプルリクエストを作成する。詳しくは、VS CodeのドキュメントGitHub Copilot coding agentを参照のこと。

今回、GitHub Copilotコーディングエージェントが有効になっているリポジトリを作業している場合、チャット欄右下に「コーディングエージェントに委任」ボタンが表示されるようになった。この委任ボタンを押すと、リモートのGitHubリポジトリでエージェントを動作させるか確認するダイアログが表示される。そのまま続行すると、ファイル参照を含むチャットのやり取りすべてのコンテキストがリモートのコーディングエージェントに転送される。そして上述したようにプルリクエストが作成される。なお、GitHub Copilotエージェントが処理できるコンテキストウィンドウを超える場合、その情報は自動的に要約して圧縮される。

プレビュー機能として、VS Codeの拡張機能ビューにGitHub MCPレジストリを使った、MCPマーケットプレイスが組み込まれた。初回確認時に「Enable MCP Servers Marketplace」ボタンが表示されるが、これを押すと設定のchat.mcp.gallery.enabledが有効化できる。これによりGitHub MCPレジストリに掲載されているMCPサーバーを参照し、インストールできるようになった。なお、拡張機能ビューからMCPサーバーを参照するには、拡張機能ビューの検索ボックスで「@mcp」フィルターを使用する。

チャットメッセージを送信すると、MCPサーバーが自動的に起動するようになった。また、MCPサーバーが再起動などの対応を必要としているときに通知するインジケーターをチャット内に表示されるようになった。MCPサーバーの自動起動はデフォルトでオンになっているため、拡張機能を積極的にアクティブ化することはなくなり、最初のチャットメッセージが送信されたときにのみMCPサーバーを提供する拡張機能がアクティブ化される。

また、リソースを含んだ場合のツールの結果の出力は、これまでリソースの取得方法が明確にされておらずモデルに任せきりだったが、今回、デフォルトでリソースコンテンツのプレビューが含まれ、完全なコンテンツを取得するための指示が追加された。これにより、このようなツールを使用する際のモデルパフォーマンスが向上した。

そのほか最新のMCPの仕様をもとに、MCPサーバーがデータに関連付けるアイコンを指定できるようになった。これにより、サーバー、リソース、ツールにカスタムアイコンが設定されたものはそれを表示するようになった。また、MCPサーバーが取得機能を使用する際にデフォルト値を提供できるなり、これを利用できるようになった。


チャットセッションにおいてユーザーの確認を必要なとき、VS Codeの画面がフォーカスされていない場合にOS側に通知する機能を導入していた(設定のchat.notifyWindowOnResponseReceivedで指定)が、今回、トースト通知が拡張されてプレビューやOSバッジも表示されるようになった。なお、トースト通知を選択すると該当のチャットに切り替えられる。

また、長時間実行されるタスク完了に関するOS通知については、設定のtask.notifyWindowOnTaskCompletionで時間を指定することで(デフォルトでは60秒⁠⁠、タスクがその時間以上実行されている場合にのみ通知するようにできるようになった。

ターミナルのタスクタイトルを設定のterminal.integrated.tabs.titleで指定できるようになった。デフォルトでは${process}で、ターミナルで実行中のプロセス名が表示される。タスクの場合、タスクが別のプロセスを開始するとターミナルで表示されるタスクのタイトルが変更されて混乱要因になる可能性があったため、タスクの開始時にタスク名のタイトルを保持できるようになった。

また、ターミナルのメニューで「ターミナルでディクテーションを開始する」アクションが追加された。音声ディクテーションを使用してターミナルにテキストを入力できるようになった。


言語機能としてPythonでは、行番号を右クリックして、pytestおよびunittestのための識別子を簡単にコピーできる「Copy Test Id」コマンドが追加された。

Playwright VS Code MCPサーバーにおけるスクリーンショットの解析では、モデルによる理解のばらつきによって、エージェントが扱うチャットのコンテキストを汚染してしまう課題がある。そのため、コンテキストを汚さずに作業を分離する「サブエージェント」を自動で立ち上げて処理する方法を試していることが報告されている。

それには、サブエージェントを呼び出す#executePromptツール(設定github.copilot.chat.executePrompt.enabledを有効にする)を利用することになる。具体的に試してみたい場合は、VS Codeのリポジトリのtest/mcpフォルダにサーバーと簡易プロンプトファイルがあるので、Contribution Guidelinesに従ってCode OSSをローカルで起動し、エージェントモードで付属のプロンプトを/playwright <質問>の形式で呼び出すかたちになる。今後より改善される予定。


ほかにも様々な機能の改善がおこなわれている。詳細は公式サイトを参照のこと。

おすすめ記事

記事・ニュース一覧