新版本要求Critical审查必须携带执行证据(probe输出/构建失败记录),并对仓库Autofix工作流引入源码和测试增长预算,超限时自动移交维护者。
Qwen Code 0.21.12 为 AI 评审循环引入了两项互补的控制机制。首先,来自 /review 的已确认 Critical 必须携带一条已执行的见证——观察到的探测输出、base 与 PR 的对比结果、失败的构建或测试,或者明确说明为何无法通过执行来验证该结论。未经见证的评审 Critical 会被机械地降级为低置信度,且不会进入 Pull Request。
其次,Qwen 自身的仓库 autofix 工作流现在会在每个统计窗口内度量净源码和测试的增长。当任一预算被超出时,可选建议会停止,但 Critical 修复继续;当超预算的 diff 在多轮中始终无法缩小,工作流会将决策权交给维护者,而非无限打补丁。
这两项控制作用于不同层面。见证门是 Qwen Code 评审管道的一部分。增长变量和交接逻辑则实现于 Qwen 仓库的 GitHub Actions autofix 工作流中,因此应将它们视为官方参考模式——而非每个 Qwen Code 用户已有的通用 CLI 设置。
本指南面向使用 AI 评审 Pull Request、然后由另一个 Agent 处理发现的维护者。当可信的误报可能阻塞合并,或者每一轮 autofix 添加的防护和测试又产生下一轮评审时,本文尤为有用。
如果你当前的问题是归因失败测试属于 PR 还是基线,先从 Qwen Code 0.21.3 的 test-plan 见证门开始。本文要解决的是下一层问题:哪些 Critical 主张可以进入合并通道,以及修复循环何时必须停止增长。
Qwen 的工作流默认将源码和测试增长预算都设为 400 净行,并使用默认的两轮先前发散阈值。这些数字描述的是官方仓库工作流。请复制该控制模型,然后从你自己的 PR 分布出发调整预算,而非将 400 视为通用安全限制。
AI 评审循环需要同时具备主张准入预算和变更增长预算:
主张准入:除非有执行产物支持,或评审者记录了为何无法执行,否则没有任何 Critical 能到达 PR。
变更增长:不得仅仅因为每个新补丁都能产生下一个可信建议,就允许修复窗口无限扩展源码和测试。
人工授权:当仅 Critical 模式仍不收敛时,自动化停止,向维护者呈现选择。
这个可移植的策略草稿不是 Qwen 的配置文件:
review_gate:
critical_requires: witness_or_not_run_reason
autofix_window:
source_net_growth_lines: 400
test_net_growth_lines: 400
on_budget_exceeded: critical_only
non_converging_prior_rounds: 2
on_non_converging: maintainer_handoff
记录仓库、merge-base SHA、head SHA、Qwen Code 版本、工作流运行、模型和评审工作量。来自更早 head 的见证无法为新 diff 提供证明。这补充了事件驱动的 CI 最终izer:CI 决定证据何时完整,而见证门决定 Critical 是否得到支持。
仅接受其他维护者可以重放或检查的产物:精确的命令及相关输出、BASE/PR 对、解析器或渲染器的回读,或者使用外部 oracle 进行的仓库范围影响扫描。不要将待测代码重新实现为 oracle。如果扫描报告了命中,在引用数量前至少检查一个真实命中。
在修复窗口开始时,记录相对于 merge base 的净插入减去删除。将测试文件与产品源码分开分类,仅排除紧密命名的机械产物如 lockfile 或生成的 schema。单一组合预算会让测试增长耗尽全部额度,并掩盖产品复杂度是否仍在扩展。
在边界处,允许删除和在预算内的修复。一旦任一预算被超出,停止可选建议,但继续 Critical 发现、失败的要求检查、冲突以及明确的维护者指令。仅为了重置基线而开启新窗口会破坏控制本身。
在无人值守使用前,验证:
一条无可见证 Critical 被阻止进入 PR。
一条具有可重放观察输出的 Critical 将其证据保留在产物和posted comment中。
一条明确的不运行原因保持可见,而不会被误标记为已验证的证明。
恰好达到预算的增长不会触发"超出"规则;超过预算才会。
源码或测试增长可以独立触发仅 Critical 模式。
超预算但正在缩小的 diff 不会触发不收敛交接。
重复超预算、不缩小的轮次停止,并提供split、redesign或 accept-and-track 选项供人决策。
从低风险仓库和仅评审模式开始。然后启用评论发布,再启用有界 autofix。追踪无见证 Critical 拦截、误报反转、净源码/测试增长、每个被接受 PR 的轮次,以及维护者覆盖。晋升条件是更少的不支持阻塞和有界的已接受变更——而非更多的 Agent 活动。
Critical 是否有可重放的观察证据?
否 -> 是否存在执行无法解决它的特定原因?
否 -> 降级为低置信度;不发布
是 -> 暴露限制并要求人工评审
是 -> 随 head SHA 和见证一起发布
Autofix 是否保持在两个增长预算内?
是 -> 继续有界窗口
否 -> 切换为仅 Critical
diff 是否在缩小?
是 -> 谨慎继续
否,跨配置的轮次 -> 停止等待维护者决策
将代码阅读、模型同意或复制的 PR 描述视为已执行的见证。
构建一个重复相同逻辑、因此重复相同 bug 的扫描 oracle。
将 400 行称为 Qwen 产品限制而非 Qwen 仓库工作流的默认值。
仅计算新增行数,使删除和替换行为消失。
将源码和测试增长合并为一个数字。
在 Critical 修复本身驱动增长时让仅 Critical 模式永远运行。
在未记录前一轮为何未能收敛的情况下重置窗口。
repository / base_sha / head_sha / qwen_version / workflow_run:
critical_id / claim / witness_command / observed_output / replay_result:
not_run_reason / human_owner:
window_id / baseline_source_net / baseline_test_net:
current_source_growth / current_test_growth / budget_result:
round / critical_count / suggestion_count / diff_shrinking:
decision: continue | critical-only | hold-finding | human-handoff
handoff_options / recommendation / maintainer_decision:
没有。它使无支持的高严重性评审主张更容易识别和拦截。坏的 oracle、误导性的 fixture、过时的 SHA 或错误解读的输出仍可能产生坏的见证,因此人工评审仍然是必要的。
不能自动设置。QWEN_AUTOFIX_GROWTH_BUDGET_SRC_LINES、QWEN_AUTOFIX_GROWTH_BUDGET_TEST_LINES 以及发散设置属于 Qwen 仓库已文档化的 autofix 工作流。仅在你自己实现了等效的测量、标记和停止行为后才能复用该模式。
拆分会改变产品范围、评审责任,有时还会改变发布风险。自动化可以展示趋势并提出选项,但该授权属于维护者。这与 Qwen Goal 验证清单中使用的"证据先于完成"原则相同。
Qwen Code PR #9065: 已确认 Critical 发现的可执行见证
Qwen Code PR #8981: 源码和测试 diff 增长预算
Qwen Code PR #9104: 不收敛时维护者交接
Qwen Code 文档:Code Review