VS Code 代理中的记忆功能

Visual Studio Code 中的代理使用记忆功能在不同对话之间保留上下文。代理不会在每次会话开始时重新开始,而是能够回想您的偏好、应用从过往任务中汲取的经验,并随时间推移积累关于您代码库的知识。

有关记忆功能如何融入代理架构的背景信息,请参阅 代理概念

本文介绍了如何在 VS Code 中使用记忆工具、如何管理记忆文件,以及 Copilot 记忆如何跨开发工作流程扩展记忆功能。

记忆工具

注意

记忆工具目前处于预览阶段。您可以使用 github.copilot.chat.tools.memory.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来启用或禁用它。

记忆工具是一个内置的代理工具,允许代理在工作时保存和回想笔记。您也可以明确要求代理记住某些内容。所有数据均存储在您的本地计算机上。记忆工具默认处于启用状态。

记忆范围

根据信息的持久性要求及其适用范围,每个范围都有不同的用途。

范围 路径 跨会话持久化 跨工作区持久化 用途
用户 /memories/ 偏好设置、模式、常用命令
存储库 /memories/repo/ 否(工作区范围) 代码库规范、项目结构、构建命令
环节 /memories/session/ 否(聊天结束时清除) 任务特定的上下文、进行中的计划

用户记忆

用户记忆在所有工作区和对话中保持持久。每次会话开始时,前 200 行会自动加载到代理的上下文中。使用用户记忆来存储通用的偏好设置和见解,无论您在处理哪个项目,这些信息均适用。

例如,要求代理记住某项编码偏好:

Remember that I prefer tabs over spaces and always use single quotes in JavaScript

在随后的对话中,即使是在不同的工作区中,代理也会回想此偏好并将其应用于生成的代码。

存储库记忆

存储库记忆的作用域为当前工作区,并在该工作区的不同对话之间保持持久。使用存储库记忆来记录关于特定代码库的事实,例如架构决策、命名规范或构建命令。

例如

Remember that this project uses the repository pattern for data access and all API endpoints require authentication

会话记忆

会话记忆的作用域为当前对话,并在对话结束时清除。使用会话记忆来记录临时的工作笔记或任务特定的上下文,以便代理在处理多步骤任务时进行跟踪。

Plan 代理使用会话记忆将其实施计划持久化到 plan.md 文件中。此计划在会话期间可用,并可通过 Chat: Show Memory Files(聊天:显示记忆文件) 命令查看,但在后续会话中不可用。了解更多关于使用代理进行规划的信息。

存储和检索记忆

要存储记忆,请使用自然语言要求代理记住某些内容。代理会确定合适的范围并创建或更新相应的记忆文件。

Remember that our team uses conventional commits for all commit messages

要检索记忆,请在新的对话中询问相关信息。代理会检查其记忆文件并回想相关内容。

What are our commit message conventions?

代理聊天回复中的记忆文件引用是可点击的,因此您可以直接查看记忆文件的内容。

管理记忆文件

VS Code 提供了用于查看和管理记忆文件的命令:

  • Chat: Show Memory Files(聊天:显示记忆文件):打开所有作用域内的记忆文件列表。选择一个文件以查看其内容。
  • Chat: Clear All Memory Files(聊天:清除所有记忆文件):移除所有作用域内的所有记忆文件。
注意

目前尚不支持删除单个记忆文件。请使用 Chat: Clear All Memory Files 来移除所有记忆,或者要求代理更新特定的记忆文件以删除过时的信息。

Copilot 记忆 (Copilot Memory)

注意

Copilot 记忆处于预览阶段,与上述本地记忆工具是分开的。

Copilot 记忆是一个由 GitHub 托管的记忆系统,它允许 Copilot 在工作时学习并保留特定于存储库的见解。与本地记忆工具不同,Copilot 记忆可在多个 GitHub Copilot 界面之间共享,包括 Copilot 云代理、Copilot 代码审查和 Copilot CLI。

Copilot 记忆的工作原理

当 Copilot 代理在您的存储库中工作时,它们会自动捕获称为“记忆”的紧密作用域见解。这些记忆具有以下特点:

  • 存储库作用域:记忆与特定存储库绑定,只能由拥有写入权限的贡献者创建。
  • 跨代理共享:一个 Copilot 代理所学到的知识可供其他代理使用。例如,Copilot 代码审查发现的模式稍后可以指导 Copilot 云代理。
  • 使用前验证:代理在应用记忆之前会根据当前代码库对其进行验证,防止陈旧或错误的信息影响结果。
  • 自动过期:记忆会在 28 天后被删除,以避免过时信息。

启用 Copilot 记忆

Copilot 记忆默认处于关闭状态,必须在您的 GitHub 设置中启用。

  • 个人用户(Copilot Pro 或 Pro+):在 GitHub 上的个人 Copilot 设置中启用 Copilot 记忆。
  • 组织和企业:通过组织或企业设置中的策略设置进行启用。

此外,您需要在 VS Code 中通过 github.copilot.chat.copilotMemory.enabled 在 VS Code 中打开 在 VS Code Insiders 中打开 设置来启用 Copilot 记忆集成。

存储库所有者可以在 Repository Settings(存储库设置) > Copilot > Memory(记忆) 中查看和删除已存储的记忆。

有关详细的设置说明,请参阅 GitHub 文档中的启用和管理 Copilot 记忆

记忆工具与 Copilot 记忆的对比

记忆工具 Copilot 记忆 (Copilot Memory)
存储方式 本地(在您的机器上) GitHub 托管(远程)
范围 用户、存储库、会话 仅限存储库
在 Copilot 界面间共享 否(仅限 VS Code) 是(编码代理、代码审查、CLI)
创建方式 您或代理在聊天时创建 Copilot 代理自动创建
默认启用 否(需选择启用)
过期机制 手动管理 自动(28 天)

这两个系统是互补的。在 VS Code 中,使用本地记忆工具处理个人偏好和会话特定的上下文;使用 Copilot 记忆来存储可惠及整个开发工作流程中所有 Copilot 代理的存储库知识。

© . This site is unofficial and not affiliated with Microsoft.