注意
此功能目前处于公共预览阶段,可能会有所更改。
简介
作为开发者,当您开始处理已有的代码库——例如作为开发团队的新成员时,您可以阅读该仓库的 README、编码规范文档以及其他信息,以帮助您了解仓库以及在更新或添加代码时应如何工作。这有助于您提交高质量的拉取请求。然而,随着您对代码库的持续工作和深入了解,您能够交付的工作质量会稳步提升。同样地,允许 Copilot 构建对您仓库的自主理解,您便可以让它随时间变得越来越高效。
Copilot 可以通过存储“记忆”来形成对仓库的持久理解。
记忆是关于仓库的严格范围信息片段,由 Copilot 在处理仓库时推断得出。记忆是
- 特定于仓库的。
- 仅在已启用 Copilot 记忆的用户发起的 Copilot 活动响应中创建。
Copilot 的一个组件创建的记忆可以被另一个组件使用。例如,如果 Copilot 云代理发现了您的仓库如何处理数据库连接,Copilot 代码审查后续可以利用此知识在审查的拉取请求中发现不一致的模式。同样地,如果 Copilot 代码审查了解到两个独立文件中的设置必须保持同步,那么 Copilot 云代理将在修改其中一个文件的设置时知道必须相应地更新另一个文件。
使用 Copilot 记忆的好处
无状态且在不同的人机交互之间不保留对代码库理解的 AI,需要您在提示中反复解释编码规范和特定代码的关键细节,或者创建详细的自定义指令文件并进行维护。
Copilot 记忆
- 减少在提示中重复提供相同细节的负担。
- 降低对自定义指令文件进行定期手动维护的需求。
通过构建和维护持久的、仓库级别的记忆,Copilot 会形成对您的代码库的自主知识,适应您的编码需求,并随时间提升其提供的价值。
Copilot 记忆在哪里使用?
目前,Copilot 记忆被 Copilot 云代理和 Copilot 代码审查在 GitHub 网站上处理拉取请求时使用,同时也被 Copilot CLI 使用。只有在为发起 Copilot 操作的用户启用了 Copilot 记忆时,才会创建和使用记忆。
代理记忆将在未来的发布中扩展到 Copilot 的其他部分,以及个人和组织范围。
记忆如何被存储、保留和使用
Copilot 生成的每条记忆都带有引用。这些引用指向支持该记忆的特定代码位置。当 Copilot 发现与其正在进行的工作相关的记忆时,会将引用与当前代码库进行比对,以验证信息仍然准确且与当前分支相关。仅在验证成功后才使用该记忆。
为避免保留陈旧记忆导致过时信息影响 Copilot 的决策,记忆会在 28 天后自动删除。
如果记忆被 Copilot 验证并使用,则可能会存储一条相同细节的新记忆,从而延长该记忆的寿命。
可以从已关闭但未合并的拉取请求中的代码创建记忆。但是,验证机制确保如果当前代码库没有支撑证据,这类记忆不会影响 Copilot 的行为。
Copilot 仅在对具有该仓库写入权限且已启用 Copilot 记忆的用户在仓库内执行的操作作出响应时创建记忆。记忆的范围是仓库级别,而非用户级别,因此存储于仓库的所有记忆可供任何拥有该仓库 Copilot 记忆访问权限的用户发起的 Copilot 操作使用。存储于仓库的记忆只能在同一仓库的 Copilot 操作中使用。通过这种方式,Copilot 对仓库的学习内容始终局限于该仓库,确保隐私和安全。
如果您是使用 Copilot 记忆的仓库所有者,您可以查看并手动删除该仓库的记忆。请参阅 管理和策划 Copilot 记忆。
关于启用 Copilot 记忆
Copilot 记忆的使用权限是授予用户而非针对仓库启用的。为用户启用 Copilot 记忆后,Copilot 能够在该用户使用 GitHub Copilot 的任何仓库中使用代理记忆。
对于拥有 Copilot Pro 或 Copilot Pro+ 个人订阅的用户,Copilot 记忆默认启用。这些用户可以在 GitHub 上的个人 Copilot 设置中关闭 Copilot 记忆。
对于企业和组织管理的 Copilot 订阅,Copilot 记忆默认关闭,可在企业或组织设置中启用。当在企业或组织层面启用后,所有从该组织获得 Copilot 订阅的成员都可以使用 Copilot 记忆。
欲了解更多信息,请参阅 管理和策划 Copilot 记忆。