◉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 Code4マルチモデルAntigravity383

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-03-10
VS Code から Antigravity へ移る前に棚卸しした拡張機能と設定の引き継ぎ方
VS Code のフォークである Antigravity へ、拡張機能・設定・キーバインドを引き継ぐ手順です。OpenVSX で足りなくなる拡張機能の見つけ方、VSIX での手動導入、両エディタの使い分け、移行後に確認する項目までまとめました。
⟐ Editor View2026-09-17
VS Code から持ってきた拡張が Open VSX に無いとき、どこまで追いかけるか
Antigravity へ移したあと、拡張機能だけが付いてこない理由と、足りない分を機械で洗い出して埋め方を決めるまでの手順です。Open VSX の公開者を確かめる方法、VSIX を台帳で固定する運用、レジストリ差し替えの副作用まで扱います。
⟐ Editor View2026-09-10
日英で本数が合っていても、コードブロックは 148 ペアでずれていました
日本語版と英語版のファイル数が 1,057 対 1,057 で揃っていても、本文の構造までは揃っていませんでした。コードブロックと H2 の個数を数え直して出たずれ、文字数比では捕まえられなかった理由、40 行の検査スクリプトを書き残します。