Skip to main content

关于 GitHub Copilot 命令行界面 (CLI) 会话数据

          Copilot CLI 在本地记录每个会话。 可以继续之前的会话,询问 Copilot 有关与 CLI 交互的问题,并使用 `/chronicle` 斜杠命令获取基于会话的有用见解。

介绍

每次使用 Copilot CLI时,都会在本地计算机上记录有关会话的完整数据集(包括提示、 Copilot响应、使用的工具和修改的文件的详细信息)。 随着时间的推移,这将构建一个丰富的历史,记录你做过的工作,你的工作方式,以及Copilot为你所做的事情。

此会话数据为多个功能提供支持:

  •         **恢复会话**:您可以从之前会话中中断的地方继续。
    
  •         **询问有关历史记录的问题**:可以询问 Copilot 有关过去工作的问题,它会查询会话数据来回答这些问题。
    
  •         **
            `/chronicle` 斜杠命令**:一组专门设计的子命令,用于生成站会报告、个性化提示以及改进自定义指令的建议——所有内容均基于你的会话历史生成。
    

此概念性文章介绍了会话数据的存储方式,以及如何利用它来增强工作流。 有关如何恢复会话、查询Copilot CLI 会话以及使用/chronicle斜杠命令的实践指南,请参阅使用 GitHub Copilot 命令行界面 (CLI) 会话数据

注意

/chronicle 命令和 Copilot 回答有关会话历史记录问题的能力目前是实验性功能,只有在你已使用 /experimental on 斜杠命令或 --experimental 命令行选项时才可用。

会话数据的存储方式

每个 Copilot CLI 会话都会作为一组文件保存在计算机上的 ~/.copilot/session-state/ 目录中。 每个会话的数据包含会话的完整记录。 这些文件允许你恢复交互式 CLI 会话。

除了会话文件, Copilot CLI 还在本地 SQLite 数据库中存储结构化会话数据,称为会话存储。 此数据是会话文件中存储的完整数据的子集。 会话存储是支持 /chronicle 斜杠命令的基础,它还允许 Copilot 回答你提出的有关你过去工作的任何问题。

隐私和数据本地化

所有会话数据存储在本地主目录中,只能访问用户帐户。 Copilot 在你询问有关与 CLI 的互动问题时或使用 /chronicle slash command 时,会在你的计算机上读取这些数据。 会话数据(如先前的提示、上下文数据和收到的响应)可能会发送到 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 能解答过往会话可辅助的任何问题,从回忆上周修复的漏洞到分析长期提示模式。
    
  •         **本地和专用**:所有会话数据(原始 JSONL 文件和 SQLite 会话存储)都保留在计算机上。 除了任何会话中发生的普通 AI 模型交互之外,不会上传或共享任何 Copilot CLI 内容。 你可以完全控制你的数据,并且可以随时将其删除。
    

何时应使用这些功能?

  •         **在一天开始时**:运行 `/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 会话中的以下斜杠命令:

Copilot prompt
/chronicle reindex

延伸阅读

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/chronicle)
    
  •         [AUTOTITLE](/copilot/reference/cli-command-reference)