# Benchmark 错题失败机理分类（第三轮：242 题全量）

- **日期**: 2026-07-11
- **目的**: 出题的目标不是与 benchmark 难度一致，而是产生能迁移的训练信号。本分析对 `infer_adhoc` 全部 242 道错题做机理级归因（统一 8 类分类法），确定出题应针对的技能缺陷、应回流建树/工具的硬缺陷、以及 benchmark 自身的噪声上限。
- **方法**: 5 组并行深度分析（4 组 Claude + 1 组 Codex/GPT-5.4），每组对 T1/T2 判定强制树内核实（合计 130+ 题做了 tree.json 核实）；对 Codex 组做了抽查校准。
- **前序**: [2026-07-11-question-gen-calibration-analysis.md]（生成题缺陷两轮分析）

## 一、全量分布（242 题）

| 类别 | 数量 | 占比 | 处置 |
|------|------|------|------|
| T2 检索未命中（证据在树中但没搜到） | 74 | 31% | **出题训练**（全部可学） |
| T5 推理/整合错误（证据在手判错） | 67 | 28% | **出题训练**（约 2/3 可学） |
| T7 题目/标注问题 | 39* | 16% | benchmark 噪声，出题时反向规避 |
| T1 树证据缺失 | 24 | 10% | **回流建树管线**，不出题 |
| T3 视觉验证缺失/误读 | 17 | 7% | 部分可学（多帧验证技能） |
| T4 跨段聚合失败 | 12 | 5% | 出题训练 |
| T8 基础设施 | 5 | 2% | **修 AgentLoop**（见 §四） |
| T6 时间定位失败 | 4 | 2% | 出题训练 |

*T7 注意事项：其中 27 题来自 Codex 组（Counting/Temporal），抽查发现 1 例误判（604-2 "Selic" 实在树中，应为 T2）且其"树时间戳与标注冲突"类判定存在解释陷阱——树不是 ground truth，冲突也可能是树的时序表征错误。已证实的硬 T7 如 624-2（选项 B/D 一字不差重复）。T7 真实范围估计 20-39，时序类需视频级裁决。

**可训练份额：T2+T4+T5+T6 ≈ 157 题（65%）+ T3 部分 ≈ 7%。** 出题的"可作用空间"约占错题的 2/3——远大于树缺陷（10%），这决定了改进优先级在 Agent 技能而非树重建。

## 二、五大跨题型失败机理（多组独立收敛）

### M1 负证据幻觉（T2 的公共机理，最大单一杠杆，4 组独立发现）
语义搜索 2-3 次未命中 → Agent 断言"视频中不存在 X" → 以假阴性驱动排除法，或落入 "None of the above / not mentioned" 吸引子。证据实际以三种低召回形态存在：**实体列表/visible_entities 标签**（"Bluetooth headset (both ears)"、"Zwicky"）、**画面文字 visible_text**（姓名条、白板比分、标题卡）、**长字幕块中的单句**（"well I'm a magician"）。恶化因素：view_node 的按题摘要会吞掉 entities 字段信号（Agent 站在证据节点上仍漏读）；L1 摘要的沉默被当成全树的沉默。缺失技能：检索升级协议（语义→关键词→变体扩展→分支遍历→entities 直读）+ 负证据高门槛。

### M2 字面匹配压倒语义/语用还原（T5 主干）
裁决准则偏向 n-gram 重合而非语义变换：蕴含判断失败（128K 上限→当然能输入 32K）、虚拟语气/反问句误读（"I would be a fan"）、触发事件当动机、序数映射错（倒计时视频"第 16 个描述"=排名 15）、出题语病零容错、外部世界知识凌驾视频内证据（用 2026 年知识否决 "all goals 200"）、NOTA 双向失灵（该容错时跳 NOTA、该保守时过度推断）。

### M3 多实例锚定错误 + 首个匹配即停（T4/T6/部分 T5）
题目锚是"第 N 个/最后一个/紧接 X 之后/首次"而视频有多个相似候选，Agent 绑定第一个表面匹配后不再枚举后续推翻证据（"FINAL MODE" 之后还有 "we got a whole van"）；序数题用时长线性外推替代逐项数数；全局占比题不做按时长/节点数的覆盖率统计，用单场景概括全片或用少数反例一票否决主导主题。

### M4 视觉验证时点/粒度失配（T3）
用单帧回答状态演化题（上色前的花盆判最终颜色）、observe_frame 过度解读（膝上交握双手读成"十指交叉"魔术环节）、验证帧与题目锚定时刻不对齐（Penny 不在场的帧回答"Penny 进门时"）。

### M5 实体 grounding / ASR 变体断链（横跨 T2/T5）
题目实体与树内 ASR 噪声变体不对齐（Harry→"Harley"、martabak→"marcher back"、PRZYBYLKO→"pris Bilco"），缺"变体扩展+属性核对（国籍/拼写/归属）"步骤；字幕无说话人标注导致归属靠共现猜测。

## 三、树侧硬缺陷（T1，24 题，回流建树管线）

集中在四类：**亚秒级瞬时动作**（缆绳绊翻卡车被编码成"车轮被橙光吞没"）、**密集重复背景动作**（球童每回合捡球）、**记分牌瞬时数值与赛程的时序绑定**（比分帧被标"训练场景"）、**无对白叙事因果**（舞台剧对白 ASR 缺失、动画剧情结局）。

**⚠️ 树污染（已审计并整改，2026-07-11）**：源头确认为历史建树增强环节曾把题目+答案作为信息输入 LLM 提取。全量普查（900 题 × 300 树，词面 S1/S2 检测）：真污染 74 处（52 题、50 视频，87% 在 L2 entities[]）；污染题正确率 69.2% 低于基线 73.3%，**未推高评估分数**。整改：71 处经 LLM 按树原生上下文改写（不见题目、出厂门校验与题目零词面命中），3 处经核实为合法屏幕文字/讲座主题引用予以保留；改写后残余命中均为合法重合（画面 OCR、字幕原话、描述性短语碰撞）。整改前全树备份：`data/backups/trees-pre-decontam-20260711.tar.gz`。

## 四、工程缺陷（T8，5 题，修 `core/agent/loop.py`）

1. deepseek 稳定输出变体（`args` 平铺 + ```json 围栏）解析三连拒 → 0 步阵亡（637-3、615-3）；json_repair 修不了结构错位，需 parser 增加变体适配
2. LLM 调用异常（SSL BAD_RECORD_MAC、瞬时 API 错）无步级重试，一次网络抖动废掉 13 步上下文（796-3）。位置：`loop.py:118-159`

## 五、针对性出题规格（替代"难度一致性"目标）

| # | 题目形态 | 治什么 | 构造要点 |
|---|---------|--------|---------|
| 1 | **证据埋深/反"不存在"题** | M1（最大杠杆） | 正确判据只在 entities/visible_text/长字幕单句；干扰项含 "not mentioned"；配镜像题（真不存在）；判分要求证据节点 id + 宣称不存在须附遍历轨迹 |
| 2 | **转述还原题** | M2 | 正确项需一步语义变换（蕴含/虚拟语气/序数映射/轻微语病），干扰项与原句 n-gram 高重合但语义错 |
| 3 | **NOTA 校准对** | M2 | 成对生成：一半 NOTA 为正解、一半为陷阱，训练"最佳可用答案 vs 证据不足"判界 |
| 4 | **多实例锚定题** | M3 | 同类事件出现 ≥2 次的视频，问"第 N 次/紧接 X 后/首次"，保证首个表面匹配是错的 |
| 5 | **序数枚举题** | M3 | 无显式编号视频问"第 N 个"，N 取中段迫使完整数数；答案附计数单元节点 id 清单（可程序化验证） |
| 6 | **覆盖率权重题** | M3 | 主旨题四选项=全局框架(对)/前半段强子主题/品牌水印词/少数派场景 |
| 7 | **实例消歧数字题** | M4/M5 | 计数器/记分板多时刻读数做干扰项，训练"枚举全部实例→按时刻与主体归属筛选" |
| 8 | **状态演化多帧题** | M4 | 正确答案只在特定时点帧可见（上色后），需多帧对比 |
| 9 | **ASR 实体对齐题** | M5 | 题目用规范拼写/属性指称，树内是 ASR 变体；可程序化挖掘拼写不一致对 |
| 10 | **属性辨析题** | M1/M4 | 两两组合选项（左耳/右耳/双耳），证据只在 entities/spatial_layout 字段 |
| 11 | **参照系空间题** | T5 空间 | 摄像机视角 vs 被摄者视角两种参照系的方位换算 |

**出题禁区**：T1 类（瞬时动作/记分牌时序/无对白因果）出了也是噪声标签，先修树；T7 类启示逐题验证门必须含"标注答案能被树内证据唯一支持"检查（同时规避复刻 benchmark 噪声）。

**与前两轮的关系**：第二轮确定的三件套质量门（确定性后处理 + 信息不对称化 + 三验证器）仍然必要——它们保证题目"合法"；本轮的 11 种题型规格决定题目"有用"（瞄准真实失败机理）。两者正交，共同替代事后的分数一致性校准（calibrate 降级为观测性报表）。

## 相关文件

- Agent 循环（T8 修复点）：`core/agent/loop.py:118-159`
- view_node 按题摘要吞 entities 的问题：`app/tree/environment.py`（待定位具体行）
- 树污染审计对象：建树/增强管线历史（`app/tree/`、TRM4 迁移物）
- 数据：`workspaces/default/harness.db`（predictions，run_id='infer_adhoc'）
