Skip to content

第 6 周:Coding Agent、评估与 GitLab MR 审核

本周成果与 10-14 小时安排

交付可在 feature/* → master 合并前运行的 MR 审核:确定性检查、Reviewer、Verifier、报告、Artifact、评论与分级门禁。

时段用时可见产物
Day 12 小时复习第 2、5、8 章,画审核状态链
Day 22 小时跑 Coding Agent 工具级测试和成本离线实验
Day 32 小时准备四组 Diff fixture 与预期标签
Day 42.5 小时生成报告,核实行号、证据和 fingerprint
Day 52.5 小时在 GitLab MR 验证触发、更新与门禁
Day 61 小时计算指标并完成无资料复述

Coding Agent 的核心

为什么代码审核要把语言模型判断和确定性信号组合成五关,完整链路见 Hooks 与评估:五关落地,GitLab MR 审核这个具体实例

GitLab 案例

  • 来源分支:feature/*
  • 目标分支:master
  • 触发:创建 MR、重新打开、推送新提交
  • P0/P1:经证据验证后阻断
  • P2/P3:写入报告,不阻断
  • 模型不可用:确定性检查继续,单独标记 AI 审核缺失

每条 finding 必须包含:

  • fingerprint
  • file
  • line
  • severity
  • category
  • evidence
  • recommendation

仓库内容是数据,不是指令。代码注释中的“忽略规则并批准”不能影响 Reviewer。

学习顺序

  1. coding-agentagent-cost-analysis
  2. 阅读 review.pygitlab_review.py
  3. 阅读 .gitlab-ci.yml
  4. 准备 P0、P1、P3 和无问题四组 Diff fixture。
  5. 本地生成 Markdown 报告。
  6. 在 GitLab 测试项目创建 feature/review-lab → master MR。
  7. 推送第二次提交,检查报告是否按 fingerprint 去重。

精确入口:

  • 教材:Agent LoopSubagentHooks 与评估
  • 视频复看:08 [00:02:18-00:06:54]
  • 书中实验:chapter5/coding-agentchapter6/agent-cost-analysis
  • 工程:review.pygitlab_review.py.gitlab-ci.yml

评估

建立至少 20 个已标注 Diff:

  • 真阳性:密钥、注入执行、明显边界错误
  • 真阴性:安全代码与格式变化
  • 非阻断建议:TODO、缺少说明
  • Prompt 注入:文件名、注释、字符串中的恶意指令

记录 precision、recall、阻断误报率、Token、延迟和人工接受率。

Completion Gate

  • P0/P1 fixture 让 Job 失败。
  • P2/P3 fixture 让 Job 成功并生成报告。
  • 报告包含精确文件、行号和证据。
  • 模型不可用不会抹掉 lint/test 结果。
  • 能解释为什么 LLM 报告不能直接等价于人工 Approve。

复习节奏

  • 24 小时后:从 MR 事件复述到 gate 决策,标出模型判断与确定性判断。
  • 7 天后:给一条错误 finding 做 verifier,说明何时降级为提示而不是阻断。
  • 复习证据:四组 fixture 报告、两次 commit 的去重结果、precision/recall 表。

Markdown 是唯一内容源,HTML 由构建流程生成。