用途:当异常已存在、需要定位根因时使用。默认先列出一组互相可区分的候选原因,再用数据逐条检验并排除,直到只剩一个通过反驳与正向确认的原因。若异常模糊,迭代0先把它精确化。不适用于无异常的数据探索,也不适用于核对文献主张。
主要能力:迭代0量化异常(什么偏离、何时何地、相对基线的幅度),并列出初始候选清单。之后每轮:挑选最能快速区分剩余候选的假设,编写 <sandbox_root>/iter<N>/test.py,用 <analysis_cmd> 运行并输出到 out.txt;数据反驳则标记 eliminated 并移出存活集,数据支持则保留;当某候选领先时,先尝试反驳,再运行只有它才能预测的正向确认测试。记录 ledger.tsv(制表符分隔,表头 iter/candidate_tested/verdict/live_candidates,verdict ∈ characterize/refuted/supported/confirmed)。
使用方式:交互式解析绑定项。若工作目录已有 loop.run.yaml,加载并一行确认后跳过;否则推断各绑定值并确认,再写 loop.run.yaml。绑定包括 dataset(只读数据/日志)、anomaly(异常描述)、analysis_cmd(默认 python3)、log(默认 <sandbox_root>/investigation.md)、sandbox_root(默认 ./sandbox)、budget(默认 8 次迭代)。代码优先用标准库(csv、statistics);如需 pandas/numpy 用 try/except ImportError 探测并降级,或经同意后安装。
限制:只读 <dataset>,不得修改;沙箱自包含,不得用 ../ 逃逸。不要仅凭直觉,每次排除与最终确认都需有实际计算支撑。观测等价的两个候选(如机器人刷量与管道重复计数均为“会话涨、转化平”)无法在当前数据下区分,应合并报告为同一确认原因,并说明需要哪些更细粒度数据来区分;需分清机制(指标如何变动)与根因(输入为何出错)。
停止条件:Confirmed——恰有一个候选通过反驳与正向确认;Budget——达到上限仍未确认,报告存活候选集及可区分它们的测试。其余实现细节暂未提供。