Skip to main content
Skip to content

GitHub Copilot Memory について

Copilot Memory は Copilot リポジトリと個人のコーディング設定に関する事実を覚えておくことで、時間の経過と同時に効果を高めるのに役立ちます。

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

すべての有料 Copilot プランで利用できます。
Sign up for Copilot

既存のコードベースで作業を開始する開発者は、通常、リポジトリの README、コーディング規則、およびその他のドキュメントを読んで、プロジェクトの動作と貢献方法を理解します。 これは、最初から高品質の pull request を送信するのに役立ちます。 プロジェクトに取り組むにつれて、コードベースに慣れ、その微妙な違いを学ぶにつれて、通常は作業の質が向上します。 同様に、Copilot Memory を使用すると、Copilot がリポジトリやユーザーの作業方法について独自の理解を構築できるようになり、時間の経過とともにますます効果的になります。

思い出の種類

Copilot は、次の 2 種類のメモリを格納できます。

  • リポジトリ レベルのファクト はコードベースを表し、コラボレーターと共有されます。
  • ユーザー レベルの基本設定では、個人の作業方法の好みを表し、リポジトリ間で引き継がれます。 これには、応答の表示方法、承認を必要とするアクション、Copilot がプロジェクト全体で従うワークフローを含めることができます。
リポジトリ レベルの情報ユーザーレベルの設定
キャプチャされる内容リポジトリに関する事実 (コーディング規則、アーキテクチャ上の決定事項、ビルドとテスト コマンド、プロジェクト固有のルールなど)。明確に示された、機密性のない設定、承認要件、およびプロジェクト全体に適用される再利用可能なワークフロー。
誰が見ることができるかリポジトリへの読み取りアクセス権を持ち、Copilot Memory を使用できるユーザー。 リポジトリの設定で記録を表示するには、アカウントに対して書き込みアクセスとユーザー レベルの設定が有効になっている必要があります。あなたと、その設定が表示される共有エージェント セッションを表示できるすべてのユーザー。 Copilot Business および Copilot Enterprise のプランでは、組織またはエンタープライズ管理者はそれらを表示およびエクスポートすることもできます。
適用対象同じリポジトリに対する操作でのみ。Copilotすべてのリポジトリにまたがるやり取りの中で。
作成できるユーザーCopilot Memoryが有効になっており、リポジトリへの書き込みアクセス権を持つユーザー。あなただけが、あなた自身のやり取りに基づいて判断できます。
誰がそれらを削除できますかアカウントでユーザー レベルの基本設定が有効になっている、リポジトリへの書き込みアクセス権を持つユーザー 「エンタープライズ、組織、またはリポジトリのCopilot メモリの管理」を参照してください。あなた Copilot BusinessプランとCopilot Enterpriseプランでは、組織またはエンタープライズ管理者は該当項目を削除することもできます。
それらがどのように引用されているか事実を裏付けるコードを示す引用付き。あなたが言ったことの直接の引用を含む可能性のある引用付きで

たとえば、"このリポジトリでは単体テストに Vitest を使用します" はコードベースに関する事実であり、作業するすべてのユーザーにとって役立つため、リポジトリ レベルのファクトとして格納されます。 「変更を適用する前に説明する」は、Copilot にどのように動作してほしいかという個人的な希望を表す内容であるため、ユーザー レベルの設定として保存され、どこで作業していても適用されます。

記憶は、該当する設定でその種類の記憶が許可されている場合にのみ作成されます。

Copilot Memoryが使用可能な場所

Copilot Memory は、すべての有料 Copilot プランで利用できます。 使用するかどうかは、プランの設定、リポジトリへのアクセス、使用するサーフェスによって異なります。

Copilot は Copilot Memory を使用できます。

  • GitHub Copilot app
  • Copilot CLI
  • Copilot code review
  • Copilot cloud agent
  • Agentic Autofix
  • Copilot の GitHub Mobile
  • Copilot Slack で
  • Copilotin Microsoft Teams

1 つの Copilot サーフェスによってキャプチャされたファクトと設定は、別の Copilot サーフェスで使用できます。 たとえば、リポジトリがデータベース接続を処理する方法を検出 Copilot cloud agent 場合、 Copilot code review 後でそのナレッジを適用して、プル要求の一貫性のないパターンを見つけることができます。 同様に、特定 Copilot code review 設定を 2 つのファイル間で同期し続ける必要があることがわかっている場合、 Copilot cloud agent は両方のファイルを変更するときに両方のファイルを更新する必要があります。

メモ

GitHub Copilot appでの可用性は、Copilot Memoryがお客様のアカウントで利用可能になっているかどうかによって異なります。 この利用可能状態を有効にする設定はアプリにありません。 使用可能な場合は、個人用設定、リポジトリ設定、および適用可能なポリシーによって、使用できるメモリの種類が決まります。

**** のプロジェクトのGitHub Copilot app設定は別の機能です。 この記事で説明する共有リポジトリのファクトとユーザー レベルの設定ではなく、タスク全体でそのプロジェクトの設定が格納されます。 プロジェクトのメモリを編集またはオフにしても、 Copilot Memoryは編集またはオフになりません。

メモリの種類によってストレージと所有権がどう異なるか

2 種類のメモリは個別に格納され、異なる方法で所有および管理されます。

リポジトリ レベルの情報

各リポジトリ レベルのファクトは 1 つの特定のリポジトリに属し、リポジトリの設定で表示および削除できます。 Copilotは、現在の作業に関連するリポジトリ レベルのファクトを見つけると、現在のブランチに対してファクトの出典をチェックして、情報がまだ正確かどうかを判断します。 これはシステムによって適用される保証ではなく、Copilot が行う判断であるため、保存されたファクトは常に従われるルールとして依存すべきではありません。 手順を一貫して提供するには、代わりにカスタム指示を使用します。 Copilot Memoryと併せてカスタム命令を使用するを参照してください。

リポジトリのファクトは、組織内の各リポジトリ間でプールされません。 リポジトリをフォークしても、保存されたメモリはフォークにコピーされません。 フォークで作業する場合でも、ユーザー レベルの基本設定は引き続き適用されます。

ユーザーレベルの設定

ユーザー レベルの設定は、ユーザー設定に格納されます。 Copilot現在の作業に関連する好みが見つかると、その最適な判断を使用して、ユーザー設定がまだ適用されたことを確認します。

Copilot Business と Copilot Enterprise のプラン

Copilot BusinessプランとCopilot Enterpriseプランでは、ユーザー レベルの基本設定は、ユーザーにライセンスを付与する組織または企業である課金エンティティによって所有されます。 設定が作成されると、ユーザーの現在の使用状況におけるアクティブな課金エンティティに紐づけて保存されます。 次に、Copilot がエージェント セッションのコンテキストを作成すると、ユーザーの現在のアクティブな課金エンティティをもう一度調べて、その課金エンティティに属する設定のみを取得します。 ユーザーは、保存されているユーザー レベルの基本設定と、表示される各ユーザー設定の所有者を 個人設定で確認できます。

異なる提供元の複数のライセンスを持つユーザーは、新しいリポジトリ レベルのファクトまたはユーザー レベルの基本設定を作成するために、アカウント設定で既定の課金エンティティを選択する必要があります。

組織と企業の所有者は、メンバーのユーザー レベルの基本設定を一括またはユーザーごとにエクスポートまたは削除できます。 「エンタープライズ、組織、またはリポジトリのCopilot メモリの管理」を参照してください。

記憶の作成方法

Copilot は、あなたと一緒に作業することの副産物として、自ら記憶を形成します。 Copilotが動作すると、リポジトリに関する永続的な事実や、あなた自身の個人的な設定の詳細のうち、保持する価値があると判断したものに気付き、後で使用するために保存します。

Copilotが保存したユーザー レベルの設定を確認し、Copilotに使用させたくない設定を削除できます。 リポジトリへの書き込みアクセス権があり、アカウントに対してユーザー レベルの基本設定が有効になっている場合は、リポジトリの設定でリポジトリ レベルの情報を確認および削除することもできます。 GitHub.comの設定で個々のメモリを直接作成または編集することはできませんが、Copilotにメモリを作成させるよう影響を与えることができます。 個人の好みや、リポジトリに関する個人的な事実を明確に述べたり、明示的に Copilot に何かを覚えてもらうよう求めたりする場合は、メモリとしてキャプチャされる可能性があります。 Copilot CLIを使用して、準備されたメモリーを一括インポートすることもできます。 Copilot CLIを使用した思い出のインポートを参照してください。 Copilotは、あなたの発言がきっかけでメモリを作成すると、あなたの言葉はメモリの引用元として記録されます。

Copilot は、メモリがリポジトリ レベルのファクトかユーザー レベルの基本設定かを選択します。 これは、誰がそれを述べたかではなく、メモリが誰に適用されるかに基づいて選択します。 リポジトリで作業するすべての人にとって当てはまることはリポジトリレベルの事実になりますが、独自の作業方法を反映するものはユーザーレベルの好みになります。 意図があいまいな場合、Copilot は推測するのではなく、スコープを明確にするよう求めます。 メモリが自分用か、リポジトリで作業している全員向けかを明示的に指定することで、あいまいさを回避できます。

作成できるメモリ Copilot の種類は、コンテキストによって異なります。 リポジトリ レベルのファクトは、Copilot が書き込みアクセス権を持つリポジトリで作業している場合にのみ作成され、ユーザー レベルの基本設定は、Copilot があなたを作業相手として識別できる場合にのみ作成されます。

各メモリに格納されているデータ

各メモリには、Copilot がそのメモリを使用するかどうか、いつ、どのように使用するかを判断するために必要なデータが含まれています。 このデータの一部 (投票の詳細など) は内部使用のみを目的としているため、 GitHub Web サイトには表示されず、監査ログに含まれません。 次の表に、各メモリに格納されているデータの一部と、GitHub.comの設定ページに表示されるフィールドを示します。

データExample表示済み
メモリ内テキストThe payments module must never call Stripe directly — route all charges through BillingGateway.
科目分野architecture
AgentCopilot cloud agent
モデルclaude-sonnet-4
請求主体Acme Org
引用—
格納する理由—
リポジトリの情報またはユーザー設定—
投票データ—
有効期限日時—

メモ

  • 表示されないフィールドのデータ例は省略されています。
  • モデルと課金エンティティが常に存在するとは限らないため、表示されない場合があります。
  • 課金エンティティが組織の場合は、ユーザー インターフェイスに建物アイコン (🏢) が表示されます。 企業の場合は、地球アイコン (🌐) が表示されます。

記憶が強化され、忘れられる仕組み

Copilot は、格納された記憶を永続的に true として扱いません。 代わりに、Copilot は、各メモリに付属する出典を使用する前に確認するように指示されます。 Copilot では、内部投票システムを使用して、メモリがまだ有効かどうかに基づいて、各メモリの有用性を評価します。 検証可能なメモリをアップヴォートし、メモリが間違っているか古くなっていることが判明した場合は、メモリをダウンヴォートすることができます。 これは役立つ記憶を強化します。

メモリ ストアのすべてのメモリが、プロンプトでモデルに送信されるわけではありません。 高評価されたメモリーは送信される可能性が高くなります。 そのため、アップボッティングにより、メモリが将来の作業に適用される可能性が高くなります。 しきい値を超えて低評価されたメモリは使用されなくなり、一定期間使用されないと削除されます。

アップボーティングとダウンボーティングは、 Copilotによって自動的に実行されます。 セッションでのそのメモリの使用に関する肯定的または否定的なコメントを提供することで、メモリに賛成票または反対票を付けるよう Copilot に影響を与えることができますが、これは Copilot に任せることができます。 記憶の投票数は意図的に表示されませんが、関連する設定ページに記憶が一覧表示されている順序で投票の効果を確認できます。 アップボーテッドメモリーはリストの上に上がり、ダウンボートされたメモリーは下に移動します。

設定ページには、役立ち度によってランク付けされた記憶項目が表示されます。 Copilotが使わないと学習したメモリは一覧に表示されませんが、有効期限が切れるまで保存されたままになります。 一覧から消える思い出は、必ずしも削除されたことを意味するとは限りません。

Copilot が以前使用したメモリがあり、もう一度使用させたくない場合は、そのメモリをリポジトリ設定 (リポジトリ ファクトの場合) または個人設定 (ユーザー レベルの設定) から明示的に削除する必要があります。 「個人用アカウントの Copilot メモリの管理」を参照してください。

保持と有効期限

古い情報が残らないようにするために、保存されているリポジトリ情報とユーザー設定は、更新がないまま一定期間が経過すると期限切れになります。 有効期限は、メモリが作成されたときに開始され、Copilot がそれを高く評価するとリセットされます。 メモリを取得するだけでは、この期間はリセットされません。

既定の有効期限は 90 日です。 エンタープライズ所有者と組織の所有者は、リポジトリ レベルのファクトの有効期限を 7 日から 180 日 (含む) の任意の値に構成できます。 この設定は、既定の保持期間を常に使用するユーザー レベルの基本設定には適用されません。 リテンション期間を変更しても、既に保存されているリポジトリ レベルのファクトの日付は更新されません。次回 Copilot がそれらを強化するときに、新しいリテンション期間を採用します。

組織と組織が属する企業によって異なる有効期間が設定されている場合は、2 つの値のうち低い方が使用されます。

Copilotメモリに賛成票を付けると、そのメモリの有効期限が既定または構成済みの有効期限にリセットされます。 これにより、使用されたメモリの寿命が延びます。 記憶をダウンボーティングしても、その記憶の有効期限が切れる前の残りの期間は変更されません。

メモ

リポジトリのファクトは、マージせずに閉じられたプルリクエストからキャプチャできます。 Copilot は、現在のコードベースに対してこれらの事実を確認するように指示されていますが、古いファクトをすべて認識することは保証されません。

Copilotに格納されないもの

システムは、一部のコンテンツが格納されるのを防ぎ、 Copilot は他のコンテンツを格納しないように指示されます。

  • メモリ内のトークン、キー、資格情報などのシークレットがチェックされます。 シークレットが検出された記憶は拒否され、格納されません。
  • システムは、認識されたモデル制御トークンを含むメモリを、プロンプトインジェクションに対する防御として拒否できます。
  • Copilot は、機密性の高い個人情報、機密情報、または秘密として共有されたものを保存しないように指示されます。
  • Copilot は、有効期間が短い命令やタスク固有の命令を格納しないように指示されます。メモリは、時間が経っても変わらない事柄を捉えることを目的としているためです。

既定の設定

ユーザー レベルの設定とリポジトリ レベルの情報には、個別の既定値があります。 次の既定値は、 Copilot Memory が使用可能で、ユーザーまたは管理者が関連する設定を変更していない場合に適用されます。 既存のオプトアウトは引き続き有効です。

Planユーザー レベル設定の既定値
Copilot Pro、 Copilot Pro+、および Copilot Max有効。 個人設定画面でオプトアウトできます。
Copilot Business と Copilot Enterprise組織の所有者またはエンタープライズ所有者がポリシーを有効にするまで無効になります。 その後、 個人設定でオプトアウトできます。

リポジトリ レベルのファクトには、これらのすべてのプランに対して個別の既定値があります。 リポジトリ のメモリ アクセスは、エンタープライズ、組織、またはリポジトリの設定によって制限されない限り許可されます。 組織の リポジトリ アクセス 設定は、既定で すべてのリポジトリ に設定されます。 個人用設定でユーザー レベルの設定を無効にしても、リポジトリ レベルの情報は無効になりません。 リポジトリの管理Copilot Memoryを参照してください。

各サーフェスの設定

一部のサーフェスには、追加のローカル設定があります。 オンにすると、前述の設定でも許可されている場合にのみ、対象の画面で Copilot Memory を使用できます。

SurfaceDefault詳細情報
Copilot CLI、対話型セッションローカル設定がオンです。 GitHubの設定に従います。個人用アカウントの Copilot メモリの管理
Copilot CLI、プログラム型セッションオフ。 実行ごとに --enable-memory を使用します。個人用アカウントの Copilot メモリの管理
Visual Studio Codeオフ。 ローカル設定を有効にします。
個人用アカウントの Copilot メモリの管理
GitHub Copilot appアカウントで利用可能な場合、アカウントの GitHub 設定に従います。
個人用アカウントの Copilot メモリの管理
Copilot cloud agent
GitHubの設定に従います。
個人用アカウントの Copilot メモリの管理 と エンタープライズ、組織、またはリポジトリのCopilot メモリの管理
Copilot code reviewリポジトリの設定に従います。
エンタープライズ、組織、またはリポジトリのCopilot メモリの管理
Agentic Autofixリポジトリの設定に従います。
エンタープライズ、組織、またはリポジトリのCopilot メモリの管理

これらの画面はすべて、リポジトリ レベルの情報に対応しています。 Copilot code reviewとagentic autofixを除くすべてで、ユーザー レベルの基本設定もサポートされます。 Copilot CLIでは、ユーザー設定はセッションを開始したユーザーに属します。

Copilot appとCopilot CLI対話型セッションでは、Copilotはメモリを保存することの承認を求めることができます。 Copilot cloud agent と Copilot code review はこの承認を求めません。

ここで説明するCopilot cloud agent動作は、Slack または Microsoft Teams から開始されたセッションにも適用されます。 「Copilot クラウド エージェントと Slack の統合」と「Copilot クラウド エージェントと Teams の統合」を参照してください。

Copilot code review と agentic autofix はユーザー レベルの基本設定を適用しないため、プル要求のレビュー方法やセキュリティ アラートの修正方法は個人設定によって変わりません。

Copilot CLIでは、ルート エージェントのみがstore_memoryまたはvote_memoryを使用できます。 サブエージェントはread_memoriesにアクセスできる場合、メモリを読み取ることができますが、変更することはできません。

メモ

Copilot SDKを使用してビルドされたアプリケーションでは、セッションの作成時または再開時にCopilot Memoryを有効にすることができます。 SDK には、メモリの一覧表示、編集、削除用の API は用意されていません。 「SDK と CLI の互換性」を参照してください。

Copilot Memoryが使用されるかどうかを決定する要因

ユーザー レベルの設定とリポジトリ レベルの情報には、個別のコントロールがあります。 Copilot Memoryを使用するかどうかは、関連するメモリの種類と使用しているクライアントの設定によって異なります。

  1. あなた個人用の設定。 個人アカウントの Copilot Memory 設定では、ユーザー レベルの設定をセッション内で保存して使用できるかどうかを制御します。 リポジトリ レベルの情報を制御したり、管理者の制限をオーバーライドしたりすることはありません。 「個人用アカウントの Copilot メモリの管理」を参照してください。

    エンタープライズ管理プランと組織管理プランでは、管理者が有効にするまでユーザー レベルの基本設定はオフになり、その後はオプトアウトできます。

  2. 企業または組織のポリシー。 マネージド プランでは、 Copilot Memory ポリシーによってユーザー レベルの基本設定が制御されます。 複数の組織のライセンスを保持している場合は、最も制限の厳しいポリシーが適用されます。 リポジトリのアクセスは個別に制御されます。 「エンタープライズ、組織、またはリポジトリのCopilot メモリの管理」を参照してください。

  3. リポジトリのアクセスと設定。 組織の所有者は、エンタープライズの制限に従って、すべての、選択した、またはどのリポジトリにもリポジトリ レベルのファクトを許可できます。 リポジトリ管理者は、個々のリポジトリのリポジトリ レベルのファクトをオフにすることもできます。

    メモ

    リポジトリ レベルの情報をオフにしても、ユーザー レベルの基本設定はオフになりません。 同様に、ユーザー レベルの基本設定を無効にしても、それ自体ではリポジトリ レベルのファクトは無効になりません。

  4. お客様のクライアント設定。 対話型 Copilot CLI セッションでは、他の設定で許可されている場合でも、 /memory off は両方の種類のメモリを無効にします。 この設定は、 GitHub.com の設定とは無関係であり、そのマシン上の今後の対話型セッション用に保存されます。 /memory on は、この設定をクリアしますが、該当するエンタープライズ、組織、またはリポジトリの制限をオーバーライドすることはできません。 非対話型の実行には、別途 --enable-memory オプションが必要です。 Visual Studio Code には、アプリケーション内に独自の設定もあります。 「個人用アカウントの Copilot メモリの管理」を参照してください。

Copilot Memoryが使用されるタイミングの概要

Copilot Memory を使用するには、次の手順を実行します。

  • サポートされている有料 Copilot プランが必要です。
  • 使用しているクライアントは Copilot Memoryをサポートする必要があり、ローカル設定はいずれもそれを許可している必要があります。 Copilot CLIで、/memory showを使用してローカル設定を確認します。
  • 複数の Copilot ライセンスがある場合は、新しいメモを保存できるようにする前に、既定の課金エンティティを選択する必要があります。

ユーザーレベルの基本設定については、個人の Copilot Memory 設定と、該当するエンタープライズポリシーまたは組織ポリシーでもそれらを許可している必要があります。

リポジトリ レベルの情報:

  • リポジトリへのアクセス権が必要です。
  • 新しいリポジトリファクトを作成するには、リポジトリへのプッシュアクセス許可が必要です。
  • Copilot Memoryそのリポジトリの Copilot 設定で無効にしてはいけません。
  • リポジトリが組織によって所有されている場合、組織の Copilot Memory リポジトリ アクセスには、そのリポジトリが含まれている必要があります。
  • リポジトリのメモリ アクセスに適用されるエンタープライズ制限では、それが許可されている必要があります。

使用量と請求

モデルのコンテキストに含まれるメモリはトークンの使用にカウントされ、対話で消費されるAI creditsの量に影響を与える可能性があります。 コストは、モデルと使用されるトークンの数によって異なります。 詳細については、「GitHub Copilot のモデルと価格設定」を参照してください。

カスタム指示を併用する Copilot Memory

Copilot Memory とカスタム命令は、異なる方法で同様の問題を解決し、うまく連携します。

Copilot Memory は、 Copilotによって構築およびキュレーションされます。 それはあなたのメンテナンスを必要とせず、コードベースと習慣の変化に合わせて適応し、関連しなくなったものを破棄します。 Copilot は、記憶する内容を決定し、メモリがまだ適用されるかどうかを判断し、すべてのセッションでメモリを適用しない可能性があります。

カスタム指示は、ユーザーが作成および管理します。 Copilot が考慮するための指示が提供され、それらはリポジトリまたは個人用設定に表示されるので、Copilot に何が伝えられたのかを正確に確認・見直しできます。

カスタム命令を使用して、セキュリティ要件や必須のレビュー手順などの重要な規則を指定し、そうしないと命令ファイルが長くなり、保守が難しくなるような蓄積された詳細は Copilot Memory に処理させます。 メモリもカスタム命令も、 Copilot が毎回ルールに従うことを保証しないため、その作業を確認してください。 詳細については、「GitHub Copilotのカスタム手順」を参照してください。

詳細については、次を参照してください。