はじめに
Copilot CLI (コパイロット CLI)を使用するたびに、セッション データがローカル コンピューターに記録されます。 これには、プロンプト、 Copilotの応答、使用されたツール、変更されたファイルの詳細が含まれます。 既定では、セッション データも GitHub アカウントに同期されます。 これにより、 Copilot CLI (コパイロット CLI)、 Copilot クラウドエージェント、 Copilotコード レビュー、 VS Code、JetBrains、 GitHub Copilot アプリからのセッションなど、過去のすべてのセッションに対してクエリを実行できます。
このセッション データは、 Copilot CLI (コパイロット CLI)、 VS Code、JetBrains、 GitHub Copilot アプリ、および GitHub.comから利用できるいくつかの機能を利用できます。
- セッション履歴のクエリ: 過去の作業に関する自然言語の質問をします。 Copilot はセッション データで回答を検索します。
- セッションの再開: 前のセッションで中断した場所を選択します。
/chronicleスラッシュ・コマンド: カスタム命令を改善するためのスタンドアップ・レポート、パーソナライズされたヒント、コスト分析、および提案を生成する専用のサブコマンドのセット。すべてセッション履歴から派生します。
ユーザー スコープのクエリでは、独自のセッションにのみクエリを実行できます。他のユーザーはセッション データにアクセスできません。
この概念的な記事では、セッション データの格納と同期方法と、それを使用してワークフローを強化する方法について説明します。 セッションの再開、CLI セッションに関する Copilot の質問、および /chronicle スラッシュ コマンドの使用に関する実用的なガイドについては、 GitHub Copilot CLI(コマンドラインインターフェース) セッション データの使用 を参照してください。
VS Codeからのセッションのクエリについては、エージェント セッションの管理 を参照してください。
セッション データの格納方法
すべての Copilot CLI (コパイロット CLI) セッションは、コンピューター上の ~/.copilot/session-state/ ディレクトリ内の一連のファイルとして保持されます。 各セッションのデータには、セッションの完全なレコードが含まれています。 これらのファイルを使用すると、対話型 CLI セッションを再開できます。
セッション ファイルに加えて、 Copilot CLI (コパイロット CLI) はセッション ストアと呼ばれるローカル SQLite データベースに構造化セッション データを格納します。 このデータは、セッション ファイルに格納されている完全なデータのサブセットです。 セッション ストアは、 /chronicle スラッシュ コマンドの機能であり、 Copilot が過去の作業について質問に答えることもできます。
セッションの同期
既定では、 Copilot CLI (コパイロット CLI) はセッション データを GitHub アカウントに同期します。 これにより、 Copilot CLI (コパイロット CLI)、 VS Code、JetBrains、 GitHub Copilot アプリ、または GitHub.comから過去のセッションを照会でき、 Copilot クラウドエージェント、 Copilotコード レビュー、 VS Code、 GitHub Copilot アプリからのセッションが含まれます。
セッションの同期をオプトアウトするには、CLI 設定 JSON で "remoteExport": false を設定します。 オプトアウトした場合、セッション データはマシン上にとどまり、 Copilot CLI (コパイロット CLI)からのみクエリを実行できます。
Copilot EnterpriseユーザーとCopilot 事業ユーザーの場合、組織の管理者は、"クラウドにローカル セッションを保存する" ポリシーを少なくとも "クラウドから表示" に設定する必要があります。 ポリシーが無効または未構成の場合、セッションはローカルにのみ格納されます。
プライバシーとデータのローカリティ
ローカル セッション データは ~/.copilot/session-state/ に格納され、そのマシン上のユーザー アカウントからのみアクセスできます。
同期されたセッション データは GitHub に格納され、個人アカウントに関連付けられます。 既定では、ユーザーのみがアクセスできます。 組織管理者とエンタープライズ管理者は、同期を "クラウドにローカル セッションを保存する" ポリシーを使用して使用できるかどうかを制御しますが、ポリシーを有効にしても、管理者はセッション データにアクセスできません。
個々のセッションを共有して、リポジトリにアクセスできる他のユーザーにビューのみのアクセス権を付与することができます。 共有セッションは、他のユーザーのセッション クエリに対してインデックスが作成されません。 詳細については、「エージェント セッションの管理」を参照してください。
Copilot は、過去の対話について質問したり、 /chronicle スラッシュ コマンドを使用したりしたときにセッション データを読み取ります。 以前のプロンプト、コンテキスト、応答などのセッション データは、通常の Copilot CLI (コパイロット CLI) 操作と同様に、AI モデルに送信される場合があります。
セッション データの管理
セッション データは、ローカルと GitHub.comの両方で管理できます。
- ローカル データ: 特定の CLI セッションのデータをローカルで削除するには、関連するセッション ディレクトリを
~/.copilot/session-state/から削除します。 すべてのローカル セッション データをクリアするには、~/.copilot/session-state/の下にあるすべてのデータを削除します。 これを行った後、セッション ストアのインデックスを手動で再作成する必要があります。 この記事の後半にある セッションストアの再インデックス作成 を参照してください。 ローカル ファイルを削除しても、アカウントに同期されたセッション データには影響しません。 同期されたデータをローカルで削除することはできません。 - 同期されたデータ: 同期された CLI セッションを GitHub.comから削除または非表示にすることができます。 セッションを非表示にすると、セッション インデックスから削除され、クエリ結果に表示されなくなります。 セッションを削除すると、 GitHub.comのセッション一覧からセッションが削除されます。 削除は、CLI、 VS Code、および GitHub Copilot アプリ セッションに適用されます。
/chronicleスラッシュコマンド
/chronicleスラッシュ コマンドは、スタンドアップ レポート、パーソナライズされたヒント、コスト分析、カスタム命令を改善するための提案など、セッション履歴から分析情報を生成するための専用のサブコマンドを提供します。 サブコマンドと使用例の完全なリストについては、 GitHub Copilot CLI(コマンドラインインターフェース) セッション データの使用 を参照してください。
セッション データを使用するタイミング
- 1 日の開始時:
/chronicle standup last 3 daysを実行して、手動で再構築するのではなく、最近の作業の概要を生成します。 - 定期的に、レベルを上げるには、毎週 2 回
/chronicle tips実行して、不足している可能性がある機能やワークフローの改善点を検出します。 - Copilotが同じ間違いを犯し続ける場合:
/chronicle improveを実行してパターンを特定し、プロジェクトに対してエージェントの効果を高めるカスタム命令を生成します。 - トークンの使用状況を理解するには:
/chronicle cost tipsを実行してトークンの実行場所を確認し、コストを削減するための提案を得ます。 - 特定のトピックを検索するには:
/chronicle search KEYWORDを実行して、特定の用語またはトピックを含むセッションを検索します。 自由形式の質問とは異なり、これはクエリを意味的に解釈するのではなく、セッションコンテンツをキーワードで直接検索します。 - 過去の作業を思い出すには:"支払い API に関連する作業を行いましたか" のような自由形式の質問をします。 Copilotは履歴を検索します。
- 前の作業を続行するには:
copilot --continueまたはcopilot --resumeを使用して、中断した場所を選択します。
セッション ストアのインデックスを再作成する
セッション ストアは、CLI セッション中に増分的に設定されます。 セッションのデータは、 ~/.copilot/session-state/のセッション固有のサブディレクトリ内のディスクに書き込まれます。 これは、セッション中、およびセッションの終了時にも定期的に発生します。
ディスク上のセッション ファイルからセッション ストアのインデックスを再作成できます。 インデックスを再作成すると、セッション データもアカウントに同期されます。
インデックスの再作成が必要になる場合があります。
- 古いセッションのインデックス作成: セッション ストアが存在する前に作成されたディスク上の古いセッション ファイルがある場合、インデックスの再作成によってセッション ストアにそれらのセッションのデータが設定されます。
- セッションの削除: 履歴からセッションを削除する場合は、セッション ディレクトリを削除してから、セッション ストアのインデックスを再作成できます。
- セッションの移行/回復: セッション ファイルを別のマシンに移動した場合、またはバックアップから復元した場合でも、セッション ストア ファイル (
~/.copilot/session-store.db) も移動または復元しない場合は、reindex コマンドを使用してセッション ストアを再作成できます。 - ファイルの破損: セッション ストア ファイル (
~/.copilot/session-store.db) が破損した場合、または誤って削除された場合は、セッション ファイルからセッション ストアを回復できます。 - 予期しない終了: セッション内のデータがメモリからセッションストアに書き込まれる前に、セッションがクラッシュや停電などで予期せず終了した場合、終了前にセッションファイルとしてディスクにデータが書き込まれていた場合は、その欠落したデータをセッションストアに再設定することができるかもしれません。
セッション ストアのインデックスを再作成するには、対話型 CLI セッションで次のスラッシュ コマンドを使用します。
/chronicle reindex
/chronicle reindex