Skip to main content

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

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

Note

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

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 エコシステムを活用して、製品に対する認識を高める

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

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

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

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

Note

コンテキストの受け渡しは パブリック プレビュー であり、変更される可能性があります。

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

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

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

コンテキストの受け渡しでは、コンテンツの除外、.env ファイル、コンテンツ除外設定の一覧に含まれるファイルが考慮されます。

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 ドキュメントの「チャット拡張機能」を参照してください。

参考資料