ANTIGRAVITY LABEN
記事一覧/Editor View
Editor View/2026-04-28中級

GitHub Copilot BYOK で複数AI モデルを使い分ける開発環境の構築

2026年、GitHub Copilot の BYOK(Bring Your Own Key)機能が拡張されました。Anthropic、Google、OpenAI、OpenRouter など複数の LLM プロバイダーのキーを VS Code に設定し、コードを書く時にモデルを使い分ける開発環境を整えるガイドです。

GitHub Copilot4BYOKVS Code5マルチモデルAntigravity338

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 指定」という使い分けができます。

実装のコツと注意点

  1. API キーは環境変数から読み込む

    • .vscode/settings.json に直接キーを書かない
    • process.env.ANTHROPIC_API_KEY のような形で参照
    • .env ファイルを .gitignore に追加
  2. ネットワークが遅い場合の対策

    • Ollama などのローカルモデルをフォールバックに設定
    • Chat での「最初の応答待ち」が長い場合、別のモデルに切り替える
  3. モデルごとの癖を理解する

    • Claude は論理的で丁寧、Gemini は直感的で高速、GPT-4 は広範な知識
    • チーム内でベストプラクティスを共有
  4. Code Completions は GitHub のモデル固定

    • BYOK 設定を作っても、インライン補完の改善には直結しない
    • Chat とスラッシュコマンドを活用する設計に

複数モデルを使い分ける開発環境は、一度セットアップすればあなたの生産性を大きく変えます。タスクの性質に応じた最適なモデルを手元に用意できるのは、開発の自由度が増すことを意味しています。

ぜひこの記事の設定を参考に、自分にぴったりなマルチモデル環境を整えてください。

シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

Editor View2026-05-24
VS Code 1.121 と Agent Host Protocol ― リモートでエージェントが住み続ける時代の、エディタ周辺で起きていることの整理
VS Code 1.121 で導入された Remote agents と Agent Host Protocol(AHP)、Claude Agent の Auto モードや BYOK の拡張、Markdown プレビューの Mermaid 標準対応まで。Antigravity ユーザーの視点から、エディタの境界がどう動いているかを 1 本で整理します。
Editor View2026-03-10
VS Code × Antigravity 移行・連携ガイド — 既存の開発環境を AI IDE にスムーズに移行する
VS Code から Google Antigravity への移行方法を徹底解説。設定・拡張機能・キーバインドの引き継ぎから、両エディタの併用テクニックまで紹介します。
Editor View2026-07-17
パスの空白ひとつで、エージェントのコマンド9形が「0件・成功」を返しました
ワークスペース名に空白が入っているだけで、エージェントの生成したコマンドは静かに別の場所へ届きます。未引用パス11形の実測と、cd の一行に境界を閉じる入口スクリプトの実装まで。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →