核心论点:前面多篇(规则即代码 → 精准输入 → Plan 模式 → Agent 流水线 → Skills → 权限管控)讲的都是在 IDE 里"人在屏幕前"用 AI 编码。但当 AI Agent 跑在 CI 流水线里、没人盯屏时,方法论需要一套完全不同的设计——把人的判断力编码成流水线的检查点。


从 IDE 到 CI:问题的本质变了

回顾前面多篇文章建立的工作流:

IDE 模式(人在回路):
  你提需求 → AI 出方案 → 你审核 → AI 写代码 → 你 review diff → Accept

CI 模式(人在睡觉):
  PR 触发 → AI 自动审查 → AI 自动补测试 → AI 跑评估 → 输出报告

在 IDE 里,所有 AI 的产出都要过你的眼睛——你是最后一道防线。但在 CI 里,AI 做判断、AI 改代码、AI 决定"通过/不通过"——你没有机会逐行审查

这不是"要不要用 AI"的问题——如果你的团队已经在用 AI 写代码,PR Review 阶段大概率已经有 AI 生成的代码在里面了。问题是:谁来 review AI 写的代码?如果是另一个 AI——它凭什么比写代码的那个 AI 更可靠?


核心设计原则:流水线里没有"人",但要有人的判断力

Shop-Agent 项目把人的判断力编码成三条规则,跑在 CI 里:

规则 1:AI 只能提建议,不能直接合入代码
规则 2:AI 的判断必须有"证据"——不能只输出"看起来没问题"
规则 3:同一个 AI 不能既写代码又审查代码(角色隔离)

这三条规则贯穿 CI 流水线的三个关卡。


关卡 1:自动 PR Review——AI 的审查不可替代,但必须可验证

为什么需要 AI 做 PR Review

人类 reviewer 容易疲劳漏掉"规范一致性"和"性能模式匹配"——命名规范、重复代码、N+1 查询这类问题每次 PR 都该查,但每次都要人逐行比对,效率低,容易遗漏。AI review 的优势恰好在此:它读完了全部 rules 和组件清单,不会漏、不会烦。

但 AI review 不懂业务逻辑——它看不出这段代码在业务流程里是对是错。所以 AI review 的定位是辅助而非替代:把规范检查交给 AI,把业务判断留给人。

怎么配置

核心就两步——跑 code-reviewer Agent,把结果贴到 PR comment。在 GitHub Actions 的 PR workflow 中加入:

cbc --agent code-reviewer \
    --permission-mode acceptEdits \
    --prompt "Review this PR diff:
      $(git diff origin/main...HEAD)
      输出审查报告,分「严重问题」和「建议改进」两栏"

然后用 github-script 把输出的 review-report.md 贴到 PR comment 即可。

必须做的三件事

  • AI 只评论,不合入——Comment 到 PR,不自动 Approve
  • 输出分级——“严重问题” vs “建议改进”,给人明确的优先级
  • 每次 PR 都跑——一致性 > 单次准确性

关卡 2:自动补测试——覆盖率驱动的闭环

PR review 发现问题后,一个常见的瓶颈是:人改完代码,测试没跟上

Shop-Agent 的做法:pytest 跑完覆盖率之后,如果低于 80% 阈值,用 cbc --agent test-generator 把覆盖率 JSON 喂给 AI,让它建议缺失的测试——但只输出建议,不改代码。

关键设计:不是在 CI 里修代码,而是在 CI 里"标记"

为什么不在 CI 里自动合入 AI 写的测试:AI 生成的测试可能 mock 错了对象、断言了错误的假设。测试代码比功能代码更需要人审——因为测试的 bug 比功能的 bug 更难发现(测试过了不代表逻辑对)。


关卡 3:安全门禁——无人值守的最后防线

关卡 1 和 2 是在 CI 里"跑 AI",关卡 3 是在 CI 里"限 AI"。IDE 里你做 rm -rf / 会被自己拦住,CI Runner 的权限可能更大——沙箱是唯一硬防线。

《权限管控》篇讲了 deny/allow/ask 权限模型。CI 环境需要比 IDE 更严格:deny Edit(.github/**) 防止 AI 改 CI 配置,deny Edit(.env*) / Read(.env*) 防止碰密钥,deny Bash(curl:*) / Bash(wget:*) 禁止外部下载,外加 Sandbox 网络白名单只放行 pypi.org。

CI 沙箱比本地沙箱更关键

本地你做 rm -rf / 会被你自己拦住。CI 里 AI 跑在一个可能比本地权限更大的 Runner 上——沙箱是唯一硬防线。


定时任务:把 AI 放进 Cron

三个关卡覆盖了 PR 触发流程,但有些事不跟着 PR 走——技术债扫描、Agent 评估跑分,这些适合按日历触发。《Skills 与 Automation》篇讲的 Automation 在这里有了新用途:

每周一:AI 驱动的技术债扫描

Cron 每周一触发,跑同一个 code-reviewer Agent,但检查维度不同——重复代码、未使用导入、异常处理不一致、缺少类型注解、超期 TODO/FIXME——输出 Markdown 报告,不改代码。

每日:Ragas 评估指标跑分

跑完 Ragas 评估脚本后,用 cbc --agent performance-optimizer 对比昨日指标,输出降幅最大的维度和修复建议。


三个常见误区

误区 1:在 CI 里让 AI 自动修代码

❌ CI → AI 发现规范问题 → AI 自动改 → 推新 commit → 再触发 CI → ...
   → 无限循环,或者改出你不想看到的东西

✅ CI → AI 发现规范问题 → 输出 Comment "建议把这里的 except: pass
   改成 logger.warning" → 人决定是否修

误区 2:AI 自动 Approve PR

❌ AI review 通过 → 自动 merge
   → AI 不懂业务逻辑,通过了不代表没有逻辑 bug

✅ AI review 通过 → 输出报告 → 人看报告 + 人看业务 → 人 merge
   → AI 辅助人,不是替代人

误区 3:CI 里的 AI 和 IDE 里的 AI 用同一套权限

❌ CI 里 allow 了 Bash(git:*) → AI 可以 force push
   CI 里 allow 了 Edit(*) → AI 可以改 CI 配置

✅ CI 环境单独配 .codebuddy/settings.ci.json
   deny 一切危险操作,只 allow 必要的读写路径

投入顺序

阶段 做什么 耗时 效果
本周 给 PR 加 AI review comment 30 分钟 每次 PR 有自动规范检查
下周 加 CI 环境 deny 配置 15 分钟 防止 CI 中 AI 误操作
本月 加覆盖率驱动的自动补测试建议 1 小时 覆盖率稳步上升
持续 定时任务(技术债扫描 + 评估) 每次 30 分钟 持续监控代码质量

核心要点

  • CI 里的 AI 不能自动合入代码。 产出应该是报告和建议,最终决策权永远在人。
  • CI 环境需要单独的权限配置——比 IDE 更严格。deny 所有危险操作,只 allow 必要的路径。
  • AI review 的优势在"一致性"——人类 reviewer 会疲劳,AI 每次都检查同一条规范。把规范检查交给 AI,把业务判断留给人。
  • 同一个 AI 不能既写代码又审查代码(角色隔离)——PR 里的代码可能是 AI 写的,但 review 它的必须是独立的 Agent 调用。
  • AI 补测试的价值是"建议"而不是"直接合入"——测试的 bug 比功能的 bug 更难发现,AI 生成的测试必须经过人的二次确认。
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐