Appearance
Copilot Memory 让 AI 在使用过程中逐渐积累对代码库的理解,把关键规范和约定存储为持久化的"记忆",在未来的任务中自动参考。本页介绍 Memory 的工作原理、存储机制、自动过期规则和启用方式。
GitHub Copilot Memory:让 AI 记住你的代码库规范
为什么需要 Memory
每次启动新的 Copilot 对话,AI 都是"空白状态"——不记得你上次告诉它的项目架构、不记得你说过"错误处理用 Result 模式"。
传统方案是把这些写进 .github/copilot-instructions.md,但这需要人工维护,而且写得越详细,每次对话消耗的 token 越多。
Copilot Memory 的不同之处:Copilot 在工作过程中主动学习,把发现的项目规范和约定自动记录下来,下次处理相同仓库的任务时直接参考,无需每次重复说明。
注意:Copilot Memory 目前处于公开预览阶段。
记忆如何生成
记忆是 Copilot 在工作过程中推断出来的,而不是从文档里直接复制的。例如:
- Cloud Agent 处理了几个 PR 之后,发现这个项目总是用
async/await而不是 Promise 链,就会生成一条关于异步风格的记忆 - Code Review 功能多次指出同类问题后,会生成一条提醒
关键约束:
- 只有有写权限且启用了 Copilot Memory 的用户,才能触发记忆生成
- 记忆是仓库级别的,不属于某个用户,整个团队共享
- 记忆不会跨仓库传播
记忆如何存储和验证
每条记忆都附带一个引用,指向代码库中的具体代码位置。在使用前,Copilot 会验证该引用是否仍然有效:
- 引用有效(代码未删除/修改)→ 使用该记忆
- 引用失效(代码已删除)→ 该记忆不会被使用,最终自动删除
这个验证机制确保记忆始终基于当前实际存在的代码,不会产生"记得一个已经被删掉的规范"的问题。
自动过期机制
| 场景 | 处理方式 |
|---|---|
| 28 天内没有被使用 | 自动删除 |
| 28 天内被使用过 | 有效期延长(重置为 28 天) |
| 对应代码被删除 | 引用失效,下次使用前被过滤 |
| PR 关闭后生成的记忆 | 仍然保留,但如果对应代码已移除则会被过滤 |
记忆在哪些功能中生效
| 功能 | Memory 支持 |
|---|---|
| Cloud Agent | ✅ 生成 + 使用记忆 |
| Code Review | ✅ 生成 + 使用记忆 |
| Copilot CLI | ✅ 使用记忆(启用后) |
| IDE Chat | 暂未支持(在路线图上) |
| Inline Suggestions | 暂未支持 |
如何启用
个人用户(Pro/Pro+):Memory 默认已开启,可以在个人 Copilot 设置中关闭。
组织/企业用户:默认关闭,需要管理员在组织 Copilot 设置中为成员开启。
管理记忆内容
仓库 Owner 可以查看和删除已生成的记忆:
- 在仓库设置 → Copilot → Memory 中查看列表
- 对不准确或过时的记忆手动删除
普通贡献者无法看到记忆列表,但其 Copilot 行为会受到记忆影响。
和 .github/copilot-instructions.md 的区别
| 特性 | Copilot Memory | copilot-instructions.md |
|---|---|---|
| 生成方式 | AI 自动推断 | 人工编写 |
| 维护成本 | 低(自动管理) | 高(需手动更新) |
| 精确度 | 依赖 AI 推断 | 取决于你写得多好 |
| token 消耗 | 按需加载相关记忆 | 每次对话全部加载 |
| 共享范围 | 仓库级 | 仓库级 |
两者互补:copilot-instructions.md 负责稳定的核心规范,Memory 负责 AI 在实际工作中积累的经验性知识。
常见问题
Q: 如果 Memory 记住了错误的规范怎么办?
A: 可以在仓库 Copilot Memory 设置里手动删除错误的记忆,也可以通过 .github/copilot-instructions.md 写明正确规范来纠正方向。
Q: Memory 会记住用户的个人对话内容吗?
A: 不会。Memory 只记录与仓库代码相关的技术规范,不记录对话内容、个人偏好或任何敏感信息。
Q: 团队新人加入后,Copilot 会用 Memory 里的规范帮助他们吗?
A: 会。记忆是仓库级的,团队所有成员(包括新加入的)都会受到记忆的影响,帮助他们更快理解项目规范。