VS Codeのエージェントモードを拡張するには、を試してください!

2025年3月 (バージョン 1.99)

Update 1.99.1: このアップデートは、これらのセキュリティ問題に対処します。

Update 1.99.2: このアップデートは、これらの問題に対処します。

Update 1.99.3: このアップデートは、これらの問題に対処します。

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025年3月リリースへようこそ。このバージョンには、皆さまに気に入っていただけることを願う多くのアップデートが含まれており、主なハイライトは以下の通りです。

  • エージェントモード

    • エージェントモードがVS Code Stableで利用可能になりました。chat.agent.enabledを設定することで有効にできます (詳細...)。
    • Model Context Protocol (MCP) サーバーツールでエージェントモードを拡張します (詳細...)。
    • エージェントモードで、ウェブコンテンツの取得、シンボル参照の検索、ディープシンキングのための新しい組み込みツールを試してみてください (詳細...)。
  • コード編集

    • 次回の編集候補 (Next Edit Suggestions) が一般提供開始になりました (詳細...)。
    • エディターでAI編集が適用されている間、診断イベントなどの邪魔が減ります (詳細...)。
  • チャット

    • チャットで独自のAPIキーを使用して、より多くの言語モデルにアクセスできます (プレビュー) (詳細...)。
    • 統合されたチャットエクスペリエンスから、質問、編集、エージェントモードに簡単に切り替えられます (詳細...)。
    • インスタントリモートワークスペースインデックス作成により、ワークスペース検索の速度と精度が向上します (詳細...)。
  • ノートブック編集

    • 編集モードとエージェントモードのサポートにより、コードファイルと同じくらい簡単にノートブックを作成・編集できます (詳細...)。

これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comUpdates にアクセスしてください。 Insiders: 新しい機能をいち早く試したいですか? nightly Insiders ビルドをダウンロードして、利用可能になり次第最新のアップデートを試すことができます。

チャット

エージェントモードがVS Code Stableで利用可能

設定: chat.agent.enabled

VS Code Stableでエージェントモードが利用可能になったことを発表でき、嬉しく思います! chat.agent.enabledを設定することで有効にできます。設定が表示されない場合は、VS Codeをリロードしてください。数週間のうちにすべてのユーザーに対してデフォルトで有効化が展開されるため、今後この設定を有効にする必要はなくなります。

エージェントモードのドキュメントを確認するか、チャットビューのチャットモードピッカーからエージェントモードを選択してください。

Screenshot that shows the Chat view, highlighting agent mode selected in the chat mode picker.

Model Context Protocol サーバーのサポート

このリリースでは、エージェントモードでのModel Context Protocol (MCP) サーバーをサポートします。MCPは、AIモデルが外部ツール、アプリケーション、データソースを発見し、対話するための標準化された方法を提供します。VS Codeでエージェントモードを使用してチャットプロンプトを入力すると、モデルはファイル操作、データベースへのアクセス、ウェブデータの取得などのタスクを実行するために様々なツールを呼び出すことができます。この統合により、より動的でコンテキストを認識したコーディング支援が可能になります。

MCPサーバーは、ユーザー、リモート、または.code-workspace設定のmcpセクション、あるいはワークスペースの.vscode/mcp.jsonで設定できます。この設定は、シークレットや定数をハードコードするのを避けるための入力変数をサポートしています。たとえば、${env:API_KEY}を使用して環境変数を参照したり、サーバーが起動するときに${input:ENDPOINT}で値を要求したりできます。

MCP: Add Server コマンドを使用して、コマンドラインからの呼び出しでMCPサーバーを迅速にセットアップしたり、Docker、npm、PyPIに公開されたMCPサーバーからのAIアシストによるセットアップを利用したりできます。

新しいMCPサーバーが追加されると、チャットビューに更新アクションが表示され、これを使用してサーバーを起動し、ツールを発見できます。その後、リソースを節約するためにサーバーはオンデマンドで起動されます。

テーマ: Codesong (vscode.devでプレビュー)

Claude Desktopのような他のアプリケーションで既にMCPサーバーを使用している場合、VS Codeはそれらを発見し、実行を提案します。この動作は、chat.mcp.discovery.enabled設定で切り替えることができます。

MCP: List Servers コマンドを使用してMCPサーバーのリストと現在のステータスを確認し、エージェントモードのSelect Toolsボタンを使用してチャットで利用可能なツールを選択できます。

MCPサーバーのインストールと使用方法については、こちらのドキュメントで詳しく読むことができます。

エージェントモードツール

このマイルストーンでは、エージェントモードにいくつかの新しい組み込みツールを追加しました。

思考ツール (実験的)

設定: github.copilot.chat.agent.thinkingTool

Anthropicの研究に触発され、エージェントモードに思考ツールをサポートしました。これは、ツール呼び出しの間に任意のモデルが思考する機会を与えるために使用できます。これにより、製品内の複雑なタスクやSWE-bench評価におけるエージェントのパフォーマンスが向上します。

フェッチツール

プロンプトに公開されているウェブページからのコンテンツを含めるには、#fetch ツールを使用します。たとえば、MCPのようなトピックに関する最新のドキュメントを含めたい場合、完全なドキュメント (LLMが消費するのに都合が良い形式で準備されています) をフェッチするように要求し、それをプロンプトで使用できます。これがどのように見えるかのビデオを以下に示します

エージェントモードでは、このツールは自動的に検出されますが、他のモードでは、フェッチしたいURLとともに#fetchを介して明示的に参照することもできます。

このツールは、ヘッドレスブラウザウィンドウでウェブページをレンダリングし、そのページのデータがローカルにキャッシュされることで機能します。そのため、再レンダリングのオーバーヘッドなしに、モデルにコンテンツを何度も自由にフェッチするように要求できます。

#fetch ツールの使用方法や、どのような機能が欲しいかをお知らせください!

フェッチツールの制限事項

  • 現在、このブラウザウィンドウではJavaScriptが無効になっています。ウェブサイトがコンテンツのレンダリングに完全にJavaScriptに依存している場合、このツールは多くのコンテキストを取得できません。これは変更を検討しており、JavaScriptを許可するように変更される可能性が高い制限事項です。
  • ヘッドレスの性質上、このヘッドレスブラウザはご使用のブラウザとは異なるブラウザコンテキストに存在するため、認証の背後にあるページをフェッチすることはできません。代わりに、そのターゲット用に特別に構築されたMCPサーバー、またはPlaywright MCPサーバーのような汎用ブラウザMCPサーバーを導入するためにMCPの使用を検討してください。

使用箇所ツール

#usages ツールは、「すべての参照を検索 (Find All References)」、「実装を検索 (Find Implementation)」、「定義へ移動 (Go to Definition)」の組み合わせです。このツールは、関数、クラス、インターフェースについてチャットがより詳しく学ぶのに役立ちます。たとえば、チャットはこのツールを使用して、インターフェースのサンプル実装を探したり、リファクタリングを行う際に変更する必要があるすべての場所を見つけたりすることができます。

エージェントモードでは、このツールは自動的に検出されますが、#usagesを介して明示的に参照することもできます。

エージェントモードで新しいワークスペースを作成 (実験的)

設定: github.copilot.chat.newWorkspaceCreation.enabled

エージェントモードで新しいVS Codeワークスペースを足場組み (scaffold) できるようになりました。VS Code拡張機能、MCPサーバー、その他の開発環境をセットアップする場合でも、エージェントモードは、必要な依存関係と設定を使用してこれらのプロジェクトを初期化、構成、起動するのに役立ちます。

エージェントモードにおけるVS Code拡張機能ツール

数ヶ月前、VS Code拡張機能によって提供される言語モデルツールの拡張機能APIを完成させました。これで、エージェントモードでこれらのツールを使用できます。

このAPIに提供され、設定でtoolReferenceNamecanBeReferencedInPromptを設定するツールは、エージェントモードで自動的に利用可能になります。

拡張機能でツールを提供することで、完全なVS Code拡張機能APIにアクセスでき、拡張機能マーケットプレイスから簡単にインストールできます。

MCPサーバーからのツールと同様に、エージェントモードのSelect Toolsボタンでこれらを有効/無効にできます。独自のツールを構築するには、言語モデルツール拡張ガイドを参照してください。

エージェントモードツールの承認

ユーザープロンプトのタスクを完了する一環として、エージェントモードはツールとターミナルコマンドを実行できます。これは強力ですが、潜在的なリスクも伴います。したがって、エージェントモードでツールとターミナルコマンドを使用するには、承認が必要です。

このエクスペリエンスを最適化するために、セッション、ワークスペース、またはアプリケーションレベルで承認を記憶できるようになりました。これは現在ターミナルツールでは有効になっていませんが、今後のリリースでターミナル用の承認システムを開発する予定です。

Screenshot that shows the agent mode tool Continue button dropdown options for remembering approval.

すべてのツールを自動承認したい場合は、実験的なchat.tools.autoApprove設定を使用できます。これによりすべてのツールが自動承認され、言語モデルがツールを実行したい場合にVS Codeは確認を求めません。この設定を有効にすると、モデルが実行しようとする潜在的に破壊的なアクションをキャンセルする機会がなくなることに注意してください。

将来的には、この設定をより詳細な機能で拡張する予定です。

SWE-benchにおけるエージェント評価

VS Codeのエージェントは、Anthropicの研究 (SWE-bench環境でユーザー入力なしでエージェントを実行するように構成する) に従い、Claude 3.7 Sonnetを使用してswebench-verifiedで56.0%の合格率を達成しました。我々の実験は、エージェントモードのプロンプト、ツール説明、ツールデザインの改善、およびClaude 3.5および3.7 Sonnetモデルでディストリビューション内のファイル編集のための新しいツールとして実現しました。

統合チャットビュー

ここ数ヶ月間、言語モデルに質問するための「チャット」ビューと、AIを活用したコード編集セッションのための「Copilot Edits」ビューがありました。今月、この2つのビューを1つのチャットビューに統合することで、チャットベースのエクスペリエンスを合理化することを目指します。チャットビューには、3つのモードを持つドロップダウンが表示されます。

Screenshot that shows the chat mode picker in the Chat view.

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

: このリストにエージェントモードが表示されない場合、それはまだあなたのために有効になっていないか、組織ポリシーによって無効にされており、組織のオーナーによって有効にされる必要があります。

チャットエクスペリエンスを簡素化するだけでなく、この統合により、AIを活用したコード編集にいくつかの新機能が追加されます。

  • 会話の途中でモードを切り替える: たとえば、質問モードでアプリのアイデアをブレインストーミングし、その後エージェントモードに切り替えて計画を実行することができます。ヒント: ⌘. (Windows、Linux の場合は Ctrl+.) を押すと、モードを素早く切り替えられます。
  • 履歴での編集セッション: Show Chats コマンド (チャットビューの上部にある時計アイコン) を使用して、過去の編集セッションを復元し、作業を続行できます。
  • チャットをエディターまたはウィンドウに移動する: Open Chat in New Editor/New Window を選択すると、サイドバーからチャットの会話を新しいエディタータブまたは別のVS Codeウィンドウにポップアウトできます。チャットは以前からこれをサポートしていましたが、これで編集/エージェントセッションをエディターペインまたは別のウィンドウから実行することもできます。
  • 複数のエージェントセッション: 上記の点に続き、これは同時に複数のエージェントセッションを実行できることを意味します。エージェントモードで機能を実装するためのチャットを1つ持ち、別の独立したセッションで調査を行い、他のツールを使用したいと思うかもしれません。2つのエージェントセッションに同時にファイルを編集させることは推奨されません。混乱を招く可能性があります。

Bring Your Own Key (BYOK) (プレビュー)

Copilot ProおよびCopilot Freeのユーザーは、Azure、Anthropic、Gemini、Open AI、Ollama、Open Routerなどの人気プロバイダー向けに独自のAPIキーを持参できるようになりました。これにより、Copilotによってネイティブにサポートされていない新しいモデルを、リリースされたその日から使用できます。

試すには、モデルピッカーからManage Models...を選択してください。Copilot BusinessおよびEnterpriseのお客様へのサポートを積極的に検討しており、今後のリリースで最新情報をお届けします。この機能の詳細については、ドキュメントをご覧ください。

A screenshot of a "Manage Models - Preview" dropdown menu in a user interface. The dropdown has the label "Select a provider" at the top, with a list of options below it. The options include "Anthropic" (highlighted in blue), "Azure," "Gemini," "OpenAI," "Ollama," and "OpenRouter." A gear icon is displayed next to the "Anthropic" option.

再利用可能なプロンプトファイル

設定の改善

設定: chat.promptFilesLocations

chat.promptFilesLocations設定は、ファイルパスでglobパターンをサポートするようになりました。たとえば、現在開いているワークスペース内のすべての.prompt.mdファイルを含めるには、パスを{ "**": true }に設定できます。

さらに、この設定は、適用されるファイルシステム上での大文字小文字の区別を尊重するようになり、ホストオペレーティングシステムの動作に合わせられました。

プロンプトファイルの編集改善

  • あなたの.prompt.mdファイルは、ファイルシステムパスの基本的なオートコンプリートを提供し、有効なファイル参照を強調表示するようになりました。一方、壊れたリンクは警告またはエラーの波線として表示され、詳細な診断情報を提供します。
  • Chat: Use Prompt コマンド内のプロンプトファイルリストで、編集および削除アクションを使用してプロンプトを管理できるようになりました。
  • プロンプトファイル内のフォルダ参照は、もはや無効としてフラグ付けされません。
  • Markdownコメントが適切に処理されるようになり、たとえば、LLMモデルに送信される最終プロンプトを生成する際に、コメントアウトされたすべてのリンクは無視されます。

カスタム指示との整合性

.github/copilot-instructions.mdファイルは、ネストされたリンク解決と強化された言語機能をサポートし、他の再利用可能な.prompt.mdファイルと同様に動作するようになりました。さらに、任意の.prompt.mdファイルを参照でき、適切に処理されます。

カスタム指示について詳しくはこちらをご覧ください。

ユーザープロンプト

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

ビジョンサポートの改善 (プレビュー)

前回のイテレーションで、Copilot VisionがGPT-4o向けに有効になりました。チャットで画像を添付して使用する方法の詳細については、リリースノートを確認してください。

このリリースでは、任意のブラウザから画像をドラッグ&ドロップで添付できるようになりました。ブラウザからドラッグ&ドロップされた画像は、.jpg.png.gif.webp、または.bmpの正しいURL拡張子を持っている必要があります。

エディターの構成

統合チャットエクスペリエンス

VS Codeのチャットエクスペリエンスを、単一の統合されたチャットビューに合理化しました。別々のビュー間を移動して会話のコンテキストを失うことなく、異なるチャットモード間を簡単に切り替えられるようになりました。

Screenshot that shows the chat mode picker in the Chat view.

シナリオに応じて、以下のいずれかのモードを使用し、会話の途中でも自由に切り替えることができます。

  • 質問モード: コードベースに関する質問やアイデアのブレインストーミングに最適化されています。
  • 編集モード: コードベース内の複数のファイルにわたる編集を行うのに最適化されています。
  • エージェントモード: コード編集とツール呼び出しを組み合わせた自律的なコーディングフローに最適化されています。

統合チャットビューの詳細についてはこちらをご覧ください。

インスタントインデックス作成によるワークスペース検索の高速化

リモートワークスペースインデックスは、AIが質問に答えたり編集を生成したりする際に使用する関連性の高いコードスニペットを、大規模なコードベースで検索するのを高速化します。これらのリモートインデックスは、数万、あるいは数十万のファイルを持つ大規模なコードベースにとって特に有用です。

以前は、リモートワークスペースインデックスを構築して使用を開始するには、ボタンを押すかコマンドを実行する必要がありました。新しいインスタントインデックス作成のサポートにより、#codebase/@workspaceの質問を初めて試すときに、リモートワークスペースインデックスを自動的に構築するようになりました。ほとんどの場合、このリモートインデックスは数秒で構築できます。一度構築されると、VS Codeでそのリポジトリを使用するあなたや他の誰かが行うすべてのコードベース検索で、自動的にリモートインデックスが使用されます。

リモートワークスペースインデックスは、現在GitHubに保存されているコードでのみ利用可能であることに注意してください。リモートワークスペースインデックスを使用するには、ワークスペースにGitHubリモートを持つgitプロジェクトが含まれていることを確認してください。Copilotステータスメニューを使用して、現在使用されているインデックスの種類を確認できます。

Screenshot that shows the workspace index status in the Copilot Status Bar menu.

負荷を管理するため、今後数週間にわたってインスタントインデックス作成を徐々に展開しているため、すぐに表示されない場合があります。インスタントインデックス作成がまだ有効になっていない場合でも、GitHub Copilot: Build remote index commandコマンドを実行してリモートインデックスの使用を開始できます。

Copilotステータスメニュー

ステータスバーからアクセスできるCopilotステータスメニューが、すべてのユーザーに対して有効になりました。このマイルストーンでは、いくつかの新機能を追加しました。

  • いつでもワークスペースインデックスのステータス情報を確認できます。

    Screenshot that shows the workspace index status of a workspace in the Copilot menu.

  • アクティブなエディターでコード補完が有効になっているかを確認します。

    新しいアイコンがステータスを反映し、コード補完が有効かどうかが一目でわかるようになりました。

    Screenshot that shows the Copilot status icon when completions is disabled.

  • コード補完とNESを有効または無効にします。

すぐに使えるCopilotセットアップ (実験的)

設定: chat.setupFromDialog

すぐに使える機能的なチャット体験を表示する実験的な機能をリリースしています。これには、チャットビュー、エディター/ターミナルインラインチャット、クイックチャットが含まれます。初めてチャットリクエストを送信する際に、サインインとCopilot Freeへのサインアップをガイドします。

この体験を自分で試したい場合は、chat.setupFromDialog設定を有効にしてください。

チャットのプレリリースチャネルの不一致

VS Code StableにCopilot Chat拡張機能のプレリリース版がインストールされている場合、新しいウェルカム画面でこの構成はサポートされていないことが通知されます。チャット機能の急速な開発のため、この拡張機能はVS Code Stableではアクティブ化されません。

ウェルカム画面には、拡張機能のリリースバージョンに切り替えるか、VS Code Insidersをダウンロードするかのオプションが提供されます。

Screenshot that shows the welcome view of chat, indicating that the pre-release version of the extension is not supported in VS Code stable. A button is shown to switch to the release version, and a secondary link is shown to switch to VS Code Insiders.

セマンティックテキスト検索の改善 (実験的)

設定: github.copilot.chat.search.semanticTextResults

AIを活用したセマンティックテキスト検索が、検索ビューでデフォルトで有効になりました。⌘I (Windows、Linux の場合は Ctrl+I) のキーボードショートカットを使用してセマンティック検索をトリガーすると、通常の検索結果に加えて、クエリに基づいて最も関連性の高い結果が表示されます。

#searchResults ツールを使用することで、チャットプロンプトでセマンティック検索結果を参照することもできます。これにより、LLMに結果を要約または説明するよう依頼したり、それに基づいてコードを生成したりすることができます。

設定エディター検索の更新

デフォルトでは、設定エディターの検索は前回のリリースで導入されたキーマッチングアルゴリズムを使用するようになりました。また、設定IDが既知の設定と完全に一致する場合でも、追加の設定が表示されます。

テーマ: Light Pink (vscode.devでプレビュー)

ウィンドウコントロールの新しい設定 (Linux, Windows)

設定: window.controlsStyle

タイトルバースタイル (window.titleBarStyle) をcustomに設定している場合、ウィンドウコントロールの3つの異なるスタイルから選択できるようになりました。

  • native: これはデフォルトであり、基盤となるプラットフォームに従ってウィンドウコントロールをレンダリングします。
  • custom: ネイティブスタイルよりもカスタムスタイルを好む場合に、カスタムスタイリングでウィンドウコントロールをレンダリングします。
  • hidden: タイトルバーのスペースを増やしたい場合や、よりキーボード中心のユーザーである場合に、ウィンドウコントロールを完全に非表示にします。

コード編集

次回の編集候補 (Next Edit Suggestions) の一般提供開始

設定: github.copilot.nextEditSuggestions.enabled

次回の編集候補 (Next Edit Suggestions, NES) が一般提供開始になったことを発表でき、嬉しく思います!さらに、NESの全体的なユーザーエクスペリエンスにいくつかの改善を加えました。

  • 編集候補をよりコンパクトにし、周囲のコードへの干渉を少なくし、一目で読みやすくします。
  • すべての候補がより簡単に気づかれるように、ガターインジケーターを更新しました。

AI編集の改善

AIで編集を生成する際に、いくつかの小さな調整を行いました。

  • AI編集でファイルを書き換える際、エディター外の診断イベントをミュートします。以前は、このシナリオで波線は既に無効にしていました。これらの変更により、Problemsパネルでのちらつきが減り、クイックフィックスのコードアクションのリクエストを発行しないようになります。

  • AI編集を保持することを決定した場合、ファイルを明示的に保存するようになりました。

ツールベースの編集モード

設定: chat.edits2.enabled

チャットの編集モードの動作方法を変更しています。新しい編集モードは、エージェントモードと同じアプローチを使用しており、モデルがツールを呼び出してファイルを編集できるようにします。この整合性の利点は、3つのモードすべてをシームレスに切り替えられるようになる一方で、これらのモードが内部でどのように機能するかを大幅に簡素化できる点です。

欠点としては、この新しいモードはエージェントモードで動作するのと同じ限定されたモデルセット、つまりツール呼び出しをサポートし、ツールが関与した場合に良い体験ができることを確認するためにテストされたモデルでのみ機能します。編集モードのリストからo3-miniClaude 3.7 (Thinking)のようなモデルが欠落していることに気づくかもしれません。これらのモデルを編集に使い続けたい場合は、chat.edits2.enabled設定を無効にして、以前の編集モードに戻してください。モードを切り替える際に、セッションをクリアするよう求められます。

ツールを使用する場合、異なるモデル間で一貫した結果を得るためのプロンプト作成が難しいことがわかりましたが、これらのモデルを編集モード (およびエージェントモード) で使用できるように取り組んでいます。

この設定は、VS Code Stableのユーザーに対して段階的に有効になります。

インライン候補の構文ハイライト

設定: editor.inlineSuggest.syntaxHighlightingEnabled

このアップデートにより、インライン候補の構文ハイライトがデフォルトで有効になりました。以下のスクリーンショットで、コード候補に構文の色付けが適用されていることに注目してください。

Screenshot of the editor, showing that syntax highlighting is enabled for ghost text.

構文ハイライトなしのインライン候補を希望する場合は、editor.inlineSuggest.syntaxHighlightingEnabledで無効にすることができます。

Screenshot of the editor showing that highlighting for ghost text is turned off.

Tree-Sitterベースの構文ハイライト (プレビュー)

設定: editor.experimental.preferTreeSitter.css および editor.experimental.preferTreeSitter.regex

構文ハイライトにTree-Sitterを使用する以前の作業に基づいて、CSSファイルとTypeScript内の正規表現に対して、実験的なTree-Sitterベースの構文ハイライトをサポートするようになりました。

ノートブック

Jupyterノートブックドキュメントの最小バージョンが4.5に

新しいノートブックのnbformatのデフォルトバージョンが4.2から4.5に引き上げられ、ノートブックの各セルにidフィールドが設定されるようになり、差分計算に役立ちます。既存のノートブックも、ノートブックの生JSONでnbformat_minor5に設定することで手動で更新できます。

AIノートブック編集の改善

ノートブックのAIを活用した編集サポート (エージェントモードを含む) がStableリリースで利用可能になりました。これは先月、VS Code Insidersのプレビュー機能として追加されました。

チャットを使用してノートブックファイルをコードファイルの編集と同じくらい直感的な体験で編集できるようになりました: 複数のセルにわたるコンテンツの変更、セルの挿入と削除、セルタイプの変更が可能です。この機能は、データサイエンスやドキュメントノートブックを扱う際にシームレスなワークフローを提供します。

新しいノートブックツール

VS Codeは、チャットから直接新しいJupyterノートブックを作成するための専用ツールを提供するようになりました。このツールは、あなたのクエリに基づいて新しいノートブックを計画し、作成します。

新しいノートブックツールをエージェントモードまたは編集モードで使用します (改良された編集モードがchat.edits2.enabledで有効になっていることを確認してください)。質問モードを使用している場合は、チャットプロンプトに/newNotebookと入力して新しいノートブックを作成します。

AI編集のナビゲート

差分ツールバーを使用して、セル間の各AI編集を順に確認およびレビューします。

AI編集の取り消し

セルコンテナにフォーカスがある場合、元に戻す (Undo) コマンドはノートブックレベルでのAI変更の完全なセットを元に戻します。

チャットでのテキストおよび画像出力のサポート

ノートブックセルの出力 (テキスト、エラー、画像など) を、コンテキストとして直接チャットに追加できるようになりました。これにより、質問、編集、またはエージェントモードを使用する際にその出力を参照でき、言語モデルがノートブックの内容を理解し、支援しやすくなります。

3点メニューまたは出力を右クリックすることで利用できるAdd cell output to chatアクションを使用します。

セルのエラー出力をチャットコンテキストとして添付するには

セルの出力画像をチャットコンテキストとして添付するには

アクセシビリティ

チャットエージェントモードの改善

「ターミナルでコマンドを実行」のようなツール呼び出し中に手動での操作が必要な場合、通知されるようになりました。この情報は関連するチャット応答のARIAラベルにも含まれており、スクリーンリーダーユーザーのアクセシビリティを向上させます。

さらに、エージェントモードで新しいアクセシビリティヘルプダイアログが利用可能になり、ユーザーがこの機能から何を期待できるか、そしてそれを効果的にナビゲートする方法が説明されています。

チャット編集アクションのアクセシビリティシグナル

AIによって生成された編集を保持または元に戻す際に、VS Codeは聴覚信号を提供するようになりました。これらの信号は、accessibility.signals.editsKept および accessibility.signals.editsUndone で設定可能です。

提案コントロールのARIAラベルの改善

提案コントロール項目のARIAラベルには、提案の種類 (たとえば、メソッドや変数) など、より豊富で記述的な情報が含まれるようになりました。この情報は以前はアイコンを介して視覚ユーザーにのみ利用可能でした。

ソース管理

参照ピッカーの改善

設定: git.showReferenceDetails

このマイルストーンでは、チェックアウト、マージ、リベース、ブランチ削除など、様々なソース管理操作で使用される参照ピッカーを改善しました。更新された参照ピッカーには、最後のコミットの詳細 (作成者、コミットメッセージ、コミット日) と、ローカルブランチの進捗/遅延情報が含まれています。この追加のコンテキストは、様々な操作に適した参照を選択するのに役立ちます。

git.showReferenceDetails設定を切り替えることで、追加情報を非表示にできます。

Screenshot of the source control references picker showing a list of git branches with details of the last commit, and ahead/behind information.

リポジトリステータスバーアイテム

複数のリポジトリを含むワークスペースには、ブランチピッカーの左側にアクティブなリポジトリを表示するソース管理プロバイダーステータスバーアイテムが追加されました。新しいステータスバーアイテムは追加のコンテキストを提供するため、エディター間を移動したり、ソース管理ビューを使用したりする際に、どのアクティブなリポジトリであるかを把握できます。

ソース管理プロバイダーステータスバーアイテムを非表示にするには、ステータスバーを右クリックし、コンテキストメニューからSource Control Providerの選択を解除します。

Screenshot showing the repository status bar item for workspaces that contain more than one repository.

Git blameエディターデコレーションの改善

タイピング中に「まだコミットされていません (Not Yet Committed)」のエディターデコレーションがあまり価値がなく、むしろ気が散るというフィードバックをいただきました。このマイルストーンから、「まだコミットされていません」のエディターデコレーションは、キーボードまたはマウスを使用してコードベースをナビゲートしている間のみ表示されるようになりました。

コミット入力カーソルのカスタマイズ

このマイルストーンでは、コミュニティの貢献により、ソース管理入力ボックスで尊重される設定のリストにeditor.cursorStyle および editor.cursorWidth 設定を追加しました。

ターミナル

エージェントモードの信頼性

エージェントモードでターミナルコマンドを実行できるツールに、多くの信頼性と互換性の改善が施されました。ツールが停止したり、コマンドが完了しても出力が表示されないケースが減るはずです。

より大きな変更点の1つは、「basic」や「none」とは対照的に、「rich」品質のシェル統合という概念の導入です。VS Codeに同梱されているシェル統合スクリプトは、一般的にすべてリッチシェル統合を有効にするべきであり、これによりターミナル実行ツール (および一般的なターミナル使用) で最高の体験が提供されます。シェル統合の品質は、ターミナルタブにカーソルを合わせることで確認できます。

ターミナルIntelliSenseの改善 (プレビュー)

code CLI の IntelliSense の強化

IntelliSenseは、codecode-insiderscode-tunnel CLIのサブコマンドをサポートするようになりました。たとえば、code tunnelと入力すると、helpkillpruneなどの利用可能なサブコマンドが表示され、それぞれに説明情報が付いています。

Screenshot of the terminal window, showing code tunnel has been typed. The suggest widget shows subcommands like help, kill, prune, and others, with descriptions for each command.

また、以下のオプションの候補も追加しました。

  • --uninstall-extension
  • --disable-extension
  • --install-extension

これらは、コマンドを完了するのに役立つインストール済みの拡張機能のリストを表示します。

Screenshot of the VSCode terminal with code --uninstall-extension. A list of available extensions is displayed, including vscode-eslint and editorconfig.

さらに、code --locate-shell-integration-pathは、bashzshfishpwshなどのシェル固有のオプションを提供するようになりました。

Screenshot of the VSCode terminal showing a command input: code --locate-shell-integration-path with a dropdown menu listing shell options bash, fish, pwsh, and zsh.

グローバルコマンドの自動更新

システムbinディレクトリで変更が検出されると、ターミナルはグローバルコマンドのリストを自動的に更新するようになりました。これにより、新しくインストールされたCLIツール (たとえば、npm install -g pnpmを実行した後など) は、ウィンドウをリロードする必要なく、すぐに補完に表示されます。

以前は、新しいツールの補完は、ウィンドウを手動でリロードするまでキャッシュのために表示されませんでした。

オプション値のコンテキスト

ターミナルの候補が、予期されるオプション値に関するコンテキスト情報を表示するようになり、コマンドの補完がより簡単になりました。

Screenshot of the terminal showing a command in progress: npm install --omit. The terminal suggest widget displays  to indicate that's the option that's expected.

fishシェル向けリッチ補完

前回のリリースでは、bashとzshの詳細なコマンド補完を追加しました。今回のイテレーションでは、fishにもそのサポートを拡大しました。補完の詳細は、シェルのドキュメントまたは組み込みのヘルプコマンドから取得されます。

たとえば、fishでjobsと入力すると、使用法情報とオプションが表示されます。

Screenshot of the Visual Studio Code Terminal with a fish terminal showing a user has typed jobs. The suggest widget shown provides information about the jobs command with detailed usage examples and options.

候補内のファイルタイプアイコン

ターミナルでの候補に、異なるファイルタイプごとの特定のアイコンが含まれるようになり、スクリプトとバイナリを一目で区別しやすくなりました。

Screenshot of the terminal, showing suggestions for various script files, including code.sh, code-cli.sh, and code-server.js. Icons indicate the specific file type.

インライン候補の詳細

ターミナルにゴーストテキストとして表示されるインライン候補は、引き続き候補リストの最上位に表示されます。このリリースでは、これらのエントリにコマンドの詳細を追加し、それらを受け入れる前にさらなるコンテキストを提供します。

Screenshot of the terminal, showing the Block command as ghost text in the terminal. The first suggestion is block and it contains usage information.

新しいシンプルで詳細なタブホバー

デフォルトでは、ターミナルタブは現在、はるかに少ない詳細を表示します。

Screenshot of the simple hover showing the terminal name, PID, command line, shell integration quality and actions

すべてを表示するには、ホバーの下部にある詳細を表示 (Show Details) ボタンがあります。

Screenshot of the detailed hover showing extensions that contribute to the environment and detailed shell integration diagnostics

署名付きPowerShellシェル統合

シェル統合のPowerShellスクリプトが署名されるようになり、WindowsでデフォルトのPowerShell実行ポリシーRemoteSignedを使用している場合、シェル統合が自動的に機能するはずです。シェル統合の利点はこちらで詳しく読むことができます。

ターミナルシェルタイプ

今回のイテレーションで、ターミナルシェルAPIを完成させ、拡張機能がユーザーの現在のシェルタイプをターミナルで確認できるようになりました。onDidChangeTerminalStateイベントを購読することで、ターミナルでのユーザーのシェルタイプの変更を確認できます。たとえば、シェルがzshからbashに変わる場合などです。

識別可能なすべてのシェルの一覧は、現在こちらにリストされています。

リモート開発

Linuxレガシーサーバーのサポート終了

リリース1.99以降、これらのサーバーに接続できなくなります。1.97リリースで述べたように、サポートされているLinuxディストリビューションへの移行を完了するために追加の時間が必要なユーザーは、回避策としてglibclibstdc++のカスタムビルドを提供できます。この回避策の詳細については、FAQセクションをご覧ください。

Enterprise

macOSデバイス管理

VS Codeは、Windowsに加えてmacOSでもデバイス管理をサポートするようになりました。これにより、システム管理者はMicrosoft Intuneのような集中管理システムからポリシーをプッシュできます。

詳細については、エンタープライズサポートのドキュメントを参照してください。

拡張機能への貢献

Python

Pylanceにおける編集可能なインストールへのより良いサポート

Pylanceは、PEP 660で定義されている編集可能モード (pip install -e .) でインストールされたパッケージのインポートパス解決をサポートするようになり、これによりこれらのシナリオでのIntelliSense体験が向上します。

この機能はpython.analysis.enableEditableInstallsで有効になり、今月中にはデフォルトのエクスペリエンスとして展開を開始する予定です。何か問題が発生した場合は、Pylance GitHubリポジトリにご報告ください。

Pylanceによるより高速で信頼性の高い診断体験 (実験的)

Pylanceの診断の精度と応答性を向上させる変更の展開を開始しています。これは、複数のファイルが開いている場合や最近閉じられたファイルがあるシナリオで特に役立ちます。

展開を待たない場合は、python.analysis.usePullDiagnosticsを設定できます。何か問題が発生した場合は、Pylance GitHubリポジトリにご報告ください。

PylanceのカスタムNode.js引数

新しいpython.analysis.nodeArguments設定が追加され、python.analysis.nodeExecutableを使用する際に、カスタム引数を直接Node.jsに渡すことができます。デフォルトでは"--max-old-space-size=8192"に設定されていますが、ニーズに合わせて変更できます (たとえば、大規模なワークスペースで作業する際にNode.jsにより多くのメモリを割り当てるなど)。

さらに、python.analysis.nodeExecutableautoに設定すると、Pylanceは自動的にNode.jsをダウンロードするようになりました。

拡張機能作成

Terminal.shellIntegration の微調整

Terminal.shellIntegration APIは、コマンド検出が行われた場合にのみ有効になるようになりました。以前は、現在の作業ディレクトリのみが報告された場合でも機能するはずでしたが、これによりTerminalShellIntegration.executeCommandがうまく機能しない原因となっていました。

さらに、TerminalShellIntegration.executeCommandは、より一貫性のある動作をするようになり、複数のコマンドを実行する単一のコマンドラインに対する複数の「サブ実行」を追跡するようになります。これは、エージェントモードの信頼性セクションで述べられているように、リッチシェル統合に依存します。

提案されたAPI

タスク問題マッチャーのステータス

拡張機能がタスクの問題マッチャーがラインの処理を開始および終了するタイミングを監視できるよう、提案されたAPIを追加しました。taskProblemMatcherStatusで有効にできます。

LLMに画像を送信

今回のイテレーションで、拡張機能が画像を添付し、言語モデルにビジョンリクエストを送信できるよう、提案されたAPIを追加しました。添付ファイルは、画像生の、base64エンコードされていないバイナリデータ (Uint8Array) である必要があります。最大画像サイズは5MBです。

このAPIの使用例を確認し、APIのステータスに関する最新情報を得るには、このAPI提案イシューをご覧ください。

エンジニアリング

マーケットプレイスの新しい/latest APIを使用して拡張機能の更新を確認

数ヶ月前のマイルストーンで、vscode-unpkgサービスに拡張機能の更新を確認するための新しいAPIエンドポイントを導入しました。マーケットプレイスは現在同じエンドポイントをサポートしており、VS Codeはこのエンドポイントを使用して拡張機能の更新を確認しています。これは実験的な機能であり、段階的にユーザーに展開されます。

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-css-languageserviceへの貢献者

vscode-custom-dataへの貢献

vscode-extension-samplesへの貢献

vscode-extension-telemetryへの貢献

vscode-js-debugへの貢献者

vscode-mypyへの貢献

vscode-prompt-tsxへの貢献者

vscode-pull-request-githubへの貢献者

vscode-python-debuggerへの貢献者

vscode-testへの貢献

language-server-protocolへの貢献者

python-environment-toolsへの貢献