# Overnight 质量验证运行手册 本文档用于长时间运行提号质量矩阵,验证“上传 Brief 后生成商务可用博主名单”的稳定性、去重质量、主页证据覆盖和策略效果。 ## 快速 Smoke 不需要 live token,只验证 fixture、聚合报告、软件端表格、人工复核抽样、门禁和泄密扫描。 ```powershell $env:TIHAO_OVERNIGHT_LIVE="false" npm run overnight:quality ``` 限制运行次数: ```powershell $env:TIHAO_OVERNIGHT_LIVE="false" $env:TIHAO_OVERNIGHT_MAX_RUNS="5" npm run overnight:quality ``` ## 受控 Live 子集 正式长跑前先跑一个小子集。会消耗真实额度,范围要小。 启动前先跑长跑就绪度审计,确认 live 预检和历史数据审计都满足当前目标: ```powershell npm run longrun:readiness -- --mode live-subset --preflight --strict ``` ```powershell $env:TIHAO_SESSION_TOKEN="" $env:TIHAO_COMPANY="" $env:VOC_SOCIAL_TOKEN="" $env:VIDEO_ANALYSIS_BASE_URL="https://api.fmode.cn" $env:VIDEO_ANALYSIS_MODEL="doubao-seed-2-0-pro" $env:VIDEO_ANALYSIS_TOKEN="" $env:TIHAO_OVERNIGHT_LIVE="true" $env:TIHAO_OVERNIGHT_FIXTURES="dha-mom-baby" $env:TIHAO_OVERNIGHT_VARIANTS="baseline-live,result-first" $env:TIHAO_OVERNIGHT_MAX_RUNS="2" $env:TIHAO_OVERNIGHT_FAIL_ON_GATES="true" npm run overnight:quality ``` ## 完整 Live 矩阵 受控子集通过后再跑完整矩阵。 ```powershell $env:TIHAO_OVERNIGHT_FIXTURES="dha-mom-baby,sensitive-skin-repair,healthy-snack,home-cleaning,618-list-seeding" $env:TIHAO_OVERNIGHT_VARIANTS="baseline-live,reference-account,homepage-evidence,video-enhanced,result-first,result-first-risk,result-first-broad" $env:TIHAO_OVERNIGHT_DELAY_MS="1500" $env:TIHAO_OVERNIGHT_RUN_RETRIES="1" $env:TIHAO_OVERNIGHT_RESUME="true" $env:TIHAO_OVERNIGHT_FAIL_ON_GATES="true" npm run overnight:quality ``` ## 常用参数 - `TIHAO_OVERNIGHT_FIXTURES`:指定要跑的 fixture id,用逗号分隔。 - `TIHAO_OVERNIGHT_VARIANTS`:指定策略变体,用逗号分隔。 - `TIHAO_OVERNIGHT_MAX_RUNS`:最多新增执行多少个 run。 - `TIHAO_OVERNIGHT_DELAY_MS`:live run 之间的等待时间。 - `TIHAO_OVERNIGHT_RUN_RETRIES`:live 网络错误时整轮重试次数。 - `TIHAO_OVERNIGHT_RESUME=true`:复用同一输出目录下已有 `quality-summary.json`。 - `TIHAO_OVERNIGHT_FAIL_ON_GATES=true`:发布门禁失败时返回非 0 exit code。 - `TIHAO_GATE_MIN_EVIDENCE_COVERAGE`:有视频证据时的最低证据覆盖率。 - `TIHAO_GATE_MAX_NEGATIVE_RISK_RATE`:最高负样本风险率,默认 10%。兼容旧环境变量 `TIHAO_GATE_MAX_OFF_TOPIC_RATE`。 - `TIHAO_GATE_MAX_SCORE_DROP`:live 模式 top-10 均分相对 baseline 允许下降的最大分数。 - `TIHAO_GATE_REQUIRE_REFERENCE_PROVIDER=true`:`reference-account` 策略必须拿到真实参考补证 provider `ok`,否则门禁失败。 - `TIHAO_GATE_REQUIRE_HOMEPAGE_PROVIDER=true`:`homepage-evidence` 策略必须拿到真实主页最近内容 provider `ok`,否则门禁失败。 严格 provider 门禁只在真实 provider 联调或 live 长跑验收时打开。sample/fallback 环境打开后失败是正常结果,表示不能把 fallback 证据当成真实 provider 证据。 ## 输出目录 ```text outputs/overnight-quality-/ manifest.json runs/// aggregate-summary.json aggregate-report.md failures.json manual-review-sample.csv ``` `manual-review-sample.csv` 已加 UTF-8 BOM,Windows Excel 直接打开应显示中文。 ## 证据台账 长跑或复核结束后运行: ```powershell npm run evidence:index ``` 它会扫描 `outputs`,生成 `evidence-index-summary.json` 和 `evidence-index-report.md`,用于区分: - `real_evidence`:包含 live、客户选择、历史数据或视频 A/B 的真实证明入口; - `smoke_or_local`:只证明结构、门禁或启动前置条件,例如 `live-preflight` 已就绪; - `not_business_proof`:明确显示仍缺真实数据或状态未完成。 `live-preflight-summary.json` 会作为 `live-preflight` 类型进入证据台账。它只能证明 sessionToken、company、provider 和视频模型等启动前置条件,不等同于 live 长跑结果或客户效果证明。 ## 自动化门禁 必须满足: - `acceptance.overallPass=true` - `acceptance.releaseCoveragePass=true` - `failureCount=0` - `failedGateCount=0` - 软件端表重复键为 0。 - 软件端表排名从 1 开始连续。 - 每个 run 都输出主页证据状态。 - 开启严格 provider 门禁时,`reference-account` 的参考补证状态必须为 `ok`。 - 开启严格 provider 门禁时,`homepage-evidence` 的主页证据状态必须为 `ok`。 - live 发布策略有真实召回。 - 发布策略强推荐数不低于 baseline。 - 有视频证据时 top-10 证据覆盖达到门槛。 - 负样本风险率不高于 10%。 - live 模式 top-10 均分相对 baseline 下降不超过门槛。 - token 泄密扫描为 0。 ## 策略角色 - `baseline-live`:基线策略,只用于对比。 - `reference-account`:发布候选策略,用于验证参考账号/参考链接补证和相似度链路。 - `homepage-evidence`:发布候选策略,用于验证主页最近内容、封面质感和调性一致性链路。 - `result-first`:发布候选策略,参与发布门禁。 - `result-first-broad`:发布候选策略,参与发布门禁。 - `video-enhanced`:诊断策略,用于观察视频证据影响。 - `result-first-risk`:诊断策略,用于观察风险提示和证据批处理。 诊断策略 warning 需要复盘,但只要每个 Brief 都有通过的发布策略,就不阻断发布验收。 ## 人工复核 先打开 `aggregate-report.md` 看整体结果,再打开 `manual-review-sample.csv` 标注“人工复核标签”。夜跑表已预置 `客户选择`、`归因类型`、`反馈原因` 三列,商务不用手动加列。 - 可直接发客户 - 商务复核 - 跑偏 - 硬性规则违规 - 调性不符 - 主页质感不符 - 参考账号不像 - 可投但需补证 如果是负样本,必须填写 `归因类型`: - 需求解析错 - 隐性规则漏 - 召回关键词错 - 主页证据不足 - 视频证据误判 - 排序权重错 - 输出解释错 - 软件端表重复或排名不连续 如果已经拿到客户最终反馈,在 `客户选择` 列填写: - 客户选中 - 客户拒绝 - 待客户反馈 人工复核重点: - top 博主是否真的能给客户解释清楚推荐理由。 - 视频/参考证据是否真的提升了风格调性判断。 - 是否有活动词、明星词、无关品类词污染召回。 - 是否有重复、低质量账号、报价或合规风险。 自动化门禁只证明结构和方向,不能替代最终合规、报价、主页有效性和客户选中率验证。 ## 客户效果收口 拿到客户最终反馈和本轮人工补号量后,先跑复核指标,再跑客户效果证明: ```powershell npm run review:metrics -- --input <已标注CSV> --output <输出目录> --strict npm run customer-effect:audit -- --review-csv <已标注CSV> --history-audit --current-manual-supplement-count <本轮人工补号量> --output <输出目录> --strict npm run evidence:index -- --output outputs\evidence-index-latest ``` 如果历史数据是 CSV,可以使用 pipeline 串起历史导入、历史审计、复核指标、客户效果审计和证据台账: ```powershell npm run optimization:pipeline -- --history-csv <历史数据CSV> --review-csv <已标注CSV> --current-manual-supplement-count <本轮人工补号量> --output <输出目录> --strict ``` 客户效果证明必须同时满足: - 客户选中率 >= 30%。 - 有参考账号/视频时,参考链路客户选中率 >= 40%。 - 长期客户选中率目标 >= 50%。 - 历史人工补号基线存在。 - 本轮人工补号量存在。 - 人工补号量减少率 >= 50%。 缺少任一项时,`customer-effect-summary.json` 会被证据台账标记为 `not_business_proof`,不能宣称客户效果已经达标。