尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ReviewHog 评估运行深度解析:Sol 中等推理强度评审 + Opus 5 校验的漏斗与裁决实录
ReviewHog 评估运行深度解析Sol 中等推理强度评审 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导读本文基于 PostHog 开源仓库中 ReviewHog 自动 PR 评审产品在 2026-08-26 的一次真实评估运行报告P-sol-medium-opus5-2完整还原其运行漏斗、分阶段耗时、按视角拆分的 review unit 明细以及 15 条 post-dedup 发现的校验裁决VALID/dismissed与裁决依据。读者将掌握如何解读 ReviewHog 评估报告中的 funnel 与 stage timing 表格、四种评审视角三种 perspective blind-spot sweep的协作方式、验证器validator如何以文件与行号证据判定每条发现的真伪以及 Opus 5 校验器在本轮零误报7/7 kept-real、8/8 not-real dropped表现背后的实现依据。一、运行背景这是一次什么评估P-sol-medium-opus5-2是products/review_hog/eval/experiments/2026-08-validator-model-sol/实验下的第二次 P 组运行PLAN.md。该实验回答的核心问题是gpt-5.6-solCodex能否在更低成本与耗时下替代 Claude Opus 作为 ReviewHog 的校验模型。本轮运行的关键配置维度值运行标识P-sol-medium-opus5-2report id01a03e30-9ae5-77ba-8869-6125d287bf17评审模型reviewerCodex /gpt-5.6-sol/ 推理强度medium校验模型validatorClaude /claude-opus-5/xhigh生产固定组合被评审对象冻结 PR #75215 heada7fb363b4 个固定 chunk零评论清洁环境单 chunk 门限 / chunk 目标 / 软上限新增行400 / 300 / 600墙钟总时长2582 s约 43 分钟statusidlerun_count 1该实验的对照组与姊妹组说明来自 FINAL_REPORT.md评审模型固定为 Sol校验模型分为 Opus 5L/P 组、SolM 组、Sonnet 5N 组三档对照本轮 P2 属于Sol 评审器降到medium、Opus 5 校验的下午追加实验用于验证中等推理强度下的成本-质量折中。运行前置实验开始前团队修复了两个关键环境问题——Codex 沙箱多轮会话可用的冒烟验证scripts/codex_mts_smoke.py以及 2026-08-13 起REVIEW_MCP_SCOPES缺user:read导致沙箱无法skill-get拉取技能#88697 修复。评估运行带有 4 个实验性 hack注释 mock、chunk 固定、VALIDATION_*常量覆盖、并发数 4均在实验结束后回滚。二、运行漏斗raw → dedup → validator 的层层收窄本轮运行的漏斗数据是评估报告的骨架阶段数量chunks4review units12raw issues原始发现18after dedup去重后15passed validator通过校验7其中review units 每一个 (perspective 或 blind-spot) × chunk 的沙箱评审报告明确指出它是模型持有成本不变的成本代理model-held-constant cost proxy每个 unit 都是一次独立的沙箱 agent 评审调用。漏斗背后的实现ReviewHog 单轮流水线这条漏斗对应 ARCHITECTURE.md 中ReviewPRWorkflowbackend/temporal/workflow.py编排的 10 步流水线fetch PR → 生成 schema → 分块 → 并行视角评审 → 盲点扫描 → 合并作用域清理 → 去重 → 校验 → 构建报告 → 发布。去重dedup为何能把 18 条砍到 15 条按 ARCHITECTURE.md 第 7 步dedup 先跑一个确定性位置预过滤_select_dedup_candidates——只有与另一条 issue 或任何既有 inline comment 共享文件且行区间重叠的 issue 才可能重复孤立 issue 不经过 LLM 直接存活碰撞候选进入单次 one-shot 去重调用IssueDeduplication见 models/issue_deduplicator.py。三、阶段耗时校验是时间大头报告给出的各阶段墙钟耗时阶段时长fetch snapshot0schunking0sperspective selection16sreview wave (perspectives)10m 32sblind-spot sweep3m 30sdedup (incl. combine/clean)47svalidation26m 52s几个值得注意的点fetch/chunking 为 0s是因为 chunk 固定pinned chunks与注释 mock 两个实验 hack使这两个阶段退化为无操作。Review stage totalselection → 最后一个 finder unit含 wave blind-spot 14m 03s报告明确这是评审模型速度对比数字the reviewer-model speed comparison number——对比 PLAN.md 中 P1 的 12m32smedium推理强度下评审阶段稳定在 12–14 分钟。校验阶段 26m52s 是总时长 43 分钟的大头。这符合架构设计校验器validator为每个 chunk 开一个 warm 多轮会话每轮一个 verdict见validate_chunk_activity与load_run_validations的 resume 机制backend/temporal/activities.py。耗时数据派生自 artefact 的created_at完成时持久化报告特别注明只有对新鲜的、非恢复non-resumed的运行才有意义。成本侧写来自本轮 gateway 事件runs/P-sol-medium-opus5-2.gateway_usage.md记录了本轮 286 条$ai_generation事件的实际开销构成阶段族模型调用数gateway $effortreviewgpt-5.6-sol134$8.46mediumblind-spotgpt-5.6-sol37$2.31mediumvalidationclaude-opus-5111$12.84xhighvalidation子 agentclaude-opus-4-82$1.06xhighdedup / perspective_selectionclaude-sonnet-5各 1$0.09xhigh报告正文中的cache-aware spend: no$ai_generationevents in the window指本地遥测不可用PLAN.md 记录本地 ingestion 被 personhog 阻塞实际成本从 Kafka 主题events_plugin_ingestion_ai直接读取而dump_result.pyeval/scripts/dump_result.py正是这套实验报告的标准生成器负责从ReviewReport与 artefacts 渲染上述所有表格。四、Per-review-unit 明细四个视角的分工本轮 12 个 review unit 的构成pass 序号 视角在PERSPECTIVES注册表中的 1-based 位置1000 为盲点扫描的保留序号passchunkperspectiveraw issues11–3review-hog-perspective-contracts-security1 / 2 / 121–3review-hog-perspective-logic-correctness2 / 3 / 231–2review-hog-perspective-performance-reliability2 / 210001–4review-hog-blind-spots-general1 / 1 / 0 / 1视角技能是 DB 同步的 LLMA skill通过 MCP 拉取三个 perspective 一个 blind-spot 都以独立 skill 形式存在于 products/review_hog/skills/ 下。关键设计ARCHITECTURE.md Prompts 节视角焦点不再拼进 prompt而是通过skill-get(review-hog-perspective-…, versionN)按需拉取——sandbox agent 在 MCP 会话中取回视角技能并应用其关注点。以 contracts-security 为例SKILL.md其关注面包括API 契约与破坏性变更请求/响应格式、字段增删、类型变更、版本兼容、GraphQL/REST 契约安全漏洞SQL 注入、XSS、LLM 代码的 prompt-injection、认证/授权、敏感数据暴露输入验证与边界入口点验证、sanitization、类型安全、范围与限额、溢出Schema 与接口对齐DB schema 与模型、前后端类型一致性、迁移兼容技能文档还给出具体调查命令rg action\(|api_view\(找 DRF 端点、rg validate|sanitize检查输入验证等并明确只报告安全与契约类问题逻辑正确性与性能问题留给其他视角——这正是多视角并行、重叠留给去重处理的设计前提SKILL.md 顶部说明。Chunk 构成22 个文件跨 4 个 chunkchunk 18 文件review_hog 后端模型、迁移0019_reviewusersettings_stamphog_review_inbox_prs.py、settings API、receivers 与前端CodeReviewScene.tsx、生成类型chunk 28 文件stamphog 的 facade API、inbox_hooks、tasks、temporal activities、reviewer 逻辑以及 tasks 产品 facade 与tach.tomlchunk 34 文件pr-approval-agent包在仓库中位于 products/stamphog/packages/pr-approval-agent/的review_pr.py、review_local.py、reviewer.py、version.pychunk 42 文件stamphog 的AGENTS.md与README.md五、Post-dedup 发现的校验裁决全景本轮 15 条 post-dedup 发现中Opus 5 校验器保留了7 条全部真实、驳回了8 条全部不真实——即 PB.score.md 中的满分三项kept-are-real 7/7、real-are-kept 7/7、not-real-dropped 8/8。裁决对照score 文件按 PB 序号PB1/PB3/PB4/PB11–PB15 驳回PB2/PB5–PB10 保留。真实性标注来自 76 个已知问题簇known_clusters.json匹配 对混合簇/新声明在冻结 worktree 上的先反驳后验证refutation-first verification相同声明复用已验证结论PLAN.md 评分协议。按裁决与严重度分组如下5.1 ✅ VALID保留7 条严重度原始→调整主题核心结论should_fix→consider · bug可信 prompt 可能报告错误的 draft 状态reviewer.py:695-700既有实现reviewer.py_format_self_driving确实只在self_driving标志为真时渲染固定句子 It is a draft on purpose从不读取pr.draftmust_fix→should_fix · bugOpt-out 路径可能遗留迟到的 approvaltasks.py:894-898_retract_stale_approvals_on_skip只 dismiss 不 supersede与_retract_approvals_on_base_retarget先 supersede 全部非终态 run 再 dismiss形成不对称must_fix · security文档化的 positive-linkage 不变量未被强制AGENTS.md:84-99初始评审腿process_inbox_pr_review只校验 URL 形状、repo 配置、stateopen与非空 head SHA从不调用find_signal_implementation_runmust_fix · security授予 inbox review carve-out 前未校验 PR 来源receivers.py:126-137,225-231receiver 把output.pr_url当作出自 self-driving 任务的证明而该字段是用户可写的must_fix · security不可信 task output 激活特权评审路径tasks.py:1110-1112,1157-1182,1222-1229set_output仅要求task:writescope 且for_controlTruetask_control_q把SIGNAL_REPORT任务的操控权授予任意团队成员must_fix · securitycarve-out 信任未验证的上下文值review_local.py:321-324真值性truthiness半条不成立服务端以真实 bool 写入但验证半条成立初始腿缺少 webhook 腿的_is_bot_authored、head repo 与事件 repo 相等、find_signal_implementation_run三项检查must_fix · bugStamphog gate 忽略已选择加入的次要评审者receivers.py:111-126,151-155分支版先选一个评审者再查 toggleorigin/master同文件已实现_pick_stamphog_reviewer的任一 assigned reviewer 选择加入即触发逻辑5.2 ❌ dismissed驳回8 条严重度主题驳回核心理由should_fix · securityPR URL 解析器接受非 GitHub 与歧义 URL解析出的 repository 仅作为StamphogRepoConfig.for_team(team_id)的repository__iexact查找键GitHub 调用使用 DB 行中的 repositoryURL host 被丢弃无法跨租户读取should_fix · best_practiceBroker 故障永久丢失初始评审握手并非一次性receiver 在每次output保存时重新触发模块 docstring 明确故意重复触发head-keyed 去重使重复安全幂等恰成天然重试后续 push 的 webhook carve-out 是第二条独立恢复路径should_fix · best_practiceWorkflow-start 重试耗尽后 run 永久 QUEUED该条件产品级普遍存在webhook 腿同样max_retries3新腿反而通过 head-keyed 去重补上了恢复能力建议的调度恢复 worker 被判定为过度工程should_fix · code_quality先选一个候选再检查 run 资格结果 fail-closed 而非租户隔离漏洞无序 first() 断言不成立——DjangoQuerySet.first()无排序时按 pk 排序是确定性的should_fix · bug副作用 gate 可能读到过期 TaskRun前提不成立TaskRun不在任何 replica-backed 数据库上db_routing.yaml仅路由 4 个产品 DBReplicaRouter默认返回default建议的.using(db_for_write)是无操作should_fix · best_practiceBroker 故障永久丢弃初始评审receiver 版本与模块既有契约一致_start_review同样 fire-and-forget且origin/master合并版逐字节保留了该形态should_fix · best_practice延迟导入可能逃出保存路径transaction.on_commit在无原子块时立即执行且 stamphog 已在模块顶层硬依赖导入失败属不可达条件master 用robustTrue通用修复must_fix · best_practice排队中的评审忽略稍后的 opt-out这是文档化的有意设计AGENTS.md 明确 Dismissal is never preference-gated且建议的run 创建前复查只覆盖排队到取用的几秒窗口评审耗时数分钟的大头窗口根本不受影响六、裁决方法学validator 如何先反驳后验证理解这 15 条裁决需要明白 Opus 5 校验器的工作方式实现依据见 ARCHITECTURE.md 第 8 步与ValidateIssuesWorkflowwarm 多轮会话每 chunk 一个每轮一个 verdictvalidate_chunk_activity打开一个沙箱把该 chunk 的 issue 作为顺序 turn 逐条裁决load_run_validations把已裁决/待裁决拆开以支持恢复。标准是拉取的不是烘焙的prompt 指示 agentskill-get(review-hog-validation-criteria, versionN)拉取团队拥有的校验标准skills/review-hog-validation-criteria/SKILL.md 的默认 bar保留真实的用户影响正确性/安全/数据丢失/契约/性能问题丢弃过度工程、臆测、防御性偏执、永不会发生的边界与风格问题。argumentation 是验证增量不是复述IssueValidation.argumentation记录查了什么、在哪个文件哪一行发现了什么、确认的影响与优先级理由——本轮每条 dismissed 裁决都带着具体的文件:行号证据如products/stamphog/backend/tasks/tasks.py:1130的唯一调用点、products/tasks/backend/webhooks.py:41的过滤条件等。校验器可覆盖优先级IssueValidation.adjusted_priority允许 validator-wins如第一条 fromshould_fix降到consider、opt-out 竞态从must_fix降到should_fixARCHITECTURE.md Data models 节。本轮裁决的源码证据示例draft 状态误报VALID_format_self_drivingreviewer.py只以cl.get(self_driving)为键固定渲染 It is a draft on purpose…pr.draft在两个运行时都存在github.py、review_local.py所以修复成本低——这正是 validator 建议仅在pr.draft为真时包含该句的直接依据。URL 解析宽松dismissed_parse_pr_url的_PR_URL_RE是无锚点搜索tasks.py但下游process_inbox_pr_review现在会先做pr_repository ! repository的比对tasks.py并用 GitHub 侧的_is_self_driving_prbot 身份 repo-native head与find_signal_implementation_runhead ref 对 stamped branch双重绑定。特权评审路径VALIDprocess_inbox_pr_review在 tasks.py 的实参签名只携带team_id/pr_url/repository/acting_user_id/signal_report_id/task_run_id靠 URL 解析出的 repository 查配置而 webhook 腿_inbox_rereview_carve_out则执行_is_bot_authored、head repo 相等、find_signal_implementation_run匹配、团队复核与 toggle 复核tasks.py 附近。stale-approval 不变量这是 stamphog 的首要不变量——AGENTS.md 开头即声明 No stamphog approval may remain standing over commits it didnt review并规定dismiss_stale_approvals在每次 skip/supersede/abandon 后重跑。多条 dismissed 裁决正是据此判定无确认后果。七、实验结论定位为什么本轮 Opus 5 满分但整体建议不变本轮 P2 与姊妹组 P1 一起构成Sol reviewer medium Opus 5 validator档位FINAL_REPORT.md Sol at medium as reviewer 节评审侧P1/P2 各 14/15 条 dedup 发现、7 条真实real rate 50%/47%是 low 档3–4 条真实的两倍、xhigh 档11–13 条的一半评审盲点成本约 $10.5/轮评审阶段 12.5–14 分钟。但两轮都没有发现注册表中不存在的新真实问题PB5 LB20 的重复声明因此medium是 xhigh 的成本替补不是发现力替代。校验侧Opus 5 在本轮 precision 满分7/7 kept real、8/8 not-real dropped但这也部分源于输入面——14–15 条发现中 not-real 的一半是已知的三大家族broker/重试硬化诉求 cluster 58、无作用域find_task_run查找 cluster 39、排队时 toggle 信任 cluster 31。横评结论真实 xhigh 下的四轮L1/L2/M1/M2显示 Sol 校验器保留 18/19–20 条、几乎不丢 not-real0/7、1/7每 verdict 成本 $0.72–0.80 仅比 Opus 的 $1.06 便宜约 30%Sonnet 5 是 Sol 的低价版。最终建议仍是保留 Opus 作为校验器同时把 effort 修复#88893落地后在生产以 xhigh 运行 Sol 评审器。八、如何复现与继续深入读取更多运行报告姊妹运行 P-sol-medium-opus5-1.md、对照组的 M-sol-validator-1.md 与 L-opus5-validator-1.md评分数据本轮 PB.truth.json每条发现的真实性与簇归属、PB.score.md三维计分与 gateway 成本 gateway_usage.md实验设计PLAN.md 记录了运行配方run_review --pr-url … --team-id 1 --user-id 1与全部实验 hack产物生成器eval/scripts/dump_result.py 展示了实验报告的标准生成方式——从ReviewReportReviewReportArtefactchunk_set、perspective_result、issue_finding、validation_verdict等 artefact 类型渲染出本报告的全部表格架构总览ARCHITECTURE.md 与 CONTEXT.md 定义了 pipeline、视角/盲点/校验 skill、report 状态机与术语表stamphog 侧的不变量记录在 AGENTS.md。说明本报告描述的是 2026-08-26 冻结时刻的快照仓库为只读文中所有路径均为当前仓库相对路径读者可据此直接定位对应源码与实验数据继续核查。【免费下载链接】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),仅供参考
RELATED

相关推荐

Quartus II 13.0 安装与许可配置全攻略:从下载到仿真避坑指南

Quartus II 13.0 安装与许可配置全攻略:从下载到仿真避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/19 7:13:14
二分查找求旋转排序数组最小值:153 题解深度拆解与 154 重复元素进阶

二分查找求旋转排序数组最小值:153 题解深度拆解与 154 重复元素进阶

二分查找求旋转排序数组最小值:153 题解深度拆解与 154 重复元素进阶 【免费下载链接】leetcode LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。) 项目地址: https://gitcode.com/gh_mirro…

📅 2026/9/19 7:13:14
详解半导体集成电路QML认证:从MIL-PRF-38535到全流程落地

详解半导体集成电路QML认证:从MIL-PRF-38535到全流程落地

简介:一份关于半导体集成电路QML认证要求的研究文献,基于GJB 7400—2011《合格制造厂认证用半导体集成电路通用规范》展开分析,适合军用电子元器件认证机构、集成电路设计制造单位及质量可靠性工程师参考。内容首先梳理了当前军标实施中的三类…

📅 2026/9/19 7:08:14
MORE NEWS

更多资讯

📰

AIGC新手入门:5分钟快速注册与使用指南

1. 项目概述最近发现很多朋友对AI生成内容(AIGC)的注册和使用流程感到困惑,特别是新手用户经常在第一步就被卡住。作为一个从零开始摸索的老用户,我想分享一套完整的从注册到实际应用的保姆级教程。这个流程经过多次优化&#xff…

📰

Flutter鸿蒙适配内存问题排查:从黑屏白屏到OOM闪退实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

数据结构从理论到代码:手写链表、二叉树、哈希表与调试实战

简介:这份PDF是山东大学《数据结构》课程内容整理,面向计算机专业本(专)科生、考研与期末复习者,帮助快速建立从数据组织到算法分析的知识框架。资源共1个文件,为PDF格式,压缩包大小仅324KB&…

📰

ComfyUI云端GPU部署全攻略:从选卡到工作流调优

这标题一说出来,估计不少玩ComfyUI的哥们儿都心有戚戚焉。本地显卡跑个小图还行,一上SDXL、视频模型或者带ControlNet的重工作流,显存直接爆红,出图慢得像PPT翻页。我也是被逼无奈,才把目光转到云端GPU上。折腾了小一个…

📰

嵌入式衣物护理机选购指南与热门机型测评

1. 嵌入式衣物护理机选购指南第一次接触嵌入式衣物护理机是在朋友家的整体衣柜里看到的。这个看起来像迷你衣柜的电器,不仅能除味除菌,还能除皱烘干,完全颠覆了我对传统衣柜的认知。作为一个在家电行业摸爬滚打多年的老手,我决定深…

📰

OpenClaw架构解析:LLM与工具调用的工程实践

1. OpenClaw架构全景解析OpenClaw最近在AI工程圈引发热议,这个将大语言模型(LLM)、工具调用(Tools)和运行时环境(Runtime)深度融合的框架,正在重新定义AI应用的开发范式。作为全程参…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬