Skip to main content

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

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

Note

GitHub Copilot Extensions は beta 段階であり、変更される可能性があります。

Copilot Extensions について

Copilot Extensions は、Copilot Chat の機能を拡張する統合です。 Copilot Extensions を使用すると、開発者は、サポートされているすべての IDE と GitHub の Copilot Chat エクスペリエンスに外部ツール、サービス、カスタム動作を統合できます。

Copilot Extensions は、次のような追加機能を備えた GitHub Apps として構築されています。

  • Copilot Chat 履歴への読み取りアクセス
  • Copilot Chat ウィンドウでユーザーに応答を送信する
  • 外部サービス (サード パーティ) での GitHub (ファースト パーティ) または機能の実行

Copilot Extensions は次のものと一緒に使用できます。

  • Visual Studio の Copilot Chat
  • Visual Studio Code の Copilot Chat
  • GitHub.com の Copilot Chat (Copilot Enterprise サブスクリプションあり)

Copilot Extensions の可視性

Copilot Extensions は、プライベート、パブリック、共有可能、またはパブリックで、GitHub Marketplace に一覧表示できます。 どの可視性オプションを選択するかは、ユース ケースと対象ユーザーによって異なります。

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

ユース ケース

Copilot Extensions を使用すると、さまざまな方法で Copilot Chat の機能を拡張できます。 たとえば、次のように使用できます。

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

拡張機能ツールキット、コード サンプル、SDK

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

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

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

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

    Note

    GitHub Models は beta 段階であり、変更される可能性があります。 アクセスを要求するには、記入待ちリストに登録します。

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

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

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

Copilot-enabled Visual Studio Code extensions について

またはVisual Studio Code に対して排他的でネイティブな Copilot Extension を構築することもできます。 これらの拡張機能は、Copilot-enabled Visual Studio Code extensions または Visual Studio Code チャット拡張機能と呼ばれます。 VS Code チャット拡張機能は VS Code の Copilot Chat でのみ使用でき、特定の Visual Studio Code 機能を使用する拡張機能を構築する開発者に適したオプションです。

GitHub Copilot Extensions とは、いくつかの主な違いがあります。

  • Visual Studio Code チャット拡張機能は、Visual Studio Code 環境内でのみ機能します。
  • Copilot-enabled Visual Studio Code extensions には、Visual Studio Code の機能と API へのアクセスが増え、ローカル ワークスペース データへのアクセス、Visual Studio Code のインターフェイスの操作、ローカル ファイルへの読み取り/書き込みアクセス権限など、エディター固有の操作が可能になります。
  • Copilot-enabled Visual Studio Code extensions は、GitHub Marketplace ではなく、Visual Studio Code マーケットプレースに発行されます。

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

参考資料