GitHub Copilot の BYOK(Bring Your Own Key)機能は、単なる「自分の API キーを持ち込む」だけではありません。複数のAI モデルプロバイダーを VS Code に登録して、タスクに応じてモデルを切り替えながら開発できる環境を作れるのです。
2026年4月現在、Anthropic・Google Gemini・OpenAI・OpenRouter・Ollama(ローカル)・Microsoft Foundry Local など、様々なプロバイダーが BYOK に対応しています。「このファイルは Claude で補完したい」「このスニペットは Gemini で試したい」という細かい使い分けが可能になりました。
ここからは、複数モデルを VS Code に登録して日々の開発で使い分ける具体的な手順をお見せします。
BYOK とは何か
GitHub Copilot は従来、GitHub が提供する OpenAI の GPT-4 モデルを背後に持つサービスでした。一方、BYOK はあなたのアカウント・API キーを持ち込んで、別のモデルプロバイダーを指定できる機能です。
重要な点として、BYOK は Chat(チャット)と Code Completions(インラインコード補完)の両方には対応していません。Code Completions は依然として GitHub のバックエンドが管理します。BYOK で選べるのは、Chat パネルとスラッシュコマンド(/explain、/tests など)を使う際のモデルです。
つまり:
- ✅ Chat パネルで使う LLM を自分で選べる
- ✅ スラッシュコマンドで指定したモデルが動作
- ❌ インライン補完(コードを書いている行の横に出るサジェスチョン)は BYOK 対象外
この違いを理解した上で、Chat を重視する開発フローを構築する点が肝心です。
複数プロバイダーの登録方法
VS Code の拡張機能「GitHub Copilot」の設定から、複数プロバイダーを追加できます。
// .vscode/settings.json (ワークスペース設定の例)
{
"github.copilot.advanced": {
"providers": [
{
"name": "Anthropic",
"models": [
{
"id": "claude-opus-4",
"displayName": "Claude Opus 4",
"apiKey": "YOUR_ANTHROPIC_API_KEY",
"baseUrl": "https://api.anthropic.com/v1"
},
{
"id": "claude-sonnet-4",
"displayName": "Claude Sonnet 4",
"apiKey": "YOUR_ANTHROPIC_API_KEY",
"baseUrl": "https://api.anthropic.com/v1"
}
]
},
{
"name": "Google Gemini",
"models": [
{
"id": "gemini-2.0-flash",
"displayName": "Gemini 2.0 Flash",
"apiKey": "YOUR_GEMINI_API_KEY",
"baseUrl": "https://generativelanguage.googleapis.com/v1beta/openai/"
}
]
},
{
"name": "OpenAI",
"models": [
{
"id": "gpt-4-turbo",
"displayName": "GPT-4 Turbo",
"apiKey": "YOUR_OPENAI_API_KEY",
"baseUrl": "https://api.openai.com/v1"
}
]
},
{
"name": "Ollama (Local)",
"models": [
{
"id": "llama2",
"displayName": "Llama 2 (Local)",
"apiKey": "not-needed-for-local",
"baseUrl": "http://localhost:11434/v1"
}
]
}
]
}
}重要な点:
- 各プロバイダーの
apiKeyには、そのサービスの実際のキーを入力します baseUrlはプロバイダーごとに異なります。公開ドキュメントで確認してください- Ollama のようなローカル実行モデルの場合、API キーは不要です
- VS Code UI からも設定可能です(設定 → GitHub Copilot → Advanced → Providers)
シナリオ別のモデル選択戦略
実際の開発では、タスクに応じてモデルを使い分けることで、コスト効率と速度、品質のバランスを取ります。
テストコード自動生成 → Claude Opus
テストの漏れを防ぎたい場合は、深い思考力が必要です。Chat パネルで /tests スラッシュコマンドを使う際に Claude Opus を指定すると、エッジケースまで考慮したテストが生成されます。
// こういったテストを自動生成したいとき
describe("calculateDiscount", () => {
it("should apply 10% discount for purchases over 100", () => {
expect(calculateDiscount(150)).toBe(135);
});
// エッジケース
it("should return original amount for exact 100", () => {
expect(calculateDiscount(100)).toBe(100);
});
it("should handle negative amounts gracefully", () => {
expect(calculateDiscount(-50)).toThrow();
});
});簡単な変数名・コメント生成 → Gemini Flash
軽量で高速なタスクなら、Gemini 2.0 Flash を使います。応答が 100ms 以下で返ってくることが多く、「このメソッドに説明文を付けて」のようなリクエストに向いています。
// 「このコードに JSDoc を付けて」と Gemini Flash に指示
/**
* ユーザーの認証トークンを検証し、有効期限をチェックする
* @param {string} token - JWT トークン
* @returns {boolean} 有効な場合は true
*/
function validateAuthToken(token) {
// 実装...
}複雑なリファクタリング提案 → Gemini 2.0 Pro
Gemini 2.0 Pro は、「このクラスを関数型に書き直して」「このロジックを別の設計パターンで実装して」といった、複数の選択肢を提示する提案に強いです。
ローカル開発・プライベートコード → Ollama
会社の機密コード・個人情報を含むプロジェクトでは、ローカルで動作する Ollama を使います。コードが外部に出ないため、プライバシー重視の環境で活動できます。初期化に時間がかかるデメリットがありますが、セキュリティが最優先の場面では価値があります。
Enterprise / Business ユーザー向けの管理設定
組織で複数の開発者が BYOK を使う場合、GitHub Organization レベルで BYOK ポリシーを設定できます。
- Team ごとに異なるプロバイダーを強制: 某チームは Anthropic、別チームは OpenAI と指定
- API キーの自動ローテーション: 90日ごとにキーを更新し、セキュリティを維持
- 使用ログの一元監視: Team Dashboard から、どのモデルが何回使われたかを追跡
- コスト管理: 月額予算をチーム単位で設定し、超過を防ぐ
GitHub Admin → Organization Settings → Copilot Policies で設定します。
Antigravity と BYOK の組み合わせ
Antigravity(Microsoft の AI デスクトップアシスタント)を同じマシンで動かしながら、VS Code では BYOK を使う構成も可能です。
- Antigravity: ブラウザ・メール・ファイルマネージャーなど全体の操作補助
- VS Code + BYOK: コード編集時のみ、特定のモデルに特化
それぞれが独立して動作するため、「全体的なタスク管理は Antigravity で、コード作成は VS Code で Claude 指定」という使い分けができます。
実装のコツと注意点
-
API キーは環境変数から読み込む
.vscode/settings.jsonに直接キーを書かないprocess.env.ANTHROPIC_API_KEYのような形で参照.envファイルを.gitignoreに追加
-
ネットワークが遅い場合の対策
- Ollama などのローカルモデルをフォールバックに設定
- Chat での「最初の応答待ち」が長い場合、別のモデルに切り替える
-
モデルごとの癖を理解する
- Claude は論理的で丁寧、Gemini は直感的で高速、GPT-4 は広範な知識
- チーム内でベストプラクティスを共有
-
Code Completions は GitHub のモデル固定
- BYOK 設定を作っても、インライン補完の改善には直結しない
- Chat とスラッシュコマンドを活用する設計に
複数モデルを使い分ける開発環境は、一度セットアップすればあなたの生産性を大きく変えます。タスクの性質に応じた最適なモデルを手元に用意できるのは、開発の自由度が増すことを意味しています。
ぜひこの記事の設定を参考に、自分にぴったりなマルチモデル環境を整えてください。