本页目录
L08 练习
改
eval_agent/run_ambient_eval.py或code.py,运行观察变化。零联网、零等待。
练习 1:给矩阵加第七指标——发现延迟(动手类)
README 的诚实标注说:full 档的退避让 E1 晚一天发现,但表里没有这一列——「省钱的代价」目前只活在文字里。
- 给
run_scenario加发现延迟统计:记录每个事件(E1/E2/E3)首次出现在收件箱条目里的模拟日,与事件的真实发生日(E1=Day3, E2/E3=Day4)作差。 - 矩阵加一列「平均发现延迟(天)」。
- 预期:+watcher/+judge 档 E1 延迟 0;full 档 E1 延迟 1(退避代价显形);baseline/cron 档全部
—(从未被主动呈现,延迟=∞)。
验收:新列出现且 full 档的退避代价从「文字标注」变成「表格数字」;test_matrix_is_deterministic 仍绿。
练习 2:设计实验——换一条时间线,结论还成立吗(设计实验类)
矩阵基于单一 5 日剧本。评估结论的稳健性要靠换分布验证:
- 假设:无变化日占比越高,watcher 档的 token 优势越大;变化日占比越高,优势缩小但召回优势不变。
- 实验设计:复制
ambient_timeline.py造两条变体线——「安静线」(10 日里 8 日无变化)和「喧闹线」(10 日里 8 日有新增)。对 cron 档和 +watcher 档各跑一遍,记录 token 比值。 - 预期:安静线 token 比 ≈ 1:10+;喧闹线 ≈ 1:2 左右(每班都要增量研究,但仍省全量差价)。
- 思考:有没有 watcher 档比 cron 档更贵的分布?(提示:如果每天所有条目都被改写(变更数=条目数),增量焦点数=全量条目数,150×N vs 1000——N>6 时增量反超。这正是 L03 练习 1 盈亏平衡点在评估层的重现。)
验收:两条变体线的 token 比值 + 「什么分布下增量不划算」的答案。
练习 3:把打扰精确率做成 CI 门槛(工程类)
test_judge_cuts_interrupts_to_one_precise 已经断言精确率 100%。现在把它上升为守护性回归:
- 写一个新测试
test_precision_regression_guard:full 档 precision ≥ 0.9 且 interrupts ≤ 2——阈值故意留余量(为什么不断言 ==1.0?想想以后判级 prompt 或时间线微调时,硬相等断言会让每次无害改动都红)。 - 反向验证:把 CONFIGS 里 full 档的 policy 临时改成 "all",确认这个测试会红(守护真的在守护),再改回来。
验收:新测试绿;临时破坏时它红;一句话说清「守护性断言用阈值不用硬相等」的理由。
练习 4:思考题——评估里的哑判级公平吗(方法论类)
cron 档用 DumbJudge(一切 minor+全推)模拟现状推送,而 +watcher 档用规则判级。有人质疑:「你给 cron 配了个弱判级,赢得不公平。」
- 辩方:cron 档模拟的是没有判级机制的世界(现状邮件推送)——哑判级不是「弱选手」,是「该档位机制清单的忠实再现」。逐机制评估的原则:每档只开该档的机制,不多不少。
- 控方成立的情形:如果矩阵声称比较的是「判级算法 A vs B」,那给一方配哑版确实作弊。本矩阵比较的是机制组合,不是算法优劣。
- 思考:agent-ops L08 的混沌矩阵、frontier-L09 的开关矩阵有没有同样的结构?(有——「全关档」永远是「机制不在场」的忠实模拟,而不是「机制在场但被削弱」。)写出这条评估纪律的一句话版本。
验收:一句话版本(参考方向:「对照组模拟的是机制缺席,不是机制残废」)。