指南 · 安全地让 AI 交付

AI 写的 PR,怎样才能放心让它自己合并

让 agent 开 PR 很容易;让它自己合并,需要一道不只看测试是否变绿的闸。这页按 Orbi 的实际工作流,拆开 AI 写的 PR 合并前要过的四道门。

为什么不能只说「CI 绿了,合并」

agent 可以开出一个测试通过、却漏掉验收细节的 PR。如果唯一的决定依据是绿色 CI,就没人核对 diff 是否满足 Issue、是否经过独立评审,也没人确认分支是不是基于最新代码。

真正安全的问题不是「agent 跑测试了吗」,而是「哪个精确、审过的 head 过了所有门」。

AI 的 PR 合并前要过四道门

规则来自 Orbi workflow;评审对照的是 Issue 里写的验收项:

  • 01 · 独立结论
    另开的评审会话给出 clean verdict

    结论绑定 PR 当前 head。verdict 里的 head 不是 PR head,就没有合并授权。

  • 02 · 最新 BASE
    审过的 head 包含最新 base

    审一个过时分支,不等于审现在要落地的代码;分支必须含最新 base branch。

  • 03 · CI 已结束
    CI 已经有结论

    CI 还在 pending,就等下一轮。检查仍在运行时,不能提前当成通过。

  • 04 · HEAD 未变化
    PR 可合并,远端 head 没变

    Orbi 读取 mergeability 和远端 head,然后只合刚刚核验过的那个 head。

一个真实 PR 被拦了两轮

Issue #1018 产生了 PR #1023,后来进入 v0.5.17。独立评审拦了两轮:第一轮发现发版顺序的补偿问题——tag 已发布时可能没有对应的 docs 页面;第二轮发现当前 head 的 CI diff coverage 门禁失败,因为新增的 promotion、resume、deduplication 和 tag-push compensation 分支没有覆盖。修复并通过 CI 后才进入发版。

门禁之所以有用,正因为「PR 存在」和「PR 变绿」都不够。

再看一个先拒绝、后合并的交付 →

保护规则不会被绕过

如果评审和检查都通过,但仓库策略仍阻止合并,Orbi 会停在 ai-awaiting-merge。Issue 评论会写明维护者要做的那一个动作;维护者改完策略或补上所需 approval 后,Orbi 继续合并指定的 PR head。

想先人工看一眼?

ai-human-review 是默认关闭的人工验收闸。打开后,由人确认交付的验收清单,独立评审和合并才继续。

合并结果仍然可识别

交付之后,release Issue 会冻结一个 SHA 并打 tag。这一页就讲到这里:重要的是,发出去的是一个已经标识、已经过门禁的结果,而不是 agent 还在变化的分支。

看看和 coding agent 的工作流对比 → · 查看公开证据 → · 用 Orbi Cloud 跑起来 →

自动化合并,不要自动化信任

只给 agent 一条这样的合并路径:独立评审、最新 base、CI 已结束、可合并且 head 未变化。AI 才能自己合并 PR,而不会让一个绿色 check 变成全部的安全故事。