介绍
每次使用 数据变量.copilot.copilot_cli_short %} 时,关于会话的完整数据集都会记录在本地计算机上,包括你的提示、数据变量.product.prodname_copilot_short %} 的响应、所使用的工具,以及被修改文件的详细信息。 随着时间推移,这将累积形成丰富的历史记录,涵盖你完成的工作、工作方式以及 Copilot 为你执行的操作。
此会话数据为多个功能提供支持:
-
**恢复会话**:您可以从之前会话中中断的地方继续。 -
**关于历史记录提问**:你可以向 Copilot 询问过去的工作,它会查询你的会话数据来回答这些问题。 -
**`/chronicle` 斜杠命令**:一组专门设计的子命令,用于生成站会报告、个性化提示以及改进自定义指令的建议——所有内容均基于你的会话历史生成。
此概念性文章介绍了会话数据的存储方式,以及如何利用它来增强工作流。 有关如何恢复会话、向 Copilot 询问 CLI 会话以及使用 /chronicle 斜杠命令的实用指南,请参阅 使用 数据变量.copilot.copilot_cli %} 会话数据。
注意
/chronicle 命令和 Copilot 回答有关会话历史记录问题的能力目前是实验性功能,只有在你已使用 /experimental on 斜杠命令或 --experimental 命令行选项时才可用。
会话数据的存储方式
每个 Copilot 命令行界面(CLI) 会话都会以一组文件的形式保存在你设备上的 ~/.copilot/session-state/ 目录中。 每个会话的数据包含会话的完整记录。 这些文件允许你恢复交互式 CLI 会话。
除了会话文件外,Copilot 命令行界面(CLI) 还会将结构化的会话数据存储在本地 SQLite 数据库中,称为会话存储。 此数据是会话文件中存储的完整数据的子集。 会话存储为 /chronicle 斜杠命令提供支持,同时也使 Copilot 能够回答你关于过去工作的提问。
隐私和数据本地化
所有会话数据存储在本地主目录中,只能访问用户帐户。 当你询问与 CLI 交互相关的问题或使用 /chronicle 斜杠命令时,Copilot 会读取设备上的这些数据。 会话数据(例如您之前输入的提示、上下文数据和收到的响应)可能会发送到 AI 模型,就像在任何正常的 Copilot 命令行界面(CLI) 交互中一样。
如果要删除特定 CLI 会话的数据,可以从中删除相关的会话目录 ~/.copilot/session-state/。 可以通过删除下面的 ~/.copilot/session-state/所有内容来清除所有会话数据。 执行此操作后,必须手动重新编制会话存储的索引。 请查看本文后面的 会话存储重新索引 。
关于/chronicle斜杠命令
/chronicle SUBCOMMAND 命令使用会话存储中的数据,提供有关你使用 Copilot 命令行界面(CLI) 的洞察和建议。
可以在交互式 CLI 会话中输入以下命令:
-
`/chronicle standup`:生成简短报告,汇总最近 CLI 会话中处理的内容,包括分支名称、拉取请求链接和状态检查。 -
`/chronicle tips`:为更高效地使用 Copilot 命令行界面(CLI) 提供个性化建议。 -
`/chronicle improve`:分析你的会话历史,识别 Copilot 可能误解你意图或出现频繁往返交互的模式,并生成自定义指令,帮助 Copilot 在未来更好地理解你。 -
`/chronicle reindex`:根据您会话历史文件重建会话存储。
/chronicle 与会话数据的优势
-
**自我改进工作流**: `improve` 子命令创建一个反馈循环,可帮助你优化自定义说明。 随着时间的推移,这会使代理对特定项目更有效。 -
**轻松生成站会报告**:无需手动回顾昨天的工作,`/chronicle standup` 可根据实际会话数据生成站会摘要。 -
**个性化辅导**:`tips` 子命令充当个人生产力教练,既了解 Copilot 命令行界面(CLI) 的能力,也了解你的实际使用方式。 它弥合了可用功能和当前工作流之间的差距。 -
**与编码历史对话**:会话存储使 Copilot 能够回答任何与你过往会话相关的问题——从回忆上周修复的 bug,到分析你随时间变化的提示模式。 -
**本地和专用**:所有会话数据(原始 JSONL 文件和 SQLite 会话存储)都保留在计算机上。 除任何 Copilot 命令行界面(CLI) 会话中正常发生的 AI 模型交互外,不会上传或共享任何内容。 你可以完全控制你的数据,并且可以随时将其删除。
何时应使用这些功能?
-
**在一天开始时**:运行 `/chronicle standup last 3 days` 以生成最近工作内容和你正在使用的 CLI 会话的提醒。 -
**定期进行级别提升**:每周或两次运行 `/chronicle tips` ,以发现可能缺少的功能和工作流改进。 -
**当 Copilot 一再犯相同错误时**:运行 `/chronicle improve` 以识别模式并生成自定义指令来修复问题。 -
**回顾过去的工作**:问一个自由格式的问题,例如“我是否处理了与付款 API 相关的任何内容?” 并且 Copilot 会搜索你的历史记录。 -
**要继续以前的工作**:使用 `copilot --continue` 或 `copilot --resume` 来接续你之前的进度。
重新编制会话存储的索引
会话存储是在 CLI 会话期间以增量方式填充的。 会话的数据将写入到特定于会话的子目录中的 ~/.copilot/session-state/磁盘。 这也会在会话期间定期发生,并且会话结束时也会定期发生。
可以从磁盘上的会话文件重新编制会话存储的索引,但通常无需执行此操作。
可能需要重新编制索引的情况包括:
-
**为旧会话编制索引**:如果在会话存储存在之前创建的磁盘上有旧会话文件,则重新编制索引将使用这些会话中的数据填充会话存储。 -
**会话删除**:如果要从历史记录中删除会话,可以删除会话目录,然后重新编制会话存储的索引。 -
**迁移/恢复会话**:如果将会话文件移动到另一台计算机,或从备份还原它们,而不移动/还原会话存储文件(`~/.copilot/session-store.db`),则可以使用重新索引命令重新创建会话存储。 -
**文件损坏**:如果会话存储文件 (`~/.copilot/session-store.db`) 损坏或意外删除,则可以从会话文件恢复会话存储。 -
**意外终止**:如果会话由于崩溃或断电而意外终止,并且在内存中保存的数据尚未写入会话存储,如果这些数据在终止前已经写入到磁盘的会话文件中,您仍然可以用这些缺失的数据填充会话存储。
若要对会话存储重新编制索引,请使用交互式 CLI 会话中的以下斜杠命令:
/chronicle reindex
/chronicle reindex
延伸阅读
-
[AUTOTITLE](/copilot/how-tos/copilot-cli/chronicle) -
[AUTOTITLE](/copilot/reference/cli-command-reference)