Skip to content

feat(axbuild): grade review bench cases with same agent#1625

Merged
ZR233 merged 1 commit into
devfrom
codex/review-bench-case-grader
Jul 16, 2026
Merged

feat(axbuild): grade review bench cases with same agent#1625
ZR233 merged 1 commit into
devfrom
codex/review-bench-case-grader

Conversation

@ZR233

@ZR233 ZR233 commented Jul 16, 2026

Copy link
Copy Markdown
Member

问题

现有 Review Bench 的 grader 依赖 case 中面向评分器的 match_if,并且只允许一个 candidate finding 命中一个 expected finding。Reviewer 与 grader 还可以分别指定 agent、model 和 reasoning effort,导致评分配置与实际审查配置不一致,也无法正确评价多条审查意见共同识别同一底层问题的情况。

修改

  • 强制 reviewer 与 grader 使用完全相同的 agent、model、reasoning effort 和 timeout 配置。
  • 每个 case 在 review 完成后启动一个全新、无会话继承的 grader 进程。
  • Grader 的上下文输入仅包含:
    • known_findings.json:case 的全部已知问题。
    • candidate_findings.json:reviewer 输出的全部 findings。
  • 将评分结果改为整 case 多对多语义匹配:
    • 多条 candidate 可以共同命中一个 expected。
    • 同一 candidate 可以匹配多个 expected。
    • 未匹配 candidate 仅计入 extra_findings,不影响 recall gate。
  • 对遗漏/重复 expected、越界或重复索引、空 reason 做严格失败处理。
  • 删除 CLI 中的 grader override 参数,并从 case schema 和现有 TOML 中移除 match_if
  • 新增 PR feat(tools): add qperf profiling harness #1039 大文件/大结构体 benchmark case,已知 finding 只保留 reviewer 可从 PR 快照推断的事实。
  • 增加 scoring、CLI 和 mock agent 测试,覆盖联合命中、共享 finding、全部未命中、零 candidate 以及非法 grader 输出。

实现逻辑

评分器只判断 candidate 是否识别了同一底层缺陷或实质风险,不要求相同措辞、精确行号、完整影响或指定修复方案。每个 expected 的 finding_indices 非空即记为 caught;所有匹配数组的 candidate 索引并集用于排除 extra_findings

这种设计保持 recall 的含义为“是否发现已知问题”,同时把额外发现单独呈现,避免把尚未验证真伪的额外意见误当成 false positive。

验证

  • cargo fmt --all --check
  • cargo xtask agent-review-bench check:5 个 case 全部通过
  • cargo xtask clippy --package axbuild
  • cargo test -p axbuild agent_review_bench:仓库现有测试模块缺少 QemuConfig import,直接编译会被该基线问题阻断;临时补充 import 后本次 25 个定向测试全部通过,临时改动未纳入提交
  • Codex high 运行 feat(tools): add qperf profiling harness #1039:recall 1/1 (100%)extra_findings = 5
  • Claude high 运行 feat(tools): add qperf profiling harness #1039:recall 1/1 (100%)extra_findings = 4
  • Claude grader 使用两个 candidate findings 联合命中同一个 expected,验证整 case 多对多匹配路径

@ZR233
ZR233 marked this pull request as ready for review July 16, 2026 01:13
@ZR233
ZR233 merged commit 00c3e98 into dev Jul 16, 2026
67 of 70 checks passed
@ZR233
ZR233 deleted the codex/review-bench-case-grader branch July 16, 2026 01:34
This was referenced Jul 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant