尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

PostHog ReviewHog 验证阶段评分表深度解读:从 LB.score.md 读懂 Opus 5 校验器的精度、召回与取舍

PostHog ReviewHog 验证阶段评分表深度解读:从 LB.score.md 读懂 Opus 5 校验器的精度、召回与取舍 PostHog ReviewHog 验证阶段评分表深度解读从 LB.score.md 读懂 Opus 5 校验器的精度、召回与取舍【免费下载链接】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导读本文以 LB.score.md 这份评分表为主体拆解 PostHog ReviewHog 自动代码评审流水线中验证validation这一关键阶段当claude-opus-5以xhigh推理强度担任校验器时它在 22 条候选 finding 上给出了怎样的 keep/drop 判定precision、recall、not-real-dropped 三项指标如何计算以及每条 finding 背后的真实性问题76 个已知问题簇 反驳优先人工核验。读完本文你将掌握 ReviewHog 验证阶段的数据模型、评分协议的完整读法以及为什么 Opus 5 被保留为生产校验器、而 GPT-5.6 Sol 被否掉这一实验结论的量化依据。背景ReviewHog 流水线中的验证阶段ReviewHogproducts/review_hog是 PostHog 的自动化 GitHub PR 评审器其单轮流水线由ReviewPRWorkflow编排架构细节见 ARCHITECTURE.mdfetch PR → 按 Pydantic 模型生成 JSON Schema → 分块chunking→ 多视角并行评审Logic Correctness / Contracts Security / Performance Reliability blind-spot 兜底→ 合并、范围清洗、去重 →验证validate→ 渲染报告并发布。验证阶段是 finding 进入 PR 前的最后一扇门ValidateIssuesWorkflow子工作流把去重后存活的 finding 按 chunk 分组每个 chunk 开一个温的多轮 sandbox 会话每轮判定一条 findingone verdict per turn见 activities.py 的validate_chunk_activity与 executor.py 的start_sandbox_session/continue_sandbox_session/end_sandbox_session校验器输出被强约束为 IssueValidation 模型is_validkeep/dropcategory 可选的adjusted_priorityMUST_FIX/SHOULD_FIX/CONSIDER校验器可以覆盖评审器给的优先级且validator-winskeep/drop 的评判标准不内嵌在提示词里而是通过 MCPskill-get拉取团队自有的review-hog-validation-criteria技能见 issue_validation/prompt.jinja 与 SKILL.md校验器的模型与推理强度由 constants.py 的生产引脚决定VALIDATION_RUNTIME_ADAPTER claude、VALIDATION_MODEL claude-opus-5、VALIDATION_REASONING_EFFORT xhigh、INITIAL_PERMISSION_MODE None并带VALIDATION_MAX_ATTEMPTS 2的重试上限。LB 这组数字正是生产引脚Opus 5 xhigh在受控实验环境下的表现记录。实验设计为什么会有 LB 这组数字LB 是2026-08-validator-model-sol实验的第二次Opus 5 校验器运行。该实验的提问见 PLAN.md是gpt-5.6-solCodex 多轮能否在更低成本与时间下达到 Claude Opus 作为验证模型的判定质量关键实验约束这是理解 LB 数字的前提冻结的 PR 与干净环境全部运行共用同一冻结 PR#75215 a7fb363、同一组pinned_chunks.json固定分块、评论被 mock 为空零评论净室评审器固定为 Sol xhigh只更换校验器arm L Opus 5生产引脚arm M Solarm N Sonnet 5arm P Sol 评审器 medium Opus 5 校验器真值ground truth每条 finding 与 76 个已知问题簇known_clusters.json来自 7 月 judge 文件做匹配一致簇直接继承簇判定混合簇或新声明则在冻结工作树上做反驳优先的人工核验findings/verify/effort 修复前置K1–K3 三组先导运行发现 effort 引脚从未真正到达 Codex网关记录 100%low修复PR #88893 的一行补丁并打进沙箱镜像后L/M/N 运行才在真实xhigh下进行。LB 即 L2Opus 5 xhigh, Sol reviewer xhigh评审 4 个 chunk、9 个评审单元 4 个 blind-spot 单元26 raw → 22 dedup →12 valid验证阶段 176 次 LLM 调用、$23.42、单条判定 $1.06成本数据见 xhigh_summary.md。逐字段解读 LB.score.md混淆矩阵与三项指标评分表标题行Opus 5 xhigh, Sol reviewer xhigh (L2): 22 scored, 0 unscored说明本组共 22 条候选 finding全部得到判定、无一条未评分0 unscored 意味着验证阶段没有掉链子、没有超时或解析失败丢分。核心混淆矩阵realnot realkept84dropped37矩阵四个象限的含义kept 且 real 校验器正确保留的真问题kept 且 not real 校验器误保留的噪音false keepdropped 且 real 校验器误杀的真问题false dropdropped 且 not real 校验器正确丢弃的噪音。由此导出文档给出的三项指标kept-are-realprecision精度 8/12 67%校验器最终保留的 12 条里8 条是真问题。67% 意味着发布到 PR 的 finding 约有 1/3 是噪音——对以precision over recall为原则的验证技能SKILL.md来说这是可以接受但在本轮偏中等的水平real-are-keptrecall召回 8/11 73%评审器产出的 11 条真问题里8 条被保留3 条被误杀not-real-dropped 7/11 64%11 条噪音里 7 条被丢弃4 条漏网。把三项指标放回验证技能的标准看技能要求真问题 具体的触发条件 具体的后果两者缺一不可悬而未决一律 drop因此校验器对 not-real 的拦截率64%是衡量其把关力度的核心指标而 recall73%衡量其不误伤的能力。22 条 finding 的逐条标注与四象限归类评分表每条形如LB{n} {keep|drop} {REAL|not} sev{severity} prio{priority} 一句话描述。其中sev是验证后的严重度-表示非真实问题无严重度prio是评审器给出的原始优先级两者不一致即意味着校验器通过adjusted_priority行使了validator-wins的覆盖权例如 LB11 的priomust_fix → sevshould_fixLB20/LB21 的must_fix → considerLB22 的consider → should_fix与 ARCHITECTURE.md 中adjusted_priority的语义完全吻合。象限一kept 且 REAL8 条——正确保留Finding验证后严重度问题簇内容LB8must_fix2Caller-writable PR URL 可绕过 Stamphog 审批门复用 KA10 判定LB12must_fix2自我驱动 provenance 在 PR 验证前就被授予复用 KA10 判定LB11should_fix57Stamphog 忽略已 opt-in 的次要评审者复用 KA4 判定LB22should_fix新cluster nullhosted bot 谓词漏掉 posthog-bot 机器用户LB2consider新cluster null更早的已完成 run 会掩盖最新失败的 re-reviewLB3consider35可信提示词永远声称 PR 是 draft簇 3/3 一致LB20consider新cluster nullopt-out 路径让旧评审工作流继续存活LB21consider新cluster nullopt-out 关闭遗漏仅存在于 GitHub 的审批其中 LB2、LB17、LB20、LB21、LB22 是本轮评审器新发现的真实问题见 reviewer_side.md 的 LB 一节属于此前的 18 次评审从未报告过的发现均经冻结工作树核验。象限二dropped 且 not7 条——正确丢弃LB4fail-soft 检查延迟请求并刷爆错误日志、LB6 / LB15broker 故障丢失初次评审均属簇 58 的防御性加固家族、LB9PR URL 解析器接受内嵌 GitHub URL簇 13、LB14关联讨论任务被归类为实现任务、LB16eligibility 过滤在选中单个任务 run 之后才执行簇 39、LB19离职成员仍可作审批评审者。这些正是验证技能要求丢弃的典型噪音broker/retry 加固诉求簇 58复制了既有 webhook 路径的刻意设计并有后续重试兜底LB9 是已被 7 月三次判定否决truth 标注cluster 0/3的旧声明LB7/LB18/LB19 一类新声明则因生产环境中没有任何代码填充Team.parent_team_id而被判定为不可达。象限三kept 且 not4 条——误保留的噪音LB1self-driving 归因排除失败评审新声明核验为不实LB5worker 丢失可永久丢掉初次评审簇 58 家族复用 LA6 判定LB7子环境访问可打开父项目审批开关复用 MA2 判定parent_team_id不可达LB18子环境 PR 永不收到 Stamphog 复评复用 LA23 判定同样因parent_team_id不可达而证伪注意 LB5 是簇 58 加固诉求在本轮唯一一次漏网的变体FINAL_REPORT 中明确点名而它的三个同族兄弟 LB6 / LB15 都被正确丢弃——同一家族在同一轮内出现分叉判定说明校验器对防御性加固类声明的拦截存在不稳定性。象限四dropped 且 REAL3 条——误杀的真问题LB10must_fix簇 2不应信任未绑定上下文标志来绕过审批门。这条在 L1 中被保留为 LA19同一声明两轮一留一杀是典型的 run-to-run 噪声LB13should_fix簇 21已取消的实现 run 仍符合 carve-out 资格簇 2/2 一致复用 KA11LB17should_fix新声明hosted WAIT 结果未记录到 self-driving 评审本轮新发现的真实问题却被误杀。FINAL_REPORT 对 Opus 的误杀做了统计L1 L2 两轮共误杀 6 条真问题LA8、LA17、LA21、LB10、LB13、LB17其中两条在另一轮中被正确保留toggle 声明 LA17 被杀、LB11 被留engine-flag 声明 LA19 被留、LB10 被杀说明在 22 条量级的样本上一部分 recall 损失来自随机波动而非系统性偏差。真值如何产生76 簇匹配 反驳优先核验评分表本身只给出判定真值来源记录在配套的 LB.match.json 与 LB.truth.json 中这是把校验器的判定与事实区分开的关键簇匹配22 条中有 10 条命中已知簇cluster字段非 null命中即优先复用簇的真值confidence字段记录了匹配的可信度high / medium新声明单独核验12 条cluster: null的新声明LB1、LB2、LB7、LB14、LB17、LB18、LB19、LB20、LB21、LB22 等全部在冻结工作树frozen worktree上做反驳优先refutation-first人工核验LB.truth.json的source字段标注了每种真值的出处verified (high)/verified (medium)——本轮新核验的结论verified-same-claim:KA10——该声明与 7 月某条已核验声明完全相同直接复用其结论cluster 3/3/cluster 0/3——簇内多次判定的一致/不一致计数如 LB9 的cluster 0/3表示该簇三次判定均证伪duplicate-of:LA15——被证明是另一条声明的重复如 LB14。这套协议保证了real / not real标注不依赖校验器自证凡是混合簇或新声明都由人类对照冻结工作树的真实代码逐一核实后再写进评分表。横向对比LB 在八轮运行中的位置将 LB 放进同实验的全部运行看数据源 xhigh_summary.md指标L1 (Opus 5)LB (Opus 5)M1 (Sol)M2 (Sol)N1 (Sonnet 5)N2 (Sonnet 5)P1 (Opus 5)P2 (Opus 5)判定条数2322192022221415kept11121818162267kept-real (precision)9/11 (82%)8/12 (67%)11/18 (61%)12/18 (67%)8/16 (50%)11/22 (50%)6/6 (100%)7/7 (100%)real-kept (recall)9/12 (75%)8/11 (73%)11/12 (92%)12/13 (92%)8/11 (73%)11/11 (100%)6/7 (86%)7/7 (100%)not-real dropped9/11 (82%)7/11 (64%)0/7 (0%)1/7 (14%)3/11 (27%)0/11 (0%)7/7 (100%)8/8 (100%)单条判定成本$1.06$1.06$0.72$0.80$0.48$0.53$1.13$0.93两个关键对照结论一目了然Sol 校验器M1/M2几乎什么都不丢每轮保留 18/19、18/20not-real dropped 仅 0/7 与 1/7——它把三类已知弱声明簇 58 加固诉求、簇 39 无作用域查找、簇 31 队列期开关全部保留。多给了 reasoning tokens 并没有提高它的把关标准Opus 5 是唯一在保留真问题和丢弃噪音之间取得平衡的校验器两轮 precision 67–82%、recall 73–75%、not-real dropped 64–82%。Sonnet 5N1/N2在价格上最便宜$0.48–0.53/条但行为与 Sol 相似——保留 16/22 乃至 22/22精度只有 50%。结论LB 这组数字如何支撑保留 Opus的决定FINAL_REPORTFINAL_REPORT.md的推荐正是以 LB 这类评分为依据校验器维持 Opus 5 xhigh。理由量化如下在真实xhigh下Sol 的成本优势从低强度时的 4–5 倍缩小到约 30%$0.72–0.80 vs $1.06换来的却是几乎不拦截噪音的判定行为——多花三成价格买来更差的门槛没有意义Opus 5 在 L1/LB 两轮共丢弃 16/22 条噪音、保留 17/23 条真问题是四个候选模型Opus 5、Sol、Sonnet 5中唯一在 precision / recall / not-real-dropped 三角上同时站得住脚的LB 暴露的 Opus 弱点3 条误杀 4 条漏网 跨轮判定不一致被判定为22 条样本上的噪声而非系统性缺陷因为同一声明在另一轮往往得到正确判定。对阅读同类评分表的开发者LB 也给出了一条可复用的检查清单先看混淆矩阵四象限是否齐全0 unscored 说明流程没掉分再用 precision / recall / not-real-dropped 三个指标同时评估只看 precision 会漏掉什么都没丢的假把门最后回查match.json/truth.json确认每条判定的真值出处——簇一致、同声明复用、新声明人工核验三种来源必须分开对待。实验的评分脚本与配套协议scripts/build_truth.py起草真值、findings/verify/人工核验、findings/*.truth.json固化结论都保留在 experiments/2026-08-validator-model-sol 目录下可供后续模型评测直接复用同一套地面真值。【免费下载链接】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),仅供参考
返回列表