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 Copilot Extensions は、GitHub Appsを使って作成された Copilot Extension の一種です。 GitHub Copilot Extensions は、クロスプラットフォームの互換性、アプリ管理、GitHub からのサポートを必要とする開発者に最適です。
サポートされているクライアントと IDE
クライアントと IDE | GitHub 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 の可視性について
GitHub 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 拡張性プラットフォーム で拡張する 2 つの方法です。 それらを使うと外部サービスと API を Copilot Chat に統合できますが、それぞれ異なるユース ケースに対応し、異なるレベルの制御と複雑さを提供します。
- スキルセットは軽量で効率化されており、最小限のセットアップで特定のタスク (データの取得や単純な操作など) を実行するために Copilot を必要とする開発者向けに設計されています。 それはルーティング、プロンプトの作成、関数の評価、応答の生成を自動的に処理するため、すばやく簡単な統合に最適です。 スキルセットの詳細については、「Copilot のスキルセットについて」を参照してください。
- エージェントは、要求の処理方法と応答の生成方法を完全に制御する必要がある複雑な統合のためのものです。 それを使うと、カスタム ロジックの実装、他の LLM や Copilot API との統合、会話コンテキストの管理、ユーザー操作のすべての側面の処理を行うことができます。 エージェントはより多くのエンジニアリングとメンテナンスを必要としますが、高度なワークフローに対して最大限の柔軟性を提供します。 エージェントの詳細については、「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 対応 Visual Studio Code 拡張機能 の作成について
メモ
GitHub のドキュメントでは、Copilot 対応 Visual Studio Code 拡張機能 ではなく、GitHub Copilot Extensions の構築に重点が置かれています。
Copilot 対応 Visual Studio Code 拡張機能 と呼ばれる、Visual Studio Code に専用でネイティブな Copilot Extension を構築できます。 このオプションは、VS Code固有の API と機能を使用する拡張機能を構築したり、既存の VS Code 拡張機能を拡張したりする開発者に最適です。
VS Code チャット拡張機能とも呼ばれる Copilot 対応 Visual Studio Code 拡張機能 機能は、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 対応 Visual Studio Code 拡張機能 について詳しくは、Visual Studio Code のドキュメントの「チャット拡張機能」をご覧ください。