07 · Cloud Agent 到 PR 的闭环
解释 Cloud Agent 如何从 prompt 或 issue 出发,研究仓库、建分支、改代码、给出 diff 并进入 PR 审查。
Cloud Agent 最适合的不是你盯着屏幕等三分钟的小改,而是可以异步推进、最后回到 branch 和 PR 审查的仓库任务。GitHub 官方说明,Copilot cloud agent 能完成"研究仓库 → 制定实现计划(implementation plan)→ 在分支里改代码"这条链路,并在你准备好时创建 pull request。
本章目标:你会把 Cloud Agent 当成 GitHub PR 工作流的一部分使用,而不是当成一个“帮我自动写完”的黑箱。
1. PR 闭环
flowchart TD
Source["Issue / Prompt / Agents tab"] --> Research["Research repository"]
Research --> Plan["Implementation plan"]
Plan --> Branch["Agent branch"]
Branch --> Diff["Diff / commits / test output"]
Diff --> Iterate{"需要继续改?"}
Iterate -->|是| FollowUp["Follow-up prompt"]
FollowUp --> Branch
Iterate -->|否| PR["Create pull request"]
PR --> Review["Human review / checks"]
Review --> Merge{"通过?"}
Merge -->|是| Ship["Merge"]
Merge -->|否| More["Comment / request changes"]
More --> Branch
这个闭环里,Cloud Agent 的产物不是“回答”,而是可审查的 branch、commits、diff、checks 和 PR 讨论。
2. 两种启动方式
官方启动任务页有一个重要分工:
- Assign issue to Copilot(把 issue 直接指派给 Copilot):适合 issue 已经写清目标、范围和验收标准;Copilot 会基于 issue 标题、描述和已有 comments 工作,并创建 PR 或请求 review。
- Agents prompt / Agents tab(在 Agents 标签页里发起 prompt):适合任务还需要研究和迭代;默认先在 branch 上工作,你可以 review diff、继续追加 prompt,然后再决定是否创建 PR。
一个容易踩的坑:issue assignment 后新增到 issue 的 comments,Copilot 不一定自动看到。后续上下文要写到它创建的 PR 或 session 里。
3. Prompt 要像 issue spec
Cloud Agent prompt 不应该是“帮我优化一下”。它至少要包含四件事:
目标:
修复登录错误提示不清楚的问题。
范围:
只处理 Web 登录页和 auth 错误映射。
不要改:
认证协议、数据库 schema、billing、workflow。
验证:
运行 auth 相关测试,说明未覆盖风险。如果任务包含 UI 差异,可以附 screenshot 或 mockup。上传前要遮住账号、客户数据、token、内部 URL 和生产信息。
4. Research、Plan、Iterate
Cloud Agent 的高质量用法不是直接 PR,而是先 research、plan、branch iterate,再 PR。
Research 阶段:
- 让它列相关文件、测试、入口和不确定点。
- 明确“不要改代码”。
- 检查它是否读到了正确模块。
Plan 阶段:
- 看目标和非目标是否清楚。
- 看文件范围是否合理。
- 看测试命令是否真实存在。
- 看开放问题是否需要你回答。
Iterate 阶段:
- 审 branch diff。
- 要求撤销无关改动。
- 补测试或收窄范围。
- 准备好后再创建 PR。
5. 什么任务适合 Cloud Agent
适合:
- backlog 里的中低风险改进。
- 文档、测试、技术债、错误提示。
- 能通过 branch、CI、PR review 验收的小功能。
- 需要先读仓库再给方案的任务。
不适合:
- 本地未提交现场。
- 必须依赖本机登录态、私密 UI 或本地环境。
- 生产部署、数据迁移、权限调整。
- 没有测试和 review 路径的模糊需求。
Cloud Agent 在 GitHub Actions 驱动的临时开发环境中运行,但临时环境不等于没有风险。它仍然可能改 workflow、依赖、权限配置或业务逻辑。
6. 审查清单
PR 出来后,至少检查:
- 是否符合 issue 或 prompt 的范围。
- 是否新增依赖、workflow、权限或配置。
- 是否删除测试或跳过失败。
- commit 和 diff 是否可理解。
- checks 是否跑过并通过。
- Copilot 的说明是否和代码一致。
- 是否需要人工补充测试或回滚说明。
Cloud Agent 能提高异步吞吐,但不能替代代码负责人。
本章自检
你应该能回答:
- 这个任务应该 assign issue 直接 PR,还是先 prompt 到 branch 迭代?
- prompt 是否写清目标、范围、不可触碰内容和验证方式?
- PR 前是否已经审过 branch diff 和测试输出?
- 失败时能否关闭 PR 或人工接管分支?
通过标准:Cloud Agent 的每一步都能被 GitHub 对象追踪,而不是只靠自然语言总结。
官方来源
- About GitHub Copilot cloud agent:官方 cloud agent 能力、运行环境和适用边界。
- Kick off a task with Copilot agents on GitHub:官方任务启动入口、issue assignment 和 prompt 分工。
- Research, plan, and iterate on code changes with Copilot cloud agent:官方 research、plan、iterate、PR 流程。
- Responsible use of GitHub Copilot cloud agent:官方 responsible use 和安全边界。