Skip to main content

GitHub Copilot Spaces の責任ある使用

GitHub Copilot Spaces の目的、機能、制限を理解し、責任を持ってそれを使う方法を学びます。

GitHub Copilot Spaces について

Copilot Spaces を使うと、Copilot Chat がユーザーの質問に答えるために使うコンテキストを整理できます。 Spaces には、リポジトリ、コード、pull request、issue、音声テキストやメモなどの自由形式のテキスト コンテンツ、画像、ファイル アップロードを格納できます。 そのコンテキストを質問の典拠とするように Copilot に指示したり、スペースをチームと共有してコラボレーションや知識の共有をサポートしたりできます。 また、Spaces には、リモート GitHub MCP サーバーを介して IDE から直接アクセスすることもできます。

入力処理

スペース内で質問を送信すると、Copilot Chat はそのスペースからの関連するコンテキストで要求を補強します。 次のものをコンテキストとして含めることができます。

  • 追加したファイルやリポジトリ
  • Issue、pull request、ディスカッション
  • 指定したメモまたはトランスクリプト

ユーザーからの入力プロンプトは Copilot Chat システムによって前処理され、追加のコンテキスト情報 (現在の日時など) と組み合わされて、大規模言語モデルに送信されます。 ユーザーによる入力は、コード スニペットまたはプレーン ランゲージの形式をとることができます。

大規模言語モデルは、プロンプトを受け取り、追加のコンテキスト (GitHub に格納されているリポジトリ データや、Bing からの検索結果など) を収集して、プロンプトに基づく応答を提供します。 英語は、送信するプロンプトに適した言語です。

言語モデルの分析

その後、前処理されたプロンプトは、大量のテキスト データでトレーニングされたニューラル ネットワークである Copilot Chat 言語モデルを通過します。 言語モデルにより、入力プロンプトが分析されます。

応答の生成

言語モデルによって、入力プロンプトとそれに提供されたコンテキストの分析に基づいた応答が生成されます。 言語モデルは、追加のコンテキスト (GitHub に格納されているリポジトリ データや、Bing からの検索結果など) を収集し、プロンプトに基づいて応答を提供できます。

出力の形式

Copilot Chat によって生成される応答は書式設定され、ユーザーに表示されます。 Copilot では、生成された応答をわかりやすくするため、構文の強調表示、インデント、その他の書式設定機能を使用できます。 ユーザーからの質問の種類に応じて、ソース コード ファイル、問題、Bing 検索結果、ドキュメントなど、モデルが応答を生成するときに使用したコンテキストへのリンクも提供される場合があります。

Copilot Chat の目的は、質問に最も関連性の高い回答をユーザーに提供することです。 ただし、お探しの回答が必ず提供されるとは限りません。 Copilot Chat のユーザーは、システムによって生成された応答をレビューして検証し、それが正確かつ適切であることを確認する必要があります。 さらに、GitHub は製品開発プロセスの一環として、Copilot Chat の安全性の理解と改善のためにレッド チーミングを実施しています。 入力プロンプトと出力入力候補は、コンテンツ フィルターを使用して実行されます。 コンテンツ フィルタリング システムは、有害、不快、またはトピック外のコンテンツを含む特定のカテゴリのコンテンツに対する出力を検出して防止します。 Copilot Chat のパフォーマンス向上について詳しくは、「Copilot Chat のパフォーマンスの向上」をご覧ください。

Spaces のユース ケース

新機能の開発

Spaces を使うと、関連するコード、製品仕様、設計メモをバンドルできるため、Copilot は現在の実装をすばやく説明したり、ギャップを明示したり、新しいコードや次の手順を下書きしたりできます。 これは、時間の節約、要件への準拠、高品質の機能を実現する作業の実施に役立ちます。

小規模で頻繁に実行されるタスクのロジックを定義する

テレメトリの追加やイベント処理などの繰り返し行うタスクの場合、Spaces を使うと、プロセスを一度文書化して再利用するのが簡単になります。 フローチャート、例、またはスキーマを Copilot の典拠とすると、チーム全体で一貫したパターン、再利用可能なテンプレート、効率的な実行を実現できます。

チームメイトとの知識の共有

Spaces を使って最新のコードとドキュメントを 1 か所に収集し、一般的なプロジェクトの質問 (認証や検索のしくみなど) のライブ ガイドとして活用できます。 その後、Copilot はそのコンテキストを使い、ベスト プラクティスに従ってすばやくシステムの説明、質問への回答、チームメイトのオンボードを行います。

Spaces のパフォーマンスの向上

Spaces は、コードの生成からチーム全体での知識の共有まで、開発とコラボレーションのさまざまなワークフローで使用できます。 パフォーマンスを向上させ、より関連性の高い応答を得るために採用できるベスト プラクティスがいくつかあります。 システムの制約について詳しくは、「GitHub Copilot Spaces の制限事項」をご覧ください。

コンテキストを絞り込む

最も関連性の高いファイル、リポジトリ、メモのみを追加すると、Copilot の対象を維持するのに役立ちます。 必要のないコンテンツまでスペースに詰め込むと、応答の品質が低下し、正確な結果を得るのが難しくなります。

コンテキストを最新の状態に保つ

プロジェクトの進化に合わせて、スペース内のファイル、issue、またはドキュメントを更新します。 コンテキストが古いと、Copilot が不正確または不完全な回答を生成する可能性があります。

ソースと共に指示を使用する

自然言語での指示とキュレーションされたソースを組み合わせると、Copilot が意図をより適切に理解するのに役立ちます。 指示でガイダンスを提供し、ソースを実際のプロジェクト コンテキストでの出力の典拠とします。

チャットを空間に固定する

スペース内から会話を始めると、継続性と関連性が保たれます。 これにより、Copilot の応答は、新しいチャットごとにリセットされず、既に設定されている特定のコンテキストに合わせて維持されます。

Spaces の出力を確認する

Spaces はユーザーが指定したコンテキストを Copilot の応答の典拠としますが、それでもシステムは間違う可能性があります。 このような間違いとしては、ユーザーの意図の誤解や、生成された応答での単純なエラーなどがあります。 常に、Copilot の出力を慎重にレビューして、それが意図したとおりに動作していることを確認し、運用環境で使う前に、チームの品質とセキュリティの基準を満たしていることを確認します。

GitHub Copilot Spaces の制限事項

ユーザーの意図の解釈

Spaces はキュレーションされたコンテキストを Copilot Chat の応答の典拠とするのに役立ちますが、それでもシステムはユーザーの意図を誤解する可能性があります。 常に、プロジェクトで使う前に、Copilot の出力をレビューし、それがユーザーの目的を反映していることを確認してください。

コンテキストの制限

Spaces ではサイズの制限が定義されており、Copilot Chat は含まれるコンテンツの一部のみを処理します。 つまり、スペース内のすべてのファイル、ドキュメント、またはメモが応答で使われるわけではありません。 追加するものを精選すると、Copilot が最も関連性の高いコンテキストで確実に動作するのに役立ちます。

制限付きのスコープ

現在、リポジトリのみを含む Spaces には、IDE から GitHub MCP サーバー経由でアクセスすることはできません。 IDE で Spaces を使うには、ファイル、issue、ドキュメントなどの追加のコンテキストを含める必要があります。

Spaces は Copilot Chat によって支えられているため、大量のコード本体でトレーニングされていますが、それでも対象範囲は限られており、より複雑なコード構造や不明瞭なプログラミング言語は処理できない場合があります。 各言語で、受け取る提案の品質は、その言語のトレーニング データの量と多様性によって異なります。 たとえば、JavaScript はパブリック リポジトリでよく表され、GitHub Copilot で最適にサポートされている言語の 1 つです。 パブリック リポジトリに含まれる表現が少ない言語では、Copilot Chat での支援がいっそう困難になる場合があります。 さらに、Copilot Chat では、記述されているコードのコンテキストに基づいてのみコードを提案できるため、より大きな設計やアーキテクチャの問題を特定できない場合があります。

不正確な応答

スペースを典拠とした場合でも、Copilot Chat は不正確、不完全、または古い応答を生成する可能性があります。 これは、コード、要約、issue の下書きなど、すべての種類の出力に当てはまります。 常に、プロジェクトの独自の要件に照らして結果を検証してください。

セキュリティの制限事項

Copilot Chat は、記述されているコードのコンテキストに基づいてコードを生成します。これは慎重に使用しないと、機密情報や脆弱性が公開される可能性があります。 セキュリティを重視するアプリケーションのコードを生成するために、Copilot Chat を使用する場合は注意が必要で、生成されたコードを常にレビューしてテストする必要があります。

ユーザーは、AI サービスやソリューションを使用する際に、該当する法律や規制上の義務を評価する必要がありますが、すべての業界やシナリオに適しているとは限りません。 さらに、AI サービスまたはソリューションは、該当するサービス利用規約と関連する行動規範で禁止されている方法のために設計されておらず、そのような方法で使うこともできません。

不快感を与えるコンテンツ

Spaces が利用する Copilot Chat には、有害、憎悪的、攻撃的なコンテンツに対する保護機能が組み込まれています。 攻撃的なコンテンツの例があれば copilot-safety@github.com に報告してください。