Copilot 方案与代理模式详解 | AI生成和翻译
问题: 在使用 GitHub Copilot 时,我们可以使用 Plan Mode 或 Agent Mode 来帮助修复 Merge Conflicts 吗?请介绍一下 Plan Mode 并解释它与 Agent Mode 的区别。
回答:
GitHub Copilot: Plan Mode vs Agent Mode
是的 —— GitHub Copilot 中的 Plan Mode 和 Agent Mode 都可以辅助进行 Merge Conflict 的解决以及复杂的多文件修复。以下是详细的解析。
概述:双模式系统
GitHub 的双模式方法将“思考”与“执行”分离:一种模式负责起草一个具体的、可审计的计划;另一种模式则可靠地执行更改并对其进行验证。
Plan Mode 允许你在 Agent 开始编写代码之前审查并批准蓝图,而 Agent Mode 则通过分析代码、提议编辑、运行测试以及跨多个文件验证结果来帮助进行大规模的更改。
Plan Mode —— 它是什么
Plan Mode 负责创建、改进并执行循序渐进的实施计划。它会分析你的 Codebase,生成详细的执行计划,并在开始编写代码之前验证需求是否已被涵盖。
Plan 代理使你能够在开始实施之前创建详细的实施计划,以确保满足所有需求。通过 Todo Lists,由于代理可以确保它专注于总体目标并有效地跟踪进度。
如何在 VS Code 中激活 Plan Mode:
打开 Chat 视图(Ctrl+Alt+I),然后从代理下拉菜单中选择 Plan。或者,输入 /plan 后跟你的任务描述,即可切换到 Plan 代理并一步开始规划。
Planning 的内部工作原理:
当开发者要求 Copilot 执行复杂的、多步骤的任务时,它会决定是直接响应还是激活其 Planning Mode。简单的 Prompts 会得到快速回答,而多步骤的 Prompts 则会触发协调一致的计划。调用时,Planning 会创建一个 Markdown 文件,定义任务、研究步骤以及每个执行步骤开始时的进度更新。随着 Copilot 的工作,它会修订并完善计划 —— 以适应新的 Context 或结果。
用于 Merge Conflicts 的 Plan Mode:
当你希望首先审查解决策略以处理跨多个文件的冲突时,这是理想的选择 —— Copilot 会提议触及哪些文件、进行哪些更改以及按什么顺序进行,而你在任何代码更改之前进行批准。
Agent Mode —— 它是什么
Agent Mode 允许你交给 Copilot 一个高层次的 Prompt,然后观察它自主地规划步骤、选择正确的文件、运行 Tools 或 Terminal 命令,并对代码编辑进行迭代直至任务完成。它可以对整个项目进行推理,采取多步骤操作,并在整个 Session 中保留大量的 Context。
Agent Mode 不仅重写你指定的行,还会分析相关的代码,识别可能需要的额外更改,并在整个项目中应用它们以保持一致性。
Agent Mode 自动应用编辑,而不是在每一步都等待明确的批准,同时仍会将任何具有潜在风险的命令展示出来供运行前审查。
用于 Merge Conflicts 的 Agent Mode:
你用自然语言描述冲突解决目标,Copilot 会自主编辑所有受影响的文件,运行测试并进行迭代,直到任务完成 —— 且干扰极小。
核心区别:Plan Mode vs Agent Mode
| 维度 | Plan Mode | Agent Mode |
|---|---|---|
| 主要目的 | 先制定策略和蓝图 | 自主执行 |
| 人为控制 | 执行前由你批准计划 | 自动应用编辑;标记风险命令 |
| 代码何时更改 | 在你审查并批准计划后 | 立即且持续地 |
| 最适用场景 | 复杂、高风险或多团队任务 | 需求明确、需要快速执行的任务 |
| 输出 | 结构化的 Markdown 计划 + Todo List | 跨文件的实际代码更改 |
| 透明度 | 高 —— 你在每一步执行前都能看到 | 中等 —— 你看到结果,而非预先批准的步骤 |
| 理冲突用例 | 规划跨多个文件的冲突解决策略 | 一旦策略明确,自动修复冲突 |
它们如何协同工作(Merge Conflicts 推荐工作流)
最佳实践是按顺序同时使用两者:
- 先使用 Plan Mode —— 描述 Merge Conflict 的情况。Copilot 生成一个分步计划,展示哪些文件存在冲突以及如何解决它们。审查并编辑该计划。
- 后使用 Agent Mode —— 计划获批后,切换到 Agent Mode(或让 Copilot 执行该计划),它将在所有冲突文件中自动执行更改。
Plan Mode 在任何代码更改之前提供了一个清晰、可编辑的蓝图。Agent Mode 执行了多文件编辑、运行了测试并开启了 PR,速度比手动编写脚本还要快。两者结合使用,感觉就像一个可靠的 Co-pilot,而不仅仅是另一个工具。
何时使用哪种模式
当你希望对 Copilot 提议的编辑进行更细粒度的控制时,请使用 Edit/Plan Mode —— 例如,当你想要对定义的一组文件进行快速、特定的更新,或想要完全控制所使用的 LLM 请求数量时。当你心目中有特定任务并希望授权 Copilot 自主编辑代码时,请使用 Agent Mode —— 特别是当你的任务很复杂且涉及多个步骤、迭代和错误处理时。
可用性
JetBrains、Eclipse、Xcode 和 VS Code Insiders 在企业、组织和用户级别均支持 Plan Mode 遥测。预计 VS Code 稳定版很快将正式发布。
截至 2026 年 3 月,Agent Mode 已在 VS Code 和 JetBrains 上正式发布(General Availability) —— 这是一个重要的里程碑,因为此前它仅限于 VS Code。
参考文献:
- GitHub Copilot Features — GitHub Docs
- About GitHub Copilot Coding Agent
- Planning with Agents in VS Code
- Copilot Ask, Edit, and Agent Modes — GitHub Blog
- GitHub Copilot in VS Code Upgrade — GitHub Changelog
- Copilot Metrics Now Includes Plan Mode
- Plan Mode vs Agent Mode — Skywork AI
- Use Agent Mode — Microsoft Learn (Visual Studio)