遥测仪表盘对抗性验证实战:omo-senpi 原生工具调用并行度卡片如何从 needs-fix 走到 confirmed
遥测仪表盘对抗性验证实战omo-senpi 原生工具调用并行度卡片如何从 needs-fix 走到 confirmed【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent本文以 oh-my-openagent 仓库中.omo/evidence/telemetry-parallel-latency-v2/verify-t8.mdtodo 8「dashboard card skill docs」的独立对抗性验证报告为主线完整还原一套可复用的「仪表盘遥测卡片验证方法论」从列映射静态核对、哨兵值sentinel渲染、像素级高度测量到诚实标签、比率口径、异常输入矩阵与源码公式交叉核对。读完你不仅能看到 omo-senpi 遥测模块中「原生工具调用并行度native tool-call parallelism」卡片的实现细节还能掌握如何用独立验证者身份发现一个「数据全对、交付却有缺陷」的真实案例以及修复后如何被二次确认confirmed。背景parallelism_summary 事件与「实测跨度」并行度卡片在 omo-senpi 的遥测体系中工具调用的并行度此前只能靠「同一秒内 delegation_started 记录」反推属于下界估计。todo 8 引入了一个新事件parallelism_summary每个会话至多发射一次携带按调用call实测开始/结束时间聚合出的并行度指标。与之配套仪表盘上新增了一对.g21卡片네이티브 툴콜 병렬도 — 실측 스팬 기반Native 工具调用并行度——基于实测跨度主卡片展示modeled_saved_ms模型估计节省、saved_round_trips、各类比率eval 버킷 · 데이터 품질eval 桶 · 数据质量副卡片展示 eval 独立/混合波次、上界参考值、三个数据质量计数器。对应的仓库侧核心实现位于 savings-math.ts、wave-assembler.ts 与 eval-classifier.ts。需要特别说明todo 8 本身只改动本地 skill 文件~/.agents/skills/omo-native-telemetry/下的templates/unified_model.py、templates/build_unified.py、SKILL.md并未触碰 git 仓库仓库源码只作为实现事实的对照物。下表是任务涉及的主要文件与角色文件skill 本地路径或仓库路径角色~/.agents/skills/omo-native-telemetry/scripts/fetch_data.py执行 41 个查询并落盘 JSON其中parallelism查询在约第 69 行~/.agents/skills/omo-native-telemetry/templates/unified_model.py定义PARALLELISM_COLS、hms()、build_parallelism()视图模型~/.agents/skills/omo-native-telemetry/templates/build_unified.py视图模型到 HTML 的模板渲染含body{height}与新增卡片块~/.agents/skills/omo-native-telemetry/scripts/run_dashboard.py一键流水线fetch → growth → build → headless Chrome 截图 →可选Discordsavings-math.ts仓库内节省量数学实现modeledWallClockSavedMs、upperBoundSavedMs、savedRoundTripswave-assembler.ts波次组装spanMsmaxEnd − minStart、maxConcurrency扫描线eval-classifier.tseval 波次分类与位置直方图编码以下各节按验证报告的检查顺序展开每一步都给出「验证方法 结论 依据」。一、列映射验证13 列逐位对齐PASS 13/13仪表盘渲染的前提是查询返回的每一列必须与视图模型PARALLELISM_COLS中对应的模型标签一一对应。验证者没有相信任务简报里的「11 列」而是直接解析了 fetch_data.py 中parallelism查询的 SELECT 列表按括号深度感知的顶层逗号切分与unified_model.py:12-16的PARALLELISM_COLS逐位 zip 对比idx查询列别名模型标签匹配0count() sessionssessionsmatch1sum(...non_eval_saved_round_trips)saved_round_tripsmatch2sum(...modeled_wallclock_saved_ms)modeled_saved_msmatch3sum(...non_eval_waves_total)waves_totalmatch4sum(...non_eval_waves_multi)waves_multimatch5sum(...non_eval_joined_calls)joined_callsmatch6sum(...eval_only_waves)eval_only_wavesmatch7sum(...mixed_waves)mixed_wavesmatch8sum(...incomplete_calls)incomplete_callsmatch9sum(...clock_anomalies)clock_anomaliesmatch10sum(...dropped_calls)dropped_callsmatch11sum(...measured_turn_duration_ms_total)measured_turn_msmatch12sum(...upper_bound_saved_ms)upper_bound_saved_ms_refmatch结论查询实际返回13 列而简报声称 11 列——measured_turn_ms与upper_bound_saved_ms_ref被简报遗漏了。作者从源码而非简报建映射是正确的零 off-by-one。这是一个重要的方法论教训数据契约以源码为准不以任务说明为准。哨兵渲染验证真正的检验静态比对仍可能双双出错因此验证者注入了一行哨兵数据[[101,102,...,113]]每列一个唯一整数按查询顺序重建并渲染后从 PNG 上直接读回数字哨兵查询列屏幕出现位置结论101sessions세션 101개correct102saved_round_trips라운드트립 102회correct103modeled_saved_ms头条모델 추정 절감 0.1초103mscorrect104waves_totalnon_eval 웨이브 104개作为105/104개的分母correct105waves_multi105/104개的分子101%correct106joined_calls총 106콜correct107eval_only_waveskvroweval 단독 웨이브 107개correct108mixed_waveskvroweval 혼합 웨이브 108개correct109incomplete_calls미완결/시계이상/드롭 콜 109 · 110 · 111第 1 项correct110clock_anomalies同一行第 2 项correct111dropped_calls同一行第 3 项correct112measured_turn_ms측정 턴 0.1초比率 103/112 渲染为92.0%correct113upper_bound_saved_ms_ref상한 참고치 (상한, 헤드라인 아님) 0.1초correct衍生健全性检查eval 桶头条显示215개 107108 精确成立1.01개 106/105101% 105/104。若列位置整体偏移一位至少会破坏其中三个算式——全部吻合意味着无错标。这套「静态映射 哨兵像素回读」双保险是验证数据管线的黄金组合。二、双状态渲染与像素级高度测量PASS新卡片面临一个现实约束parallelism_summary尚未全量部署线上唯一真实路径是零数据。验证者用真实 fetch41 个 JSONEXIT0确认了生产数据形态parallelism.json - [[0,null,null,null,null,null,null,null,null,null,null,null,null]] parallelism_daily.json - []即「一行全 null」而非空数组——这正是视图模型必须 gate 的陷阱详见下文稳健性节。高度测量不是猜而是扫验证过程用--force-device-scale-factor1 --window-size1080,4200的超大窗口渲染再把body{height}临时改为 4200然后自底向上扫描像素行找出最后一个与背景色#f5f4ed不同的行容差 6每隔一列采样状态最后非背景行0 起内容底边3060 处留白无数据真实 fetch29732974px86px有数据合成数据30213022px38px关键发现有数据状态比空数据状态高约 48px——真实数字到达后头条会折行成两行。若只按当前全 null 状态调高度交付时看似正常等事件真正落地那天会静默裁掉页脚。验证者独立复现了作者声称的 2973/3021 像素级数值并确认 3060 覆盖两种状态2580 会裁 442px3000 会裁掉有数据态页脚第二行 22px。这就是「measure the TALLEST variant」规则的意义。两种状态在声明的--window-size1080,3060 --force-device-scale-factor2下渲染后逐字阅读无数据态头条모델 추정 절감 수집 대기STONE 占位色不会误读为数值、三根零填充条、副卡eval 버킷 수집 대기全部수집 전页脚两行完整且下方留白有数据态모델 추정 절감 1.3시간 · 라운드트립 9,134회折两行、14% · 7,318/51,204개、3.00개 · 총 21,940콜、6.7% · 측정 턴 19.9시간、副卡eval 버킷 2,805개/1,842개/963개/5.4시간/217 · 4 · 38页脚完整。同时对三种状态的可见文本剥掉标签后执行None/null/undefined/NaN正则扫描零命中。HTML 中唯一的裸none是 sparkline 的 SVG 属性fillnone不是文本——这一点与任务作者用grep -io none\|null得到的单一命中完全一致。三、诚实标签与 eval 桶分离PASS遥测类仪表盘最大的信誉风险是「把模型估计说成实测」。验证者直接从渲染 PNG 而非源码读取头条字面为모델 추정 절감 模型估计紧邻数值副行重复측정된 벽시계 시간이 아니라 모델 추정치不是实测墙钟时间而是模型估计第 3 行标签为턴 측정시간 대비 모델 추정 절감。任何位置都没有把节省量呈现为实测墙钟时间。upper_bound_saved_ms只以副卡中一行 kvrow 出现标签为상한 참고치 (상한, 헤드라인 아님)上界参考值——上界不是头条。两种状态下它都从未成为头条。eval 桶分离同样在像素上验证eval 단독 웨이브与eval 혼합 웨이브是两个独立 kvrow其和eval_bucket_waves是副卡自己的头条且从不加进waves_total/joined_calls——哨兵运行证明了这一点eval107/108 时 non_eval 分母始终是 104/105/106。屏上存在排除声明eval/코드모드 웨이브는 의도적으로 병렬도 수치에서 제외하고 별도 집계。旧的委派批处理卡片병렬 툴콜링 절감 — 시리얼 실행 반사실仍然存在且可区分新卡带脚注「上方的委派批处理节省是按同一秒调度推断的下界本卡是按逐调用实测时刻计算的直接测量值」。四、比率口径永不均值化比率PASSbuild_parallelism中所有除法均为舰队级 sum/summulti_share: n[waves_multi] / waves_total * 100 if waves_total else 0.0 calls_per_multi_wave: joined / n[waves_multi] if waves_multi else 0.0 modeled_saved_per_session_ms: n[modeled_saved_ms] / sessions # sessions0 由 gate 保证 saved_share_of_turn: n[modeled_saved_ms] / n[measured_turn_ms] * 100 if measured else 0.0分子分母全部来自查询的sum()聚合。查询与视图模型中不存在任何逐会话比率因此「比率均值的均值」mean-of-ratios在结构上不可能出现每个除数都有守卫不存在ZeroDivisionError路径。这一点在视图模型定义unified_model.py的build_parallelism()中同样明确注释fleet rate sum/sum, not the average of per-session rates。五、稳健性矩阵两类崩溃均为存量行为MOSTLY PASS验证者对数据文件做了系统性的破坏性探测探针结果rm parallelism.jsonrc0html written 12559走占位路径HTML 无 tracebackrm parallelism_daily.jsonrc0html written 12559两个都删rc0html written 12559[[5,1,2]]3 列太少rc0html written 12431——zip截断缺失键默认 016 列太多rc0html written 12439——多余列被zip丢弃[]空数组rc0占位路径[[7,null×12]]sessions7指标全 nullrc0渲染真实 0 值无None数字位置放入字符串[7,abc,...]rc1ValueError: could not convert string to float: abc畸形 JSON{oopsrc1json.decoder.JSONDecodeError畸形的parallelism_daily.jsonrc1JSONDecodeError两类崩溃ValueError 与 JSONDecodeError被判定为整个模块的存量行为、非 todo 8 引入验证者在未改动的headline.json上复现了完全相同的崩溃echo not json headline.json→ 同样的JSONDecodeError[[abc,1,2,3]]→ 同样的ValueError。关键在于构建崩溃时不写任何 HTML 文件ValueError 运行后index_unified.html不存在因此栈追踪永远不可能进入 HTML——「HTML 中不得出现栈追踪」的硬性要求无条件满足。构建以非零退出run_dashboard.py在fail(build_unified, ...)处快速失败。六、文档公式与仓库源码逐条核对PASS验证者把SKILL.md中的每一个公式主张都与仓库源码对照全部 exactSKILL.md 主张仓库来源结论modeled_wallclock_saved_ms Σdᵢ − spanspan maxEnd − minStartsavings-math.ts 的modeledWallClockSavedMs→sum(durations) - wave.spanMswave-assembler.ts中spanMs: maxEnd - minStartexactmax(dᵢ)在链式 A(0-5)/B(4-9)/C(8-12) 上高估 4.5 倍重算Σd14span12 → 节省 2Σd−max(d)99/2 4.5exact真正同时批次的span max(d)savings-math.ts 头注释原文exactsavedRoundTrips Σ max(maxConcurrency−1, 0)而非N−1savings-math.tssavedRoundTrips→Math.max(wave.maxConcurrency - 1, 0)exactupper_bound_saved_ms (N−1) × mean(d)savings-math.tsupperBoundSavedMs→(durations.length - 1) * meanexacteval 过滤会虚增节省1.20s 报成 0.70seval-classifier.ts注释原文测试用例使用这些字面量exact8 个位置桶1,2,3,4,5_8,9_16,17_32,33plus:连接无标签eval-classifier.tsWAVE_SIZE_BUCKET_MAXIMA [1,2,3,4,8,16,32]与histogram.join(:)测试断言not.toContain()exact64 字符截断带标签69 字符位置式39 字符telemetry-core/src/events.ts的value.slice(0, 64)最坏位置式2000:...×8 39最坏带标签式 69exactMAX_TRACKED_CALLS 2000wave-assembler.tsexactclock_anomaliesendMs startMs不假设单调性savings-math.tsusableDurations中if (call.endMs call.startMs) continueexact零数据 一行 nullparallelism_daily[]在真实 fetch 上复现exact事件 schema 行 (8 events)parallelism_summary行存在所有属性列出计数 7→8correctparallel_savings必须标注为 LOWER BOUND文档更新正确但渲染文案未更新→ DEFECT-1doc ok / render stale高度流程 「测量最高的变体」2967 空 vs 3021 有数据测量 2974/3022 确认排序与教训correct值得注意的是最后一行的「文档 ok / 渲染过期」——这正是验证者拒绝confirmed的第一条理由。七、DEFECT-2证据文件里的一条假事实已澄清任务作者的证据文件 Risks 第 1 项声称scripts/run_dashboard.py仍以硬编码--window-size1080,2150第 61 行渲染一次性流水线会静默给 Discord 发送被裁剪的 PNG。验证者用 grep 直接证伪$ grep -c 2150 run_dashboard.py - 0 $ grep -n window-size run_dashboard.py 68: f--force-device-scale-factor2 --window-size1080,{height} 真相是run_dashboard.py第 58-62 行从生成的 CSS 中解析高度re.search(rbody\s*\{[^}]*?height:(\d)px, html)再喂给 Chrome第 61 行是fail(render_height, ...)分支而非硬编码尺寸。端到端实测$ python3 run_dashboard.py --data-dir /tmp/vt8-pipeline --no-upload { ... render_height: 3060, png: .../dash_unified.png, discord: {skipped: true} } EXIT0结论当前一次性 Discord 流水线不会发送被裁剪的 PNG。一个证据文件若把「伪造的后续任务」交给下一位工程师本身就是证据的缺陷——这也是 todo 8 被 reopen 的第二条理由。验证者还披露了会话期间的并发编辑观察17:53 时run_dashboard.py的正则是body\{[^}]*?height:(\d)px不匹配带空格的body {会误触fail(render_height)17:56 更新为body\s*\{...后匹配成功得到 3060。当前磁盘状态正确验证结论钉在 17:56 状态的 sha1 上。八、DEFECT-1画面自相矛盾阻断缺陷todo 8 的交付在同一个画面里自相矛盾build_unified.py中既有的「병렬 실행 × 캐시」卡片仍渲染일반 툴콜/eval 병렬도는 여전히 미계측一般工具调用/eval 并行度仍未插桩而这行文案恰好位于新卡片上方约 600 CSS px 处——新卡片测量的恰恰就是它。作者把 SKILL.md 中对应句子改对了却漏掉了像素。这不是数据完整性 bug而是交付物的可信度 bug且完全在 todo 8 范围内「대시보드 카드 문서 반영」。修复用一行文案替换保留了全部三层语义代理 → 下界 → 直接测量- div classcs stylemargin:10px 0 0일반 툴콜/eval 병렬도는 여전히 미계측 — 아래 절감치는 위임 배치만의 하한/div/div div classcs stylemargin:10px 0 0이 카드의 병렬도는 위임 배치 비율 대리치 · 바로 아래 절감치도 위임 배치만의 하한이고, 일반 툴콜/eval 병렬도는 맨 아래 실측 스팬 카드에서 직접 측정/div/div修复后미계측在模板、SKILL.md 与两份渲染 HTML 中均归零文案更长的替换句让两种状态的高度从 2974/3022 涨到 2988/30363060 下仍有 72/24px 余量高度维持 3060 无需改动。二次独立验证verify-t8-repair.md逐像素确认三张卡片的陈述互相一致且 대리치代理/ 하한下界/ 직접 측정치直接测量用三个不同的韩语术语区分没有把精度压平成含糊其辞。九、对抗性验证的方法论要点把这份报告抽象出来得到一套可复用于任何「数据 → 渲染 → 文档」交付的验证清单契约以源码为准简报说 11 列源码是 13 列——读 fetch_data.py 的查询而不是猜。静态映射 哨兵渲染双保险每列一个唯一整数注入后从 PNG 回读任何一位偏移都会破坏多个衍生算式。测最高的变体有数据态比空数据态高 48px只按当前零数据调高度会在事件落地当天静默裁页脚。诚实标签必须上屏验证估计值、上界、下界、直接测量分别用不同术语且「估计」字样与数值相邻。比率口径可审计sum/sum 而非 per-session 均值结构上杜绝 mean-of-ratios。崩溃也要分级区分「本交付引入」与「模块存量行为」并验证崩溃时不会把栈写入产物。证据文件本身要被审查一条被证伪的风险声明2150 硬编码足以让confirmed降级为needs-fix。画面一致性检查同一张图的上下两行文案不得互相矛盾——文档改对而像素漏改是最高发的交付缺陷之一。最终判定数据路径列映射、gate、比率、诚实标签、eval 分离、高度全部正确两个缺陷一条过期屏幕文案 一条证据文件假事实修复后获得confirmed置信度 0.92。这个案例的价值在于证明「数据全对」不等于「交付合格」对抗性验证必须把文档、像素与证据文件都纳入攻击面。上图来自 f3-render 人工 QA 留存展示新卡片在parallelism_summary尚未流数据时的占位形态左卡头条为 STONE 色的「모델 추정 절감 수집 대기」三根 SILVER 零填充条右卡全部「수집 전」与本文第三节的诚实标签与占位规范一一对应。相关完整渲染与页脚裁剪证据可继续查看同一目录下的 f3.md 与 task-8.md。【免费下载链接】oh-my-openagentOmO: Just type mass ulw keyword with your prompt. Now you are the master of graph engineering.项目地址: https://gitcode.com/gh_mirrors/oh/oh-my-openagent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考