VS Code 智能体中的记忆功能
Visual Studio Code 中的智能体使用记忆功能在不同对话之间保留上下文。智能体无需在每次会话时从头开始,而是能够回想您的偏好、应用从之前任务中获得的经验,并随时间积累关于您代码库的知识。
有关记忆功能如何融入智能体架构的背景信息,请参阅 智能体概念。
本文介绍了如何在 VS Code 中使用记忆工具、如何管理记忆文件,以及 Copilot Memory 如何在您的开发工作流中扩展记忆功能。
记忆工具
记忆工具目前处于预览阶段。您可以通过 github.copilot.chat.tools.memory.enabled 设置来启用或禁用它。
记忆工具是一个内置的智能体工具,允许智能体在工作时保存和回想笔记。您也可以明确要求智能体记住某些内容。所有数据均存储在您的本地机器上。记忆工具默认处于启用状态。
记忆范围
每个范围根据信息需要保留的时长及其适用的位置,具有不同的用途。
| 范围 | 路径 | 跨会话保留 | 跨工作区保留 | 用途 |
|---|---|---|---|---|
| 用户 | /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.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 Memory
Copilot Memory 处于预览阶段,与上述本地记忆工具是分开的。
Copilot Memory 是一个由 GitHub 托管的记忆系统,让 Copilot 在工作时能够学习并保留特定于存储库的见解。与本地记忆工具不同,Copilot Memory 在多个 GitHub Copilot 界面之间共享,包括 Copilot 编码智能体、Copilot 代码审查和 Copilot CLI。
Copilot Memory 的工作原理
当 Copilot 智能体在您的存储库中工作时,它们会自动捕获被称为“记忆”的、作用域紧凑的见解。这些记忆具有以下特点:
- 存储库范围:记忆绑定到特定存储库,只能由具有写入权限的贡献者创建。
- 跨智能体:一个 Copilot 智能体学到的内容,其他智能体均可使用。例如,Copilot 代码审查发现的模式稍后可以指导 Copilot 编码智能体。
- 使用前验证:智能体在应用记忆之前会针对当前代码库进行验证,从而防止陈旧或错误的信息影响结果。
- 自动过期:记忆会在 28 天后被删除,以避免信息过时。
启用 Copilot Memory
Copilot Memory 默认处于关闭状态,必须在您的 GitHub 设置中启用:
- 个人用户(Copilot Pro 或 Pro+):在 GitHub 上的个人 Copilot 设置中启用 Copilot Memory。
- 组织和企业:通过组织或企业设置中的策略设置进行启用。
此外,您需要在 VS Code 中通过 github.copilot.chat.copilotMemory.enabled 设置来启用 Copilot Memory 集成。
存储库所有者可以在 Repository Settings(存储库设置)> Copilot > Memory(记忆)中查看和删除存储的记忆。
有关详细的设置说明,请参阅 GitHub 文档中的 启用和管理 Copilot Memory。
记忆工具与 Copilot Memory 对比
| 记忆工具 | Copilot Memory | |
|---|---|---|
| 存储方式 | 本地(在您的机器上) | GitHub 托管(远程) |
| 范围 | 用户、存储库、会话 | 仅存储库 |
| 跨 Copilot 界面共享 | 否(仅限 VS Code) | 是(编码智能体、代码审查、CLI) |
| 创建方式 | 您或智能体在聊天期间 | Copilot 智能体自动创建 |
| 默认启用 | 是 | 否(需要手动选择) |
| 过期机制 | 手动管理 | 自动(28 天) |
这两个系统是互补的。使用本地记忆工具来存储个人偏好和 VS Code 中的会话特定上下文;使用 Copilot Memory 来存储能够让整个开发工作流中的所有 Copilot 智能体受益的存储库知识。
相关资源
- 智能体规划
- 智能体工具
- 启用和管理 Copilot Memory(GitHub 文档)
- 为 GitHub Copilot 构建智能记忆系统(GitHub 博客)