摘要: GitHub 在 2026 年 9 月 25 日宣布,Agentic Autofix 已能在启用 Copilot Memory 的仓库中读取既有项目记忆,并把成功的安全修复模式写回记忆。它让 Coding Agent 不再每次从零理解架构、测试命令和安全约束,而是把一次漏洞处置转化为可复用的仓库经验。不过,这并不等于漏洞可以无人审核地自动合并:Copilot Memory 与 Agentic Autofix 目前均处于 Public Preview,修复仍需经过 CodeQL 复扫、项目测试、人工审查和 PR Gate。本文面向开发者、安全团队与企业平台团队,完整说明功能边界、启用条件、落地步骤、治理策略和安全风险。
核心结论
Copilot Memory + Agentic Autofix 值得在已有 CodeQL、稳定 CI 和代码审查制度的仓库中试点。它最有价值的地方不是“自动写一段补丁”,而是把仓库特有的安全修复经验沉淀下来,供后续 Agentic Autofix、Copilot code review 和 Copilot cloud agent 复用。
- 变化已经发生: Agentic Autofix 会读取与当前告警相关的 Copilot Memory,并在形成修复后保存可复用的修复模式。
- 不是自动合并: Agent 会探索代码、生成修改、运行验证并创建 PR,但是否合并仍应由分支保护、测试和人工审批决定。
- 适合成熟仓库: 已启用 CodeQL、拥有可靠测试和明确安全规范的项目收益最大;缺少测试的旧系统应先补齐验证基线。
- 成本与资格不同: 普通 Copilot Autofix 生成单个建议时不要求 Copilot 订阅、也不消耗 AI credits;Agentic Autofix 需要 Copilot cloud agent 可用,并按 Agent 会话消耗 AI credits。
- 建议先小范围启用: 从中高置信度 CodeQL 告警和非关键仓库开始,建立 Memory 审核、PR Gate、回滚与审计后再扩大范围。
这次更新到底改变了什么?
GitHub 官方更新说明非常明确:当客户启用 Copilot Memory 后,Agentic Autofix 会在处理安全告警时查看现有记忆,寻找能够帮助修复的项目上下文;完成修复后,还会把该修复模式存为记忆,供未来的安全告警及其他 Copilot 功能使用。
过去,一条 CodeQL 告警通常经历“检测—解释—建议代码”流程。Agentic Autofix 已经比单次建议更进一步:它启动 Copilot cloud agent 会话,探索受影响文件之外的代码,生成修复,重新运行 CodeQL 等验证并迭代,最终创建 Pull Request。接入 Memory 后,这条流程增加了跨任务经验:Agent 可以知道本仓库使用哪个输入校验器、哪些配置必须同步修改、测试命令如何运行、数据库访问应该走哪一层封装。
但要注意三个边界。第一,两项能力仍是 Public Preview,行为和策略入口可能变化;第二,Memory 不是传统意义上的完整知识库,而是仓库事实与用户偏好的受控集合;第三,记忆提高的是上下文连续性,不能保证每次修复都正确。
| 对比项 | Copilot Autofix | Agentic Autofix | Agentic Autofix + Memory |
|---|---|---|---|
| 主要输出 | 单个建议修复 | Agent 修改并创建 PR | 基于历史项目经验修改并创建 PR |
| 代码探索范围 | 围绕告警上下文 | 可探索更广代码库 | 探索代码并读取相关仓库记忆 |
| 验证方式 | 开发者自行测试 | 可重新运行 CodeQL 并迭代 | 同左,并复用已知测试/修复模式 |
| 经验复用 | 单次建议为主 | 当前会话内迭代 | 修复模式可写回 Memory |
| Copilot 订阅 | 普通建议无需 Copilot 订阅 | 需要 cloud agent 可用 | 还需启用 Copilot Memory |
| AI credits | 普通建议不消耗 | 每个 Agent 会话消耗 | 每个 Agent 会话消耗 |
| 当前状态 | CodeQL Autofix 已可用 | Public Preview | Public Preview |
| 合并责任 | 人工审查 | PR 审查与策略 Gate | PR 审查、Memory 治理与策略 Gate |
Copilot Memory 保存什么,又不会保存什么?
Copilot Memory 目前包含两类信息。
仓库级事实
仓库级事实可以是编码约定、架构决策、构建命令和项目规则。GitHub 文档说明,这些事实带有指向代码依据的引用;当 Copilot 准备使用某条事实时,会在当前分支重新检查引用,只有通过验证的事实才会被使用。仓库事实仅用于同一仓库,并向有权在该仓库使用 Copilot Memory 的用户提供。
安全修复中有价值的仓库事实可能包括:
- 所有 SQL 查询必须使用项目的参数绑定封装;
- HTML 输出统一经过某个编码函数;
- 身份验证中间件只能在指定包中调用;
- 修改数据库 Schema 时必须同步迁移与回滚脚本;
- 安全测试使用特定命令和测试夹具;
- 某些配置文件必须成对更新。
用户级偏好
用户级偏好描述个人与 Copilot 交互的偏好,可跨仓库用于该用户自己的 Copilot 交互。Copilot code review 目前只使用仓库级事实,不使用用户级偏好;Copilot CLI 则可以应用发起操作用户的偏好。
Memory 不应被理解为保存整个仓库副本,也不应存入 Token、密码、客户数据、未公开漏洞细节或临时调试信息。管理员和仓库所有者需要定期查看、删除错误或过期记忆。关闭仓库级 Memory 后,已有仓库事实不会自动删除,因此停用与清理应作为两个独立动作。

Agentic Autofix 如何完成一次漏洞修复?
普通 Copilot Autofix 将 CodeQL 告警说明、位置、相关代码片段与查询帮助交给模型,生成潜在代码修改和解释。Agentic Autofix 则把“生成建议”扩展为一个可调用工具的 Agent 会话。
官方文档描述的核心流程是:把 code scanning alert 分配给 Copilot;Copilot cloud agent 探索受影响文件之外的代码,生成修改,通过重新运行 CodeQL 等方式验证,并迭代到能够打开 Pull Request。启用 Memory 后,Agent 在探索前后可以利用仓库已经验证过的事实,并把有复用价值的修复模式沉淀下来。
这带来三类实际收益:
- 减少重复解释。 团队无需在每条告警中重复说明构建命令、目录结构与安全封装。
- 提高一致性。 同类输入校验、编码、权限检查更可能采用仓库已有模式,而不是每次创造新实现。
- 跨功能复用。 Agentic Autofix 学到的模式可以帮助代码审查和 cloud agent 识别未来的不一致代码。
同时也带来新的风险:如果某条记忆错误、过时或来自一次不理想的修复,错误模式可能影响后续多个 Agent 功能。因此,Memory 应被当作“可审计的策略上下文”,而不是不可见的模型直觉。
启用前需要满足哪些条件?
正式试点前,建议先核对以下条件:
- 仓库已启用 GitHub Code Security 与 CodeQL code scanning,或属于支持 Copilot Autofix 的公开仓库范围;
- Copilot cloud agent 在该仓库可用,组织或企业没有通过策略禁止相关 Preview 功能;
- Copilot Memory 已在账户、组织/企业和仓库层级允许;
- 默认分支受保护,合并需要状态检查和代码审查;
- 项目拥有可重复执行的构建、单元测试、集成测试和安全测试;
- GitHub Actions 使用最小权限,第三方 Action 固定到经审核版本;
- 团队明确谁负责审核 Memory、谁可以删除以及谁审批安全修复 PR。
Copilot Memory 当前面向所有付费 Copilot 计划提供,但仍处于 Public Preview。Agentic Autofix 还要求 Copilot cloud agent 可用;普通 Copilot Autofix 的单次建议则不要求 Copilot 订阅。企业应以自己控制台显示的授权、策略和账单为准,不要把不同功能的资格条件混为一谈。
完整启用与验证步骤
下面是一套适合企业试点的实施顺序。GitHub 界面名称可能随 Preview 更新而变化,具体以仓库与组织设置页为准。
- 选择试点仓库。 优先选择测试完备、依赖清晰、非生产关键且已有 CodeQL 告警的仓库。
- 确认组织策略。 管理员检查 Copilot cloud agent、Copilot Memory、Code Security 和 Preview 功能是否被允许。
- 启用 CodeQL。 使用默认设置或高级配置运行 code scanning,确认默认分支与 Pull Request 均会扫描。
- 启用并检查 Memory。 在个人、组织或仓库 Copilot 设置中确认 Memory 状态;仓库所有者查看已有事实,删除错误、敏感或过期内容。
- 建立 PR Gate。 要求 CodeQL、单元测试、集成测试、依赖检查和人工审批全部通过后才能合并。
- 挑选第一条告警。 从路径清楚、修复影响较小、默认查询套件可验证的 CodeQL 告警开始。
- 将告警分配给 Copilot。 观察 Agent 会话是否读取项目约定、修改合理文件、运行预期测试并创建 PR。
- 审查补丁与记忆影响。 既审查代码 Diff,也检查修复是否引入错误的通用模式、权限扩大或新的外部依赖。
- 执行独立验证。 除 Agent 自己运行的检查外,再执行团队 CI、安全测试和必要的人工攻击用例。
- 合并或回退。 通过后由授权人员合并;不通过则关闭 PR、撤销分支,并删除或纠正由错误修复产生的 Memory。
- 记录指标。 统计告警到 PR 时间、一次通过率、人工修改量、回退率、误修类型和 AI credits 消耗。
- 逐步扩大。 只有当试点数据证明质量稳定时,才扩展到更多语言、仓库与高风险告警。
推荐的仓库策略与指令模板
Memory 不应代替版本化的仓库规则。安全红线、构建命令、验证要求和禁止操作仍应写进仓库自定义指令并接受代码审查。Memory 适合补充动态学到的事实,而不是取代正式政策。
下面是一个概念性模板,可放入团队采用的 Copilot 自定义指令文件中;具体文件路径应按当前 GitHub 文档与客户端支持情况配置:
## Security fix policy
- Never weaken authentication, authorization, CSRF, encryption, or audit logging.
- Reuse the repository's existing validation and output-encoding helpers.
- Do not add a new dependency unless the PR explains why existing libraries are insufficient.
- Run: `npm test`, `npm run test:security`, and the configured CodeQL workflow.
- Treat generated files and migration files as linked changes.
- Never expose `YOUR_TOKEN`, production data, or secrets in logs and tests.
- For schema, permission, payment, or account changes, request human approval.
- Open a PR; never merge or deploy automatically.
建议同时设置 GitHub Actions 最小权限与超时:
name: security-fix-gate
on:
pull_request:
permissions:
contents: read
security-events: read
jobs:
verify:
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@YOUR_REVIEWED_COMMIT_SHA
with:
persist-credentials: false
- run: npm ci --ignore-scripts
- run: npm test
- run: npm run test:security
YOUR_REVIEWED_COMMIT_SHA 是占位符,生产环境应替换为已审核 Action 的完整 Commit SHA。对于偶发失败,只允许有限次数重试;数据库、发布、付款和权限修改等非幂等步骤不得自动重试。
从“单次修复”到“经验闭环”的工作流

理想闭环可以概括为:CodeQL 发现告警,安全人员确认优先级,将告警分配给 Copilot;Agent 读取相关 Memory 与仓库指令,探索数据流和项目封装,生成补丁并运行 CodeQL、测试与静态检查;系统创建 PR,由开发者和安全人员审查;合并后,验证通过的项目安全模式被后续任务复用。
这里最重要的控制点有四个:
- 告警入口要可信。 第三方 SARIF、定制查询或误报不应直接触发高权限 Agent。
- 执行环境要隔离。 Agent 不应默认拥有生产凭据、部署权限或任意公网访问。
- 验证结果要独立。 Agent 运行了测试不代表测试充分,受保护分支应重新运行可信 CI。
- 经验回写要可治理。 记忆必须可查看、删除和关闭,关键规则仍应保存在版本控制中。
Agentic Autofix 的限制与容易误解的地方
并非所有告警都能被可靠验证
GitHub 官方说明,Agentic Autofix 以尽力而为方式工作。它通过 code-scanning query suite 重新运行 CodeQL 来验证修复,因此无法确认自定义查询或 security-extended 查询套件产生的全部告警;对第三方工具告警的修复质量也没有保证。
记住经验不代表理解业务意图
Memory 可以记录“项目通常如何修”,但无法替代业务负责人判断。例如权限检查的技术实现可能正确,却改变了合法用户的访问流程;输入过滤可能消除告警,却破坏国际化或富文本需求。
Preview 功能存在变化风险
策略名称、入口、功能覆盖和账单规则可能变化。企业应记录启用日期、功能状态与负责人,并在扩大部署前重新核对官方文档。
上下文仍然有限
大型单体仓库、生成代码、跨仓库调用和复杂基础设施可能超出一次 Agent 会话可可靠理解的范围。应通过测试、架构文档、自定义指令和较小任务边界降低风险。
AI credits 需要预算控制
每个 Agentic Autofix 会话作为 Copilot cloud agent 会话计费并消耗 AI credits。团队需要设置试点范围、并发限制、超时与月度预算告警。官方未在本次更新中给出统一的单次修复成本,具体以当前计划、控制台和计费文档为准。
安全、隐私与权限治理建议
GitHub 表示,Copilot Autofix 处理的数据不用于大模型训练;但企业仍需按照自身数据分类、区域要求和合同条款评估源代码处理。Memory 还增加了持久化上下文,因此要特别关注“什么可以被记住”。
建议实施以下治理:
- 禁止在 Memory 中保存 Secrets、客户数据、生产连接串和未公开漏洞利用细节;
- 仓库事实只能由具备写权限且启用 Memory 的用户活动触发创建,但仍要定期人工抽查;
- 管理员明确仓库事实与个人偏好的可见范围,离职、转组和仓库归档时执行清理;
- 对来自 Issue、README、测试日志和第三方依赖的内容防范 Prompt Injection;
- Agent 运行环境使用最小权限 Token,限制网络、Secrets 和工作流权限;
- PR 必须显示完整 Diff、测试证据、告警链接和回滚方案;
- 高风险修改要求两人审批或安全团队审批,禁止 Agent 自动合并;
- 保存 Agent 会话、Memory 变更、PR 审核和最终处置的审计记录。
关闭仓库级 Memory 只会停止读取和新增仓库事实,不会自动删除已有事实,用户级偏好也不受影响。需要彻底停用时,应同时执行关闭、删除和审计确认。
企业应该如何评估是否值得推广?
不要只看“修复了多少条告警”。建议至少跟踪以下指标:
| 指标 | 计算方式 | 观察重点 |
|---|---|---|
| 告警到 PR 时间 | 创建 PR 时间减告警分配时间 | 是否真正缩短等待 |
| 一次验证通过率 | 首次 CI 全绿 PR / 总 PR | Memory 是否提高一致性 |
| 人工修改比例 | 人工追加 Diff / 最终 Diff | 补丁离可用还有多远 |
| 回退率 | 合并后回退数 / 合并数 | 是否出现隐藏行为变化 |
| 同类漏洞复发率 | 同模式新告警 / 已修复告警 | 修复经验是否有效传播 |
| 错误记忆数量 | 删除或纠正记忆数 | Memory 治理是否健康 |
| AI credits/有效修复 | 总 credits / 最终有效修复数 | 成本是否可接受 |
如果速度上升但回退率、人工修改量或错误记忆持续偏高,应缩小适用范围,而不是继续扩大自动化。
与 Custom Instructions、知识库有什么区别?
Custom Instructions 是团队主动编写、版本化维护的明确规则,适合安全红线、构建命令和架构约束;Copilot Memory 是 Agent 在用户发起的活动中形成的仓库事实或个人偏好,更适合不断积累的项目细节;外部知识库或 MCP 则适合组织级规范、跨仓库知识和实时系统信息。
三者不是替代关系。推荐组合是:用 Custom Instructions 定义不可变安全规则,用 Memory 保存带代码引用的仓库经验,用受控 MCP 或知识库提供跨系统资料。更多 Agent 记忆方案可查看 AI Stack Nav:Agent Memory 专题,企业代码安全与审批方案可查看 AI Stack Nav:Coding Agent 安全专题。
FAQ
Copilot Memory 与 Agentic Autofix 已经正式 GA 了吗?
没有。GitHub 在 2026 年 9 月 25 日的更新中明确说明,两项能力都处于 Public Preview,可能继续调整。企业应先试点并保留回退方案。
Copilot Autofix 和 Agentic Autofix 是同一个功能吗?
不是。普通 Copilot Autofix 为单条 code scanning 告警生成一个建议修复,由开发者审查和应用;Agentic Autofix 启动 cloud agent 会话,探索更多代码、调用工具验证、迭代并创建 PR。
使用普通 Copilot Autofix 必须购买 Copilot 吗?
GitHub 文档说明,普通 Copilot Autofix 不要求 GitHub Copilot 订阅,也不消耗 AI credits。它适用于 GitHub.com 公共仓库,以及启用 GitHub Code Security 的合格组织仓库。Agentic Autofix 的条件不同。
Agentic Autofix 会自动合并修复 PR 吗?
文章讨论的官方流程是 Agent 创建 PR,并不意味着应该自动合并。企业应使用分支保护、必需状态检查、代码所有者和人工审批控制合并。
Memory 会跨仓库泄露项目事实吗?
GitHub 文档称仓库级事实只用于同一仓库。用户级偏好可以跨仓库用于该用户自己的交互,两类范围不同,管理员应分别治理。
关闭 Copilot Memory 会删除已有记忆吗?
不会自动删除。GitHub 的仓库级关闭开关会停止存储和读取仓库事实,但已有事实仍然存在,用户级偏好也不受影响;需要另行审查和删除。
Agentic Autofix 能修复第三方扫描器的所有告警吗?
不能保证。官方说明它对第三方工具告警的修复质量没有保证,而且基于默认 code-scanning query suite 的复验无法确认所有自定义或扩展查询告警。
Memory 可以替代仓库中的 Copilot 指令文件吗?
不建议。安全红线、测试命令和审批要求应继续版本化保存。Memory 适合补充动态项目事实,而不是成为唯一的治理来源。
什么仓库最适合首先试点?
最适合的是已有 CodeQL、测试可靠、分支保护完善、告警类型清晰且非生产关键的仓库。缺少自动化测试或含大量隐式业务规则的旧系统应谨慎启用。
事实依据与来源
- 官方事实: GitHub 于 2026 年 9 月 25 日宣布 Agentic Autofix 在启用后会读取 Copilot Memory,并把修复模式保存为未来可用的记忆。
- 官方事实: Copilot Memory 保存仓库级事实和用户级偏好;仓库事实带有代码引用,使用前会针对当前分支验证。
- 官方事实: Copilot Memory 当前被 cloud agent、code review、Copilot CLI 和 agentic autofix 使用,且处于 Public Preview。
- 官方事实: 普通 Copilot Autofix 生成单个建议,不要求 Copilot 订阅、不消耗 AI credits;Agentic Autofix 需要 cloud agent,并按 Agent 会话消耗 AI credits。
- 官方限制: Agentic Autofix 采用尽力而为方式,对自定义查询、security-extended 查询和第三方工具告警的验证能力有限。
- 实施建议: 本文提出的双人审批、Memory 审查、预算指标和分阶段试点属于编辑实施建议,并非 GitHub 强制要求。
- 尚需实测: 不同语言、单体仓库、私有依赖和企业 CI 环境中的修复成功率,需要在实际项目中验证。
参考来源
- GitHub Changelog:Agentic autofix now uses Copilot Memory
- GitHub Docs:About GitHub Copilot Memory
- GitHub Docs:Managing Copilot Memory
- GitHub Docs:About autofix for code scanning
- GitHub Docs:Responsible use of security and quality AI features
- GitHub Docs:Reducing security debt with GitHub Copilot
- GitHub Changelog:Copilot Memory controls for deletion and scope
内容核验日期:2026 年 9 月 25 日
工具选型与提示词资料
适合阅读工具评测、工具推荐、对比测评类文章后继续转化。