深度解读)
PostHog ReviewHog 验证器质量评估Opus 5 在 Sol-medium 评审集上的混淆矩阵评分PA.score.md深度解读【免费下载链接】posthog:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.项目地址: https://gitcode.com/GitHub_Trending/po/posthog本篇技术指南围绕 PostHog 开源仓库中 ReviewHog 模型评测实验products/review_hog/eval/experiments/2026-08-validator-model-sol/的 P 组跑次评分文件findings/PA.score.md系统讲解AI 代码评审验证器validator的质量度量方法如何用保留/丢弃 × 真实/不真实的混淆矩阵计算精确率、召回率与误放率如何逐条还原 14 条 finding 的裁决依据以及为什么这份数据支撑了保留 Opus 作为验证器的最终结论。读完你既能读懂 ReviewHog 任何一份.score.md文件也能复现这套基于冻结代码库的验证器评估流程。这份评分文件在实验中的位置PA.score.md不是孤立文件而是 2026-08 系列实验GPT-5.6 Sol 能否替代 Claude Opus 作为 ReviewHog 验证模型中的一个中间产物。整个实验目录结构如下PLAN.md实验设计与逐跑次运行日志决策、hacks、时间线FINAL_REPORT.md最终报告结论、成本、发现的问题findings/每组跑次的匹配、真值、评分与逐条验证文件*.json、*.score.md、verify/runs/每次跑次的原始 dump 与 gateway 用量scripts/打分、真值构建、用量统计等脚本。实验背景要点来自 PLAN.md 与 FINAL_REPORT.md冻结的同一 PR#75215heada7fb363b、同一组 pinned chunks、零评论 clean room评审器reviewer负责产出候选 finding验证器validator逐条裁决 keep/drop真值ground truth来自此前 7 月实验建立的 76 个已知问题簇known_clusters.jsonP 组PA / PB是当天下午的补充跑次评审器为 Sol medium验证器为生产 pinclaude/claude-opus-5/xhigh。PA 对应的具体跑次是runs/P-sol-medium-opus5-1.mdP114:32–15:05 本地时间4 个 chunk、9 个评审单元 4 个盲区单元20 条原始 finding → 14 条去重后 finding → 验证器判6 条 valid。评审阶段 12m32s验证阶段约 17 分钟14 个裁决gateway 侧验证成本 $15.80133 次 LLM 调用单条裁决成本 $1.13。读懂评分文件验证器混淆矩阵的四个象限PA.score.md全文即一个紧凑的混淆矩阵输出格式如下## Opus 5 xhigh, Sol reviewer medium (P1): 14 scored, 0 unscored | | real | not real | | ------- | ---- | -------- | | kept | 6 | 0 | | dropped | 1 | 7 | - kept-are-real (precision): 6/6 100% - real-are-kept (recall): 6/7 86% - not-real-dropped: 7/7 100%它把验证器的每个裁决映射到四个象限象限含义PA 计数kept × real保留且确实真实真阳性6kept × not real保留但并非真实假阳性误放0dropped × real丢弃但其实是真实假阴性漏报1dropped × not real丢弃且确实不真实真阴性7由此派生三个核心指标kept-are-real精确率 precision保留的 finding 中有多大比例真实6/6 100%real-are-kept召回率 recall真实 finding 中有多大比例被保留6/7 86%not-real-dropped误放率不真实 finding 中有多大比例被正确丢弃7/7 100%。头部标题行 Opus 5 xhigh, Sol reviewer medium (P1) 编码了本次跑次的完整配置验证器是 Opus 5 且收到xhigh推理强度评审器是 Sol 且收到medium强度P1 是第 1 次重复。14 scored, 0 unscored 表示 14 条 finding 全部能在真值文件中找到裁决没有无法评分的条目unscored 通常出现在 finding 未匹配到任何已知簇、也没有被人工验证时。评分链路从 findings 到 truth 再到 score这份评分不是人工手填的而是由脚本scripts/score_validator.py生成。它的输入输出约定见脚本 docstring 与实现python score_validator.py findings.json truth.json [label]findings.json如findings/PA.json评审器产出去重后的 finding 列表每个 finding 含id、is_valid验证器是否保留、priority、validator_priority、title等字段truth.json如findings/PA.truth.json映射 finding id →{is_real: bool, severity: str|null, cluster: int|null, source: str}脚本遍历 findings按is_valid与is_real落入四象限输出矩阵、三个百分比指标以及逐条行- {id} {keep|drop} {REAL|not} sev{severity} prio{priority} {title前60字符}。真值PA.truth.json的source字段揭示了每条真值裁决的来源这是整个评估可信度的关键verified-same-claim:其他跑次 finding id该 claim 与此前已验证过的 finding 完全一致直接复用旧裁决。例如 PA1 ← KA2、PA4 ← KA13、PA6 ← LA4、PA8/PA11 ← KA10、PA12 ← KA4、PA13 ← KA5、PA14 ← KA13、PA5 ← LA6、PA3 ← LB4logging 一半cluster N/N该 finding 落在某个已知问题簇且该簇在注册表76 簇中的真值一致。例如 PA2cluster 353/3 全真、PA9cluster 310/6 全假doc-form of cluster Nprecedent ...按文档措辞类 finding 不并入代码簇的规则单独裁决。PA7 即 cluster 57 的 doc-form 变体沿用 NA8 的被驳裁决只有全新或簇内意见不一致的 claim 才需要人工在冻结工作树上做 refutation-first 逐条验证findings/verify/P1 本身没有新增人工验证项。配套脚本scripts/build_truth.py负责从一致簇批量起草真值、并列出需要人工验证的条目scripts/kafka_ai_usage.py则从本地 Kafka 主题events_plugin_ingestion_ai读取$ai_generation事件核算成本。14 条 finding 逐条裁决PA 组的 finding 全集见 findings/reviewer_side.md 的 PA 小节真值与匹配依据见 PA.truth.json 与 PA.match.json。14 条裁决中 7 条真实、7 条不真实评审器侧真实率为 50%7/14。保留且真实6 条全部 must_fix / should_fix / consider 中的真实缺陷PA1 keep REAL sevmust_fixAny bot can qualify through the branch fallback——_is_bot_authored接受任意 GitHub bot仓库原生 bot PR 可通过find_task_run的 branch fallback 继承审批豁免cluster 75与 LA14/NA5/NB2/KA2 同 claimPA2 keep REAL sevconsiderThe trusted prompt reports ready pull requests as drafts——_format_self_driving硬编码 It is a draft on purposePR 转 ready 后仍向模型注入错误的 draft 上下文cluster 35LA3/MA3/LB3/MB2 同族PA6 keep REAL sevshould_fixA resolver failure can leave a stale approval active——_inbox_rereview_carve_out的解析器查询先于审批收回执行异常耗尽 3 次重试后旧审批仍生效cluster 29与 LA4 同 claimPA8 keep REAL sevmust_fixThe initial task trusts caller-supplied PR provenance——process_inbox_pr_review直接信任 Celery 参数里的pr_url/task_run_id/acting_user_id从不回查 TaskRun可被 task:write 调用者用于审批无关 PRcluster 2KA10 同 claimPA10 keep REAL sevmust_fixThe carve-out trusts an unvalidated boolean——review_local.py:316-324引擎侧仅凭裸的self_driving_review布尔值放宽 bot/draft 校验未与拉取的 PR 形状绑定cluster 6LA19 同 claimPA11 keep REAL sevmust_fixInbox provenance is granted without verifying the pull request——TaskRun.output.pr_url仅经任务形状与 toggle 检查即被转发接收端同样不做仓库/head repo/bot 作者比对cluster 2KA10 同 claim。丢弃但真实1 条唯一漏报PA12 drop REAL sevshould_fix priomust_fixThe Stamphog gate ignores later opted-in assignees——_resolve_assigned_reviewer在读取 Stamphog toggle 前就把 assignee 集合坍缩为 creator-or-first次级 assignee 的 opt-in 被忽略cluster 57KA4 同 claim。这是 Opus 5 在 P1 唯一漏掉的真实缺陷且它与此前 L1LA17 丢弃同一 claim、L2/P2保留的表现并不一致属于明显的跑次间抖动此外验证器给出的 priority 仍是must_fix说明它对该 claim 的论证强度并无把握。丢弃且不真实7 条全部正确过滤PA3cluster 51Fail-soft database check can flood error logs——get_stamphog_connected的宽 except 在熔断器打开期间对每个 GET/PATCH 都打全量logger.exception属日志噪音而非功能缺陷与 LB4/NA3 同 claimPA4cluster 58The initial review handoff can be lost when the broker is unavailable——facade 发布点唯一记录是 post-commit 的.delay()调用方捕获并吞掉发布失败但这是刻意设计后续 re-fire 与 webhook 恢复路径兜底KA13 已被驳PA5cluster 58A worker crash can discard the initial review task——early-ack 丢任务的说辞与 LA6/LB5/MB10/NA6 同族均为broker/重试硬化请求非真实缺陷PA7nulldoc-formThe toggle gate does not match the promised assignee behavior——只是 AGENTS.md:85-87 与 PR 描述之间措辞矛盾的文档层 restatement按 doc-form 规则沿用 NA8 的被驳裁决不并入代码簇 57PA9cluster 31The worker does not recheck the review opt-in——接收端在入队时快照 toggle、延迟任务不复查簇 31 历史 0/6 全假验证器用亚秒窗口与下次 push 的 opt-out 清除机制驳回PA13cluster 39Post-filtering an unscoped run can hide a valid match——find_task_run先选行再在 facade 应用 team 过滤属选后过滤模式KA5 同 claim 已验证不真实PA14cluster 58Initial Stamphog dispatch can be lost permanently——_start_stamphog_review的 on_commit 回调吞掉发布失败、无持久化记录同样是 cluster 58 硬化请求家族KA13/KB3/KC3 同族被 re-fire 与 webhook 恢复路径驳回。可以看到被正确丢弃的 7 条中PA4/PA5/PA14 全部来自 cluster 58broker/重试硬化请求家族、PA9 来自 cluster 31toggle 复查、PA13 来自 cluster 39选后过滤、PA3 来自日志噪音、PA7 是文档措辞——评审器在 medium 强度下的非真实输出几乎全部落在已知的少数几个问题家族里这也是实验报告多次强调同一批弱 claim 每次跑次都会出现的原因。与其它跑次的横向对比为什么 Opus 5 是不可替代的验证器基线把 PA 放入完整八跑次对比表findings/xhigh_summary.md指标L1/L2Opus 5xhigh 评审M1/M2Sol 验证器N1/N2Sonnet 5 验证器P1/P2Opus 5medium 评审判定 finding 数23 / 2219 / 2022 / 2214 / 15kept 中真实占比82% / 67%61% / 67%50% / 50%100% / 100%真实 finding 保留率75% / 73%92% / 92%73% / 100%86% / 100%非真实丢弃率82% / 64%0% / 14%27% / 0%100% / 100%单条裁决成本$1.06 / $1.06$0.72 / $0.80$0.48 / $0.53$1.13 / $0.93几个关键观察Opus 5 在 P 组的精确率为 100%保留的 6/6、7/7 全部真实15 条非真实 finding 全部丢弃唯一代价是漏掉 PA12 一条真实缺陷recall 86%/100%。相比之下 Sol 验证器在 M1/M2 保留了 18/19、18/20非真实丢弃率仅 0% 和 14%——更多推理强度没有移动它的门槛FINAL_REPORT.md验证器输入规模影响评分含义P 组只有 14–15 条 finding评审器 medium 强度产出少而 L/M/N 组有 19–23 条。报告明确指出 Opus 在 P 组的完美表现部分是输入所致——14–15 条 finding 的非真实一半是众所周知的家族成本曲线P 组验证阶段 $15.80/$13.90单条裁决 $1.13/$0.93与 xhigh 评审组的 $1.06 相当——验证成本由裁决数而非评审强度主导评审器强度阶梯真实 finding 数随评审强度近似翻倍low 3–4 → medium 7 → xhigh 11–13价格同样翻倍$6 → $10.50 → $26但 medium 两跑次没有发现任何注册表之外的新问题new real 0 / 1其中 PB5 LB20 不算新发现新问题是 xhigh 独有价值。方法论要点与实用建议裁决复用是成本核心本实验能把 32 条新增人工验证压缩到极少靠的是相同 claim 复用裁决机制PA.truth.json的verified-same-claim字段。评估新验证器时先建已知问题簇注册表再对未匹配 claim 做 refutation-first 验证可显著降低真值构建成本混淆矩阵必须区分验证器能力与评审器输入not-real-dropped 与 kept-real 同时受输入分布影响跨跑次比较时要对齐输入规模与问题家族构成P 组与 L 组输入不同不能直接比百分比单跑次噪声不可忽略PA12 同一 claim 在 L1 被弃、L2/P2 被留说明 14–22 条样本上 run-to-run 抖动客观存在结论应基于多次重复的稳定模式而非单次裁决实验 hacks 须还原P 组跑次依赖若干未提交的实验性改动sandbox 镜像内两处sed、fetch_pr_comments → []、chunk pin、MAX_CONCURRENT_SANDBOXES 4PLAN.md明确列出复现时需留意这些前提结论落地报告最终建议保留 Opus 作为验证器——P 组 100% 精确率正是其严格 bar的直接证据Sol 评审器在 xhigh 值得上线需 effort 修复 #88893 进入 sandbox 镜像若成本是障碍medium 是仍优于当前生产评审器的回退选项。总而言之PA.score.md用一张 14 行的混淆矩阵回答了一个关键问题当评审器降级到中等推理强度、输入 only 14 条候选 finding 时Opus 5 验证器依然做到了保留的全是真、丢弃的九成正确仅漏掉一条本就在历史上反复摇摆的 toggle 类 claim。这份评分既是理解 ReviewHog 验证器评估流程的绝佳样例也是验证器把关价值的量化注脚。【免费下载链接】posthog:hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session replay, flags, experiments, error tracking, logs, and more – capture all the context agents need to diagnose problems, uncover opportunities, and ship fixes. Steer it all from Slack, web, desktop, or the MCP.项目地址: https://gitcode.com/GitHub_Trending/po/posthog创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考