Skip to main content

GitHub Copilotのエージェント記憶について

Copilot がコードベースについて学習した内容を格納し、その知識をリポジトリ内で将来の作業に活用できる方法を確認します。

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

  • Copilot Enterprise または Copilot 事業 プランを持つ企業および組織。
  • Copilot Pro または Copilot Pro+ プランがある個々のユーザー。
    Sign up for Copilot

メモ

この機能は現在パブリック プレビューにあり、変更される可能性があります。

イントロダクション

開発者は、既存のコードベース (開発チームの新しいメンバーなど) の作業を開始するときに、リポジトリの README、コーディング規則のドキュメント、およびその他の情報を読んで、リポジトリを理解し、コードを更新または追加する際の作業方法を理解できます。 これにより、高品質の pull request を送信するのに役立ちます。 ただし、コードベースで作業し、詳細を学習すると、提供できる作業の品質が着実に向上します。 同様に、Copilot にリポジトリに対する独自の理解を構築できるようにすることで、時間の経過と同時に有効にできるようになります。

Copilotは、"メモリ" を格納することで、リポジトリの永続的な理解を深めることができます。

メモリは、リポジトリに関する厳密な範囲の情報であり、リポジトリで動作するCopilotによって推測されます。 思い出は次のとおりです。

  • リポジトリ固有。
  • ユーザーが Copilot メモリ を有効にして実行した Copilot アクティビティに応じてのみ作成されます。

Copilot の一部が作成したメモリは、Copilot の別の部分で使用できます。 そのため、たとえば、Copilotコーディングエージェント がリポジトリによるデータベース接続の処理方法を検出した場合、Copilotコード レビュー は後でそのナレッジを適用して、レビュー中のプル要求で一貫性のないパターンを見つけることができます。 同様に、Copilotコード レビュー が 2 つの個別のファイルで同期を維持する必要がある設定について学習した場合、Copilotコーディングエージェント は、いずれかのファイルの設定を変更した場合は、それに応じてもう一方のファイルを更新する必要があることを認識します。

Copilot メモリ を使用することの利点

ステートレスであり、個別の人間と AI の対話の間でコードベースの理解を維持しない AI では、プロンプト内の特定のコードに関するコーディング規則と重要な詳細を繰り返し説明するか、詳細なカスタム命令ファイルを作成する必要があります。その後、維持する必要があります。

Copilot メモリ:

  • プロンプトで同じ詳細を繰り返し提供する負担を軽減します。
  • カスタム命令ファイルの定期的な手動メンテナンスの必要性を軽減します。

Copilot は、永続的なリポジトリ レベルのメモリを構築して維持することで、コードベースに関する独自の知識を開発し、コーディング要件に適応し、時間の経過とともに提供できる価値を高めます。

Copilot メモリ はどこで使用されますか?

現在、Copilot メモリ は、Copilotコーディングエージェント および Copilotコード レビュー によって使用され、これらの機能が GitHub Web サイト上でプル リクエストを処理する際は、Copilot CLI によって使用されています。 Copilot メモリ が、Copilot 操作を開始するユーザーに対して有効になった場合、メモリは、Copilot によってのみ作成および使用されます。

エージェント型メモリは、今後のリリースで、Copilot のその他の部分や個人スコープおよび組織スコープにも拡張予定です。

メモリの保存、保持、および使用方法

Copilot が生成する各メモリは、引用文献と共に格納されます。 これらは、メモリをサポートする特定のコードの場所への参照です。 Copilot は、現在の作業に関連する記憶を見つけた場合、現在のコードベースに対して参照をチェックし、その情報が依然として正確で、現在のブランチに関連していることを確認します。 メモリは、正常に検証された場合にのみ使用されます。

古いメモリが保持され、古い情報が Copilotの意思決定に悪影響を与えるのを防ぐために、メモリは 28 日後に自動的に削除されます。

Copilot によってメモリが検証されて使用される場合、同じ詳細を持つ新しいメモリが保存され、その結果、そのメモリの寿命が延びることがあります。

マージされずに閉じられたプル要求のコードからメモリを作成できます。 ただし、検証メカニズムにより、現在のコードベースに実証証拠がない場合、このようなメモリが Copilotの動作に影響を与えなくなります。

Copilot は、リポジトリへの書き込み権限を持ち、かつ Copilot メモリ が有効化されているユーザーが、そのリポジトリ内で行った操作に応じてのみ、当該リポジトリにメモリを作成します。 メモリは、ユーザー スコープではなくリポジトリ スコープであるため、リポジトリに格納されているすべてのメモリは、そのリポジトリの Copilot メモリ にアクセスできるユーザーによって開始された Copilot 操作で使用できます。 リポジトリに格納されているメモリは、同じリポジトリでのCopilot 操作でのみ使用できます。 このようにして、Copilot がリポジトリについて学習することは、そのリポジトリ内にとどまり、プライバシーとセキュリティが確保されます。

Copilot メモリ が使用されているリポジトリの所有者である場合は、そのリポジトリのメモリを確認して手動で削除できます。 「Copilot メモリの管理とキュレーション」を参照してください。

Copilot メモリ の有効化について

Copilot メモリ を使用する機能は、リポジトリに対して有効にするのではなく、ユーザーに付与されます。 ユーザーに対して Copilot メモリ を有効化したら、Copilot は、ユーザーが GitHub Copilot を使用する任意のリポジトリでエージェント型メモリを使用できるようになります。

個々のCopilot サブスクリプションを持っているCopilot ProまたはCopilot Pro+プランのユーザーの場合、Copilot メモリがデフォルトで有効になっています。 これらのユーザーは、個人のCopilot設定でCopilot メモリを無効にすることが、GitHub上でできます。

Enterprise および Organization が管理する Copilot サブスクリプションの場合、Copilot メモリ は既定で無効になっており、Enterprise または Organization の設定で有効にできます。 エンタープライズ レベルまたは組織レベルで有効にすると、Copilot メモリ は、組織から Copilot サブスクリプションを受け取るすべての組織のメンバーによって使用できるようになります。

詳しくは、「Copilot メモリの管理とキュレーション」をご覧ください。