VS CodeにおけるAI言語モデル
Visual Studio Codeでは、タスクごとに最適化された複数の組み込み言語モデルにアクセスできます。チャット、インラインサジェスト、ユーティリティタスクのモデルを切り替えることができるほか、独自のAPIキーを持ち込むことで、より多くのモデルを追加できます。
言語モデルの仕組み、特性、および適切なモデルの選択方法についての背景知識は、「言語モデルのコンセプト」を参照してください。
チャット用のモデルを変更する
チャット入力フィールドにある言語モデルピッカーを使用して、チャットの会話やコード編集に使用するモデルを変更します。

モデルごとに得意分野が異なります。迅速な編集や単純な質問には高速なモデルを使用し、複雑なリファクタリングやアーキテクチャの決定、マルチステップのタスクには推論モデルを使用してください。使用しているエージェントの種類によって、利用可能なモデルのリストが異なる場合があります。
独自の言語モデルAPIキーを使用することで、利用可能なモデルのリストをさらに拡張できます。
Copilot BusinessまたはEnterpriseユーザーの場合、管理者がGitHub.comのCopilotポリシー設定で「Editor Preview Features」を有効にすることで、組織に対して特定のモデルを許可する必要があります。
思考の深さ(thinking effort)を設定する
一部のモデルは、各リクエストに対してモデルがどれだけ推論を行うかを制御する、設定可能な「思考の深さ(thinking effort)」をサポートしています。思考と推論の背景知識については、「思考と推論」を参照してください。
デフォルトでは、VS Codeは推奨されるレベルの思考レベルを設定し、適応型推論を有効にしています。これにより、モデルは各リクエストの複雑さに基づいて、思考量を動的に判断します。ほとんどのユースケースにおいて、デフォルトの設定で良好に動作します。
思考の深さを高めると、より多くの思考トークンが生成され、AIクレジットの消費量が増加します。真に複雑なタスクの場合にのみ、思考の深さを高めてください。AIクレジット使用量の最適化について詳しく学びましょう。
思考の深さを設定するには
-
チャット入力フィールドのモデルピッカーを開き、推論モデルを選択します。
-
モデル名の横に表示される「>」矢印を選択して、思考の深さ (Thinking Effort) サブメニューを開きます。
注意GPT-4.1やGPT-4oなどの非推論モデルでは、思考の深さのサブメニューは表示されません。
-
思考レベルを選択します。

モデルピッカーのラベルが更新され、選択した思考レベル(例:「Claude Sonnet 4.6 · High」)が表示されます。この思考レベルは、同じモデルを使用している間、会話をまたいで保持されます。
github.copilot.chat.anthropic.thinking.effort および github.copilot.chat.responsesApiReasoningEffort の設定は非推奨となりました。思考の深さは、言語モデルピッカーから直接設定してください。
自動モデル選択を使用する
自動モデル選択機能を使用すると、VS Codeはタスクの複雑さとリアルタイムのモデル可用性を評価し、各リクエストを最適なモデルにルーティングします。自動モデル選択の仕組みについては、「自動モデル選択」を参照してください。
自動モデル選択を使用するには、チャットのモデルピッカーから「Auto」を選択します。チャットの応答にカーソルを合わせると、応答の生成にどのモデルが使用されたかを確認できます。

言語モデルを管理する
言語モデルエディターを使用すると、利用可能なすべてのモデルを確認したり、モデルピッカーに表示するモデルを選択したり、組み込みプロバイダーや拡張機能プロバイダーからモデルを追加したりできます。
言語モデルエディターを開くには、チャットビューでモデルピッカーを開き、「言語モデルを管理 (Manage Language Models)」(歯車アイコン)を選択するか、コマンドパレットから「Chat: Manage Language Models」コマンドを実行します。言語モデルエディターは、デフォルトでエディター領域の上にモーダルオーバーレイとして開きます。

エディターには利用可能なすべてのモデルがリストアップされ、モデルの機能、コンテキストサイズ、課金詳細、可視性ステータスなどの主要な情報が表示されます。モデルはデフォルトでプロバイダーごとにグループ化されていますが、可視性ごとにグループ化することも可能です。
以下のオプションを使用してモデルを検索およびフィルタリングできます
- 検索ボックスによるテキスト検索
- プロバイダー:
@provider:"OpenAI" - 機能:
@capability:tools,@capability:vision,@capability:agent - 可視性:
@visible:true/false
モデルピッカーをカスタマイズする
言語モデルエディターでモデルの可視性ステータスを変更することで、モデルピッカーに表示されるモデルをカスタマイズできます。どのプロバイダーのモデルであっても、表示・非表示を切り替えられます。
リスト内のモデルにカーソルを合わせ、目のアイコンを選択してモデルピッカーでの表示・非表示を切り替えます。

お気に入りのモデルをピン留めする
モデルをピン留めすると、モデルピッカーの上部に固定できます。ピン留めされたモデルは専用の「Pinned」セクションに表示され、他のモデルを使用しても位置が変わりません。
モデルをピン留めまたは解除するには
-
チャット入力フィールドのモデルピッカーを開きます。
-
モデルにカーソルを合わせ、ピンアイコンを選択して「Pinned」セクションに追加します。
-
ピン留めを解除するには、「Pinned」セクションで対象のモデルにカーソルを合わせ、ピン解除アイコンを選択します。
独自の言語モデルキーを持ち込む
組み込みモデルとして提供されていないモデルを使用したい場合や、モデルのホスティングを制御したい場合は、独自の言語モデルAPIキー(BYOK)を持ち込み、他のプロバイダーのモデルを利用したり、モデルをローカルで実行したりできます。独自のキーを持ち込む理由や考慮事項については、「独自の言語モデルキーを持ち込む」を参照してください。
BYOKモデルは、GitHubアカウントへのログインやCopilotプランなしで動作します。サインインしていない状態でも、「Chat: Manage Language Models」コマンドを使用してモデルを追加できます。これにより、Ollamaなどのローカルモデルを使用した完全なオフライン環境を含む、完全に独自モデルでのAIチャット機能を利用可能になります。
セマンティック検索、インラインサジェスト(コード補完)、埋め込みを利用する機能など、一部の機能には引き続きGitHubアカウントが必要です。BYOKはチャットエクスペリエンスとユーティリティタスクのみに適用されます。
VS Codeには、言語モデルを追加するためのさまざまなオプションがあります
| オプション | 使用タイミング | 開始方法 |
|---|---|---|
| 組み込みプロバイダー | 必要なプロバイダーがすでにリストにある(Azure, Anthropic, Gemini, OpenAIなど) | 既知のプロバイダーのAPIキーを入力する |
| カスタムエンドポイント (Insiders版) | Chat Completions、Responses、またはMessages APIをサポートする独自のホスト、エンタープライズ、またはその他のエンドポイントがある | VS Codeを互換性のある任意のURLに向ける |
| 拡張機能 | マーケットプレース拡張機能がモデルを提供している(例:ローカルモデル用AI Toolkit) | 拡張機能をインストールし、そのセットアップに従う |
これらのモデルを使用して、VS Code内のユーティリティタスク(タイトル生成やインテント検出など)で使用されるモデルを上書きすることもできます。
Copilot BusinessまたはEnterpriseユーザーの場合、管理者がGitHub.comのCopilotポリシー設定で「Bring Your Own Language Model Key in VS Code」ポリシーを無効にできます。詳細については、GitHub Copilotのドキュメントを参照してください。
組み込みプロバイダーからモデルを追加する
VS Codeですぐに使用できる一般的なプロバイダーのセットから選択します。プロバイダーによっては、APIキーやエンドポイントURLなどの構成詳細が必要です。
組み込みプロバイダーから言語モデルを設定するには
-
言語モデルピッカーから「言語モデルを管理」(歯車アイコン)を選択するか、コマンドパレットから「Chat: Manage Language Models」コマンドを実行して、言語モデルエディターを開きます。
-
「Add Models」を選択し、リストからモデルプロバイダーを選択します。

-
モデルのグループ名を入力します。これは、モデルピッカーと言語モデルエディターで表示されるグループ化ラベルです。
グループ名は、必要に応じて後から言語モデルエディターで変更できます。
-
APIキーやエンドポイントURLなど、プロバイダー固有の詳細を入力します。
-
プロバイダーが追加の構成を必要とする場合、VS Codeはプロバイダーやモデルの詳細を設定できる
chatLanguageModels.jsonファイルを開きます。構成プロパティの詳細については、「モデル設定リファレンス」を参照してください。次の例は、Entra ID認証を使用するAzure OpenAIの構成を示しています
[ { "name": "Azure", "vendor": "azure", "models": [ { "id": "<my-deployment-name>", "name": "GPT-5.5", "url": "https://<my-endpoint>.openai.azure.com", "toolCalling": true, "vision": true, "maxInputTokens": 200000, "maxOutputTokens": 64000 } ] } ] -
モデルを設定したら、チャットのモデルピッカーから選択できるようになります。
チャットでエージェントを使用する際にモデルを利用可能にするには、ツール呼び出しをサポートしている必要があります。モデルがツール呼び出しをサポートしていない場合、モデルピッカーには表示されません。
カスタムエンドポイントモデルを追加する
これは廃止されたOpenAI互換プロバイダーに代わるもので、追加のAPIタイプをサポートします。 github.copilot.chat.customOAIModels 設定は非推奨です。
カスタムエンドポイントプロバイダーを使用すると、互換性のあるあらゆるAPIエンドポイントをVS Codeのチャットに接続できます。これは「Chat Completions」、「Responses」、「Messages」という3つのAPIタイプをサポートしており、モデルごとに選択可能です。
カスタムエンドポイントプロバイダーでモデルを追加するには
-
言語モデルピッカーから「言語モデルを管理」(歯車アイコン)を選択するか、コマンドパレットから「Chat: Manage Language Models」コマンドを実行して、言語モデルエディターを開きます。
-
「Add Models」を選択し、リストから「Custom Endpoint」を選択します。
-
モデルのグループ名を入力します。これは、モデルピッカーと言語モデルエディターで表示されるグループ化ラベルです。
グループ名は、必要に応じて後から言語モデルエディターで変更できます。
-
エンドポイントの表示名とAPIキーを入力します。
-
APIタイプ(Chat Completions、Responses、またはMessages)を選択します。モデルがそのAPIタイプをサポートしていることを確認してください。
-
VS Codeはモデルの詳細を設定できる
chatLanguageModels.jsonファイルを開きます。モデルのプロパティを更新してファイルを保存します。構成プロパティの詳細については、「モデル設定リファレンス」を参照してください。次の例は、Anthropicエンドポイント用のMessages API構成を示しています
[ { "name": "Anthropic", "vendor": "customendpoint", "apiKey": "YOUR_API_KEY", "apiType": "messages", "models": [ { "id": "claude-sonnet-4-6", "name": "Claude Sonnet 4.6", "url": "https://api.anthropic.com/v1/messages", "toolCalling": true, "vision": true, "maxInputTokens": 200000, "maxOutputTokens": 64000 } ] } ] -
モデルを設定したら、チャットのモデルピッカーから選択します。
ヒント追加したモデルがすぐにモデルピッカーに表示されない場合は、VS Codeを再起動してください。
モデルプロバイダーの拡張機能を追加する
Visual Studio Marketplaceから、VS Codeに言語モデルプロバイダーを追加する拡張機能をインストールできます。これらの拡張機能により、クラウドホスト型やローカルで実行される追加モデルへのアクセスが可能になります。例えば、Foundry Toolkit for VS Code拡張機能は、Foundryのローカルおよびクラウドホスト型モデルへのアクセスを提供します。
モデルプロバイダーの拡張機能を追加するには
-
拡張機能ビューを開き、
@tag:language-modelsを検索します。 -
「Install」を選択して拡張機能をインストールします(例:Foundry Toolkit for VS Code)。
-
拡張機能のセットアップ手順に従って、モデルへのアクセスを構成します。
-
拡張機能のモデルがチャットのモデルピッカーおよび言語モデルエディターに表示されます。表示されない場合は、VS Codeをリロードしてください。
モデルプロバイダーの詳細を更新する
以前に構成したモデルプロバイダーの詳細を更新するには
-
チャットビューのモデルピッカーから「言語モデルを管理」(歯車アイコン)を選択するか、コマンドパレットから「Chat: Manage Language Models」コマンドを実行します。
-
言語モデルエディターで、更新したいモデルプロバイダーの横にある歯車アイコンを選択します。

-
APIキーやエンドポイントURLなどのプロバイダー詳細を更新します。
その他の機能向けにモデルを設定する
メインのチャットモデルに加えて、インラインチャット、インラインサジェスト、バックグラウンドのユーティリティタスクに使用するモデルをそれぞれ設定できます。
インラインチャット用のモデルを変更する
エディターのインラインチャット用にデフォルトの言語モデルを設定できます。これにより、通常のチャット会話とは異なるモデルをインラインチャットで使用可能です。
インラインチャットのデフォルトモデルを設定するには、 inlineChat.defaultModel 設定を使用します。この設定には、モデルピッカーから利用可能なすべてのモデルがリストされます。
インラインチャットセッション中にモデルを変更すると、そのセッション中は選択が保持されます。VS Codeをリロードすると、モデルは inlineChat.defaultModel 設定で指定された値にリセットされます。
インラインサジェスト用のモデルを変更する
エディターでインラインサジェストを生成するために使用される言語モデルを変更するには
-
VS Codeタイトルバーの「Chat」メニューから「Configure Inline Suggestions...」を選択します。
-
「Change Completions Model...」を選択し、リストからモデルのいずれかを選択します。
インラインサジェストで利用可能なモデルは、対応モデルの追加に伴い、将来的に拡充される可能性があります。
ユーティリティタスク用のモデルを変更する
メインのチャットモデルに加え、VS Codeはタイトルの生成、コミットメッセージの作成、インテント検出などのユーティリティタスク向けに、バックグラウンドで軽量なモデルを使用します。これらのタスクはデフォルトでGitHub Copilotが提供する組み込みのユーティリティモデルを使用しますが、BYOKモデルや拡張機能が提供するモデルを含め、利用可能な任意のモデルで上書きできます。
タスクの種類に応じて、ユーティリティモデルには2つの設定があります
- chat.utilityModel : タイトルや要約の生成、設定検索、Gitレビューなど、一般的なユーティリティフローに使用されるモデルを上書きします。
- chat.utilitySmallModel : コミットメッセージ、名前の変更提案、ブランチ名の生成、プロンプトの分類、インテントの検出など、高速かつ軽量なユーティリティフローに使用されるモデルを上書きします。この設定には、高速で安価なモデルが推奨されます。
どちらの設定もデフォルトは「Default」になっており、GitHub Copilotの組み込みユーティリティモデルが使用されます。
GitHubアカウントにサインインせずにBYOKモデルを使用する場合、組み込みのユーティリティモデルは使用できません。VS Codeのチャットビューに、ユーティリティモデルを設定するよう促す通知が表示されます。タイトル生成やコミットメッセージ作成などのユーティリティ機能を有効にするには、 chat.utilityModel および chat.utilitySmallModel をBYOKモデルに設定してください。
モデル設定リファレンス
BYOKモデルを追加する際、chatLanguageModels.json ファイルでモデルのプロパティを構成できます。構成には「プロバイダーレベル」と「モデルレベル」の2つの階層があります。
プロバイダーによっては、一部のプロバイダーおよびモデルプロパティが必須であり、その他はオプションである場合があります。例えば、APIキーとエンドポイントURLのみを必要とし、利用可能なモデルを自動的に検出するプロバイダーもあれば、モデルごとに詳細を指定する必要があるプロバイダーもあります。
プロバイダーレベルのプロパティには以下が含まれます
| プロパティ | 説明 |
|---|---|
vendor |
モデルのプロバイダー(例: azure, openai, customendpoint) |
名前 |
UIに表示されるプロバイダーの表示名(グループ名)。 |
models |
(オプション) このプロバイダーによって提供されるモデル構成の配列。 |
models配列内の各モデルは、以下のプロパティをサポートしています
| プロパティ | 説明 |
|---|---|
id |
APIに送信されるモデル識別子。例えば、Foundryの場合はデプロイ名です。 |
名前 |
モデルピッカーに表示される表示名。 |
url |
モデルの完全なエンドポイントURL。 |
apiType |
(オプション) モデルごとにAPIタイプを上書きします(chat-completions, responses, または messages)。デフォルトはプロバイダーレベルの apiType です。 |
toolCalling |
モデルがツール呼び出しをサポートしている場合は true に設定します。 |
vision |
モデルが画像入力をサポートしている場合は true に設定します。 |
maxInputTokens |
モデルが受け入れる最大入力トークン数。 |
maxOutputTokens |
モデルが生成する最大出力トークン数。 |
editTools |
(オプション) モデルがサポートする編集ツールの配列。設定されていない場合、エディターは複数の編集ツールを試行し、最適なものを選択します。指定可能な値: find-replace, multi-find-replace, apply-patch, code-rewrite。 |
thinking |
(オプション) モデルが思考機能をサポートしている場合は true に設定します。デフォルトは false です。 |
streaming |
(オプション) モデルがストリーミング応答をサポートしている場合は true に設定します。デフォルトは true です。 |
zeroDataRetentionEnabled |
(オプション) このエンドポイントに対してZero Data Retention (ZDR) が有効な場合は true に設定します。有効にすると、Responses API経由のリクエストで previous_response_id が送信されなくなります。デフォルトは false です。 |
supportsReasoningEffort |
(オプション) モデルが受け入れる推論の深さレベルの配列(例: ["low", "medium", "high"])。設定すると、モデルピッカーに「思考の深さ」ピッカーが表示されます。一般的なレベルは minimal, low, medium, high です。 |
reasoningEffortFormat |
(オプション) 推論の深さをモデルに転送するために使用されるボディ形状。chat-completions は最上位の reasoning_effort 文字列を送信します。responses はネストされた reasoning.effort オブジェクトを送信します。設定されていない場合、フォーマットはURLに従います。 |
requestHeaders |
(オプション) このモデルへのリクエストに含める追加のHTTPヘッダーオブジェクト。特定の予約済みヘッダー(禁止ヘッダー、転送ヘッダー、内部ヘッダー)は許可されておらず、存在する場合は無視されます。 |
よくある質問
Copilot BusinessまたはCopilot Enterpriseで「独自の言語モデルキーを持ち込む」を有効にするにはどうすればよいですか?
Copilot BusinessまたはEnterpriseユーザーの場合、組織管理者がGitHub.comのCopilotポリシー設定で「Bring Your Own Language Model Key in VS Code」ポリシーを有効にする必要があります。このポリシーが有効になると、個人のプランユーザーと同様に、自身のAPIキーを使用してモデルを追加できます。詳細については、GitHub Copilotのドキュメントを参照してください。
VS CodeのCopilotでローカルホストモデルを使用できますか?
チャットでは、独自の言語モデルキーを持ち込む (BYOK) 機能を使用し、ローカルモデルへの接続をサポートするモデルプロバイダーを利用することで、ローカルホストモデルを使用できます。ローカルモデルに接続するためのオプションは以下の通りです。
- ローカルモデルをサポートする組み込みモデルプロバイダーを使用する
- Visual Studio Marketplaceから拡張機能をインストールする(例: AI Toolkit for VS Code with Foundry Local)
ローカルホストモデルは、GitHubアカウント、Copilotプラン、およびインターネット接続なしで動作します。ユーティリティ機能(タイトル生成、コミットメッセージなど)のすべてを利用するには、 chat.utilityModel および chat.utilitySmallModel を、ローカルモデルを指すように設定してください。
現在、インラインサジェストのためにローカルモデルに接続することはできません。VS Codeは拡張機能が独自の補完プロバイダーを提供できるようにする拡張API InlineCompletionItemProvider を提供しています。当社の Inline Completions sample から開始できます。
セマンティック検索、インラインサジェスト(コード補完)、埋め込みを利用する機能など、一部の機能にはGitHubアカウントとインターネット接続が必要です。これらの機能はBYOKモデル経由では利用できません。
インターネット接続なしでローカルモデルを使用できますか?
はい、ローカルモデルを完全にオフラインで使用できます。「Chat: Manage Language Models」コマンドを使用してOllamaなどのローカルモデルプロバイダーを追加し、チャットでそのモデルを選択して使い始めてください。タイトル生成やコミットメッセージなどのユーティリティ機能も有効にするには、 chat.utilityModel および chat.utilitySmallModel をローカルモデルに設定します。セマンティック検索、インラインサジェスト、埋め込みなど、GitHub Copilotサービスに依存する機能はオフラインでは使用できません。
Copilotプランなしでローカルモデルを使用できますか?
はい、BYOKモデル(ローカルモデルを含む)は、CopilotプランやGitHubアカウントへのサインインなしで使用できます。「Chat: Manage Language Models」コマンドでモデルを追加し、チャットで選択するだけです。ただし、セマンティック検索、インラインサジェスト、埋め込みなど、GitHub Copilotサービスに依存する機能にはCopilotプランが必要です。