注意
此功能目前为 公共预览版,可能会更改。
介绍
作为开发人员,当你开始处理现有代码库(可能是开发团队的新成员)时,你可以阅读存储库的自述文件、编码约定文档和其他信息,以帮助你了解存储库以及更新或添加代码时应如何工作。 这将帮助您提交高质量的拉取请求。 但是,随着您对代码库的处理和对其理解的加深,您能够交付的工作质量将稳步提高。 同样,通过允许 Copilot 自行构建对仓库的理解,你可以让其随时间变得越来越高效。
Copilot 可以通过存储“记忆”来持续了解存储库。
记忆是关于存储库的高度限定的信息片段,由 Copilot 在处理存储库时推断得出。 记忆包括:
- 特定于存储库。
- 仅在由已启用 Copilot内存 的用户发起的 Copilot 活动中创建。
Copilot 的某一部分创建的记忆可以被该产品的另一部分使用。 例如,如果 Copilot编程助理 发现了你的仓库如何处理数据库连接,Copilot代码审查 随后可以利用这些知识来发现其审查的拉取请求中的不一致模式。 同样,如果 Copilot代码审查 学会了必须在两个独立文件中保持同步的设置,那么 Copilot编程助理 就会知道,如果它修改其中一个文件的设置,必须相应地更新另一个文件。
使用 Copilot内存 的优势
AI 是无状态的,并且不保留对单独的人/AI 交互之间的代码库的理解,需要你反复解释有关提示中特定代码的编码约定和重要详细信息,或者创建详细的自定义说明文件,然后必须维护这些文件。
数据变量.copilot.copilot_memory %}:
- 减少反复在提示中提供相同详细信息的负担。
- 减少定期手动维护自定义指令文件的需求。
通过构建和维护持久的仓库级记忆,Copilot 可以形成对代码库的自身理解,适应你的编码要求,并随着时间提升其价值。
Copilot内存 在哪里使用?
当前,Copilot内存 被 Copilot编程助理 和 Copilot代码审查 在 GitHub 网站上处理拉取请求时使用,同时也被 Copilot 命令行界面(CLI) 使用。 仅当为发起 Copilot 操作的用户启用了 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订阅的用户,默认情况下启用Copilot内存。 这些用户可以在 GitHub 上的个人 Copilot 设置中禁用或重新启用 Copilot内存 。
对于企业和组织管理的Copilot 订阅,{Copilot内存默认情况下处于关闭状态,可以在企业或组织设置中启用。 在企业或组织级别启用时,Copilot内存 将对所有从该组织获得 Copilot 订阅的成员可用。
有关详细信息,请参阅“管理和整理 Copilot 内存”。