Skip to main content

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

Copilot Extensions の開発プロセスについて説明します。

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

GitHub Copilot Pro または Copilot Free サブスクリプションを持つすべてのユーザーは、Copilot Extensions を使用できます。

Copilot Business または Copilot Enterprise サブスクリプションを持つ組織や企業に関しては、組織のオーナーや企業の管理者は Copilot Extensions へのアクセス権を付与できます。

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

Copilot Extensions について

Copilot Extensions は、Copilot 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 Copilot Extensions は 、GitHub Appsを使用して構築された Copilot Extension の一種です。 GitHub Copilot Extensions は、クロスプラットフォームの互換性とアプリ管理、GitHub からのサポートを必要とする開発者に最適です。

サポートされているクライアントと IDE

クライアントと IDEGitHub Copilot Extensions サポート
Visual Studio Code
Visual Studio
GitHub.com
GitHub Mobile
JetBrains IDE
GitHub Codespaces
Vim/Neovim
Copilot in the CLI
Xcode

GitHub Copilot Extensions の可視性について

Copilot Extensions は、非公開、公開して共有可能、または公開して GitHub Marketplace に一覧表示することもできます。 どの可視性オプションを選択するかは、ユース ケースと対象ユーザーによって異なります。

  • プライベート拡張機能は、次のような大企業または会社によって好まれることが多いです。
    • より多くのカスタマイズとデータ アクセスの制御が必要である
    • 大量の内部ドキュメントおよびデータベースと統合する必要がある
    • 厳密なセキュリティ ポリシーにより、サード パーティのアクセス許可を承認することが困難である
  • パブリック拡張機能は、次の場合に適しています。
    • オープンソース プロジェクト
    • 企業内の組織全体でのコラボレーション開発と使用
    • GitHub Marketplace に公開する前にツールを共有し、フィードバックを受け取る
  • GitHub Marketplace 拡張機能は、次のことが必要なサード パーティに最適です。
    • 幅広いユーザーにサービスを提供する
    • GitHub と IDE の開発者ワークフローにツールを統合する
    • GitHub エコシステムを活用して、製品に対する認識を高める

GitHub Copilot Extensions のアクセス許可について

アクセス許可は、拡張機能がクエリに応答するために必要な認可のレベルに応じて、拡張機能ごとに異なります。 必要なアクセス許可は、拡張機能のインストール ページで、課金情報の手順の後、インストールと認可の手順の前に確認できます。

開発者向け: 少なくとも、Copilot Chat のアクセス許可を [Read-only] に設定する必要があります。 その他のアクセス許可として、他の画面での書き込みアクションの実行や、GitHub 内のリポジトリおよび organization レベルのデータへの読み取りアクセス権の認可が含まれる場合があります。

ビルダー向け: 上記に加えて、ユーザーの編集者にローカル コンテキストを要求して、応答をさらに調整することもできます。 これを行うには、Copilot Editor Context アクセス許可を [Read-only] に設定する必要があります。 ユーザーには、必要な認可を与えるよう通知されます。

GitHub App のアクセス許可の詳細については、「GitHub アプリのアクセス許可を選択する」を参照してください

Organization リソースにアクセスするアクセス許可を付与する

Organization リソースにアクセスするためのアクセス許可を Copilot Extensions に付与できるのは、organization 管理者だけです。 Organization メンバーにアクセス権を付与するには:

  • Organization 管理者が拡張機能をインストールする必要があります。
  • Organization 管理者は、特定のリポジトリにアクセスするための拡張機能のアクセス許可を付与する必要があります。
  • Organization 管理者は、すべてまたは特定のリポジトリへのアクセスを認可する必要があります。

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

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

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

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

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

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

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

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

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

GitHub Copilot Extensions で API を使う

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

Note

Copilot API は、Copilot Extension ビルダーで使用できますが、これらのエンドポイントへのアクセスに使用できるのは、GitHub Apps および VS Code Chat 拡張機能のみです。

GitHub Copilot Extensionsを構築するためのリソース

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

独自の GitHub Copilot Extension を最初から作成する前に、既存の Copilot agent を調べて、GitHub App と統合し、そのしくみを確認することができます。 GitHub には、次のように、独自の GitHub Copilot Extension の基礎として複製して使用できる、Copilot agents の例がいくつか用意されています。

  • Blackbeard: 海賊などの要求に応答する単純な Copilot agent で、Copilot の LLM API と特別なシステム音声ガイダンスを使用します。 これは、GitHub Copilot Extension を構築する方法を学習するための開始点として適しています。 詳細については、「Blackbeard Copilot Extension」を参照してください。

  • GitHub Models: より複雑な Copilot agent です。この場合、GitHub Marketplace に記載されているさまざまな LLM について、Copilot Chat 内から確認して操作できます。 詳細については、「GitHub Models Copilot Extension」を参照してください。

    Note

    GitHub Models は パブリック プレビュー 段階であり、変更される可能性があります。 アクセスを要求するには、待機リストに登録します

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

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

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

Copilot-enabled Visual Studio Code extensions の構築について

Note

GitHub のドキュメントでは、Copilot-enabled Visual Studio Code extensions ではなく、GitHub Copilot Extensions の構築に重点を置いています。

Copilot-enabled Visual Studio Code extensions と呼ばれる、Visual Studio Code に対して排他的でネイティブな Copilot Extension を構築できます。 このオプションは、VS Code固有の API と機能を使用する拡張機能を構築したり、既存の VS Code 拡張機能を拡張したりする開発者に最適です。

VS Code チャット拡張機能とも呼ばれる Copilot-enabled Visual Studio Code extensions 機能は、Copilot Chat の機能を拡張することで、GitHub Copilot Extensions と同様に機能しますが、次のように大きく異なる点がいくつかあります。

  • VS Code チャット拡張機能は、VS Code でのみ使用できます。
  • VS Code チャット拡張機能では、より多くの VS Code の機能や API にアクセスでき、ローカル ワークスペース データへのアクセス、Visual Studio Code のインターフェイス操作、ローカル ファイルへの読み取り/書き込みアクセス権限など、エディター固有の操作が可能になります。
  • VS Code チャット機能は、GitHub Marketplace ではなく、VS Code Marketplace に発行されます。
  • VS Codeチャット拡張機能は、ユーザーのコンピューターに対してローカルであり、組織のポリシーで制御することはできません。

Copilot-enabled Visual Studio Code extensions についての詳細は、Visual Studio Code ドキュメントの「チャット拡張機能」を参照してください。

参考資料