Skip to main content

GitHub Copilot 拡張機能の構築について

Copilot Extensions の開発について説明します。

この機能を使用できるユーザーについて

Copilot Pro、Copilot Pro+、または Copilot Free プランを持つユーザーはだれでも、Copilot Extensions を使用できます。

Copilot Business または Copilot Enterprise プランを所有する organization や Enterprise では、organization の所有者と Enterprise の管理者は Copilot Extensions へのアクセスを許可できます。

Copilot Extensions は、GitHub Enterprise Server では使用できません。

重要

GitHub Apps として構築される Copilot Extensions は、2025 年 11 月 10 日に終了します。 VS Code Copilot Extensions は影響を受けず、引き続きサポートされます。

重要な日付:

  • 2025 年 9 月 23 日: Copilot Extensions の新規作成がブロックされます
  • 2025 年 11 月 10 日: 既存のすべての Copilot Extensions が無効になります

必要に応じて、MCP サーバーを構築して拡張機能を置き換えることを検討してください。 (他の GitHub App 機能との) ハイブリッド アプリを、2025 年 11 月 10 日以降も引き続き GitHub Marketplace に掲載されるようにするには、アプリの設定で Copilot Extension の構成を無効にする必要があります。

詳しくは、変更ログのお知らせをご覧ください。

Copilot Extensions の構築について

Copilot Extensions は Copilot Chat の機能を拡張する統合であり、開発者は外部ツール、サービス、カスタム動作を Chat エクスペリエンスに取り込むことができます。 Copilot Extensions を使うと、次のようなさまざまな方法で Copilot Chat の機能を拡張できます。

  • ドキュメントのクエリ: Copilot Extension を使うと、Copilot Chat でサードパーティのドキュメント サービスのクエリを実行して、特定のトピックに関する情報を見つけることができます。
  • AI 支援コーディング: Copilot Extension では、サードパーティの AI モデルを使ってコードの提案を提供できます。
  • データの取得: Copilot Extension を使うと、Copilot Chat でサードパーティのデータ サービスのクエリを実行して、特定のトピックに関する情報を取得できます。
  • アクションの実行: Copilot Extension を使うと、Copilot Chat でメッセージ ボードへの投稿や外部システム内の追跡項目の更新などの特定のアクションを実行できます。

GitHub Copilot Extensions は、GitHub Apps を使用して構築されます。 これらは、クロスプラットフォームの互換性、アプリ管理、GitHub からのサポートを必要とする開発者に最適です。

スキルセットとエージェントについて

スキルセットとエージェントは、Copilot の機能とコンテキストを Copilot 拡張性プラットフォーム で拡張する 2 つの方法です。 それらを使うと外部サービスと API を Copilot Chat に統合できますが、それぞれ異なるユース ケースに対応し、異なるレベルの制御と複雑さを提供します。

  • スキルセットは軽量で効率化されており、最小限のセットアップで特定のタスク (データの取得や単純な操作など) を実行するために Copilot を必要とする開発者向けに設計されています。 それはルーティング、プロンプトの作成、関数の評価、応答の生成を自動的に処理するため、すばやく簡単な統合に最適です。 スキルセットの詳細については、「GitHub Copilot の拡張機能用のスキルセットについて」を参照してください。
  • エージェントは、要求の処理方法と応答の生成方法を完全に制御する必要がある複雑な統合のためのものです。 それを使うと、カスタム ロジックの実装、他の LLM や Copilot API との統合、会話コンテキストの管理、ユーザー操作のすべての側面の処理を行うことができます。 エージェントはより多くのエンジニアリングとメンテナンスを必要としますが、高度なワークフローに対して最大限の柔軟性を提供します。 エージェントの詳細については、「GitHub Copilot の拡張機能用のエージェントについて」を参照してください。

コンテキストの受け渡しについて

GitHub App の設定で [Copilot Editor Context] のアクセス許可に対して [Read-only] アクセス レベルを有効にすると、現在開いているファイルなどのコンテキストを Copilot Extension でエディターから受け取ることができます。 「GitHub App の構成」の手順 10 を参照してください。

暗黙的および明示的なコンテキストが使用できない場合、または認可されていない場合は、GitHub Copilot 拡張性プラットフォーム によって自動的にメッセージングが処理されます。 コンテキストの受け渡しを有効にするには、ユーザーにアクセス許可を要求する必要があります。 コンテキストの受け渡しを有効にするには、次のことを行う必要があります。

  • 新しい参照型を処理できるように API を更新します。
  • ユーザーにアクセス許可を要求します。 アクセス許可の要求は、次のベスト プラクティスに従って行います。
    • 必要なコンテキストと、それが必要な対象を明確に伝えます。
    • 独自のアプリケーション ロジックと API で呼び出されるコンテキストが使用できない場合の適切なエラー処理を実装します。
    • コンテキストを使用できない場合は、このデータなしで可能な値を指定します。
    • 拡張機能に最低限必要なアクセス許可のみを要求します。

コンテキストの受け渡しでは、コンテンツの除外が考慮されます。これは、コンテキストの除外設定に登録されているすべてのファイル (. で始まるファイルを含む) を指します。

コンテキストの受け渡しの詳細については、「エージェントのコンテキストの受け渡し」を参照してください。

GitHub Copilot Extensions での API の使用

GitHub Copilot Extensions を作成するには、GitHub API を使う必要があります。 必要に応じて、追加機能のために Copilot API を使用できます。 要求と応答の形式の詳細については、OpenAI API ドキュメントを参照してください。

メモ

Copilot Extension を構築する開発者は Copilot API を利用できますが、これらのエンドポイントへのアクセスに使用できるのは、GitHub Apps と VS Code チャット拡張機能のみです。

GitHub Copilot Extensions を作成するためのリソース

GitHub は、コード サンプル、CLI デバッグ ツール、クイック スタート SDK、およびユーザー フィードバック リポジトリを備えた、拡張機能ビルダー向けの包括的なツールキットを提供します。 詳細については、GitHub の copilot-extensions 組織を参照してください。

独自の GitHub Copilot Extension を最初から作成する前に、既存の Copilot エージェント を調べ、それを GitHub App と統合して、それがどのように動作するか確認することをお勧めします。 GitHub で提供されている Copilot エージェント のいくつかの例をクローンし、独自の GitHub Copilot Extension の基礎として使用できます。

  • Blackbeard: Copilot の LLM API と特別なシステム プロンプトを使って海賊のように要求に応答する簡単な Copilot エージェント。 GitHub Copilot Extension の構築方法を学習するときは、これから始めることをお勧めします。 詳しくは、Blackbeard Copilot Extension のページをご覧ください。

  • GitHub Models: さらに複雑な Copilot エージェント であり、GitHub Marketplace に登録されているさまざまな LLM について、Copilot Chat 内から質問したり、それを操作したりできます。 詳しくは、GitHub Models Copilot Extension のページをご覧ください。

    メモ

    GitHub Models は パブリック プレビュー 段階であり、変更される可能性があります。

  • 関数呼び出し: 関数呼び出しと確認ダイアログを示す Go で記述されたエージェントの例。 詳細については、「関数呼び出し拡張機能」を参照してください。

  • RAG 拡張機能: 取得拡張生成の簡単な実装を示す Go で記述されたエージェントの例。 詳細については、「RAG 拡張機能」を参照してください。

  • プレビュー SDK: 要求の検証、応答の書式設定、API の操作を処理することで、GitHub Copilot Extensions の構築プロセスを簡素化する SDK。 これにより、ツール、API、データ ソースの Copilot Chat への統合が効率化されるため、構築担当者は定型機能ではなく拡張機能のコア機能に集中できます。 詳細については、「プレビュー SDK」を参照してください。

Copilot 対応 VS Code チャット参加者の構築について

メモ

GitHub のドキュメントでは、Copilot 対応 VS Code チャット参加者ではなく、GitHub Copilot Extensions の構築に重点が置かれています。

Copilot 対応 VS Code チャット参加者と呼ばれる、Visual Studio Code に専用でネイティブな Copilot Extension を構築できます。

GitHub Copilot Extensions と Copilot 対応 VS Code チャット参加者は、同じバックエンド プラットフォームを使ってリクエストを拡張機能にルーティングします。 どちらも同様のエンドユーザー エクスペリエンスを提供し、Copilot Chat と統合され、Copilot API または他の LLM を利用できます。

類似点もありますが、主な相違点の一部を次に示します。

  • GitHub Copilot Extensions は、拡張機能がサポートされているエディターで使用できますが、Copilot 対応 VS Code チャット参加者は Visual Studio Code でのみ使用できます。
  • GitHub Copilot Extensions はサーバー側の拡張機能であり、サーバー インフラストラクチャを構築する必要があります。 これらの拡張機能は、organization 管理者による設定に従い、GitHub ワークスペースへの組み込みの接続を提供します。
  • Copilot 対応 VS Code チャット参加者は、より多くの VS Code の機能や API にアクセスできるクライアント側の拡張機能であり、ローカル ワークスペース データへのアクセス、Visual Studio Code のインターフェイス操作、ローカル ファイルへの読み取り/書き込みアクセスなど、エディター固有の操作が可能です。 サーバー インフラストラクチャは必要ありません。
  • Copilot 対応 VS Code チャット参加者はユーザーのマシンに対してローカルであるため、GitHub.com 上の organization または Enterprise の Copilot ポリシーで制御することはできません。
  • Copilot 対応 VS Code チャット参加者 は、GitHub Marketplace ではなく、VS Code Marketplace に公開されます。

Copilot 対応 VS Code チャット参加者は、VS Code 固有の API と機能を使用する拡張機能を構築したり、既存の VS Code 拡張機能を拡張したりする開発者に最適です。

Copilot 対応 VS Code チャット参加者について詳しくは、Visual Studio Code のドキュメントの「チャット拡張機能」をご覧ください。

Copilot Extensions に対する補償

Copilot Extensions は、GitHub Copilot の補償ポリシーの対象ではありません。 ただし、この除外は拡張機能のチャット スレッド内で発生した issue にのみ適用されます。

拡張機能をインストールして使っても、コード補完やチャットなどの他の Copilot 機能を使用中に発生する issue に対する補償範囲には影響しません。

参考資料