Agent Engineering 课程阅读

在 GitHub 查看原文

本页目录

L08 练习

eval_agent/run_ambient_eval.pycode.py,运行观察变化。零联网、零等待。


练习 1:给矩阵加第七指标——发现延迟(动手类)

README 的诚实标注说:full 档的退避让 E1 晚一天发现,但表里没有这一列——「省钱的代价」目前只活在文字里。

  1. run_scenario 加发现延迟统计:记录每个事件(E1/E2/E3)首次出现在收件箱条目里的模拟日,与事件的真实发生日(E1=Day3, E2/E3=Day4)作差。
  2. 矩阵加一列「平均发现延迟(天)」。
  3. 预期:+watcher/+judge 档 E1 延迟 0;full 档 E1 延迟 1(退避代价显形);baseline/cron 档全部 (从未被主动呈现,延迟=∞)。

验收:新列出现且 full 档的退避代价从「文字标注」变成「表格数字」;test_matrix_is_deterministic 仍绿。


练习 2:设计实验——换一条时间线,结论还成立吗(设计实验类)

矩阵基于单一 5 日剧本。评估结论的稳健性要靠换分布验证:

  1. 假设:无变化日占比越高,watcher 档的 token 优势越大;变化日占比越高,优势缩小但召回优势不变。
  2. 实验设计:复制 ambient_timeline.py 造两条变体线——「安静线」(10 日里 8 日无变化)和「喧闹线」(10 日里 8 日有新增)。对 cron 档和 +watcher 档各跑一遍,记录 token 比值。
  3. 预期:安静线 token 比 ≈ 1:10+;喧闹线 ≈ 1:2 左右(每班都要增量研究,但仍省全量差价)。
  4. 思考:有没有 watcher 档比 cron 档更的分布?(提示:如果每天所有条目都被改写(变更数=条目数),增量焦点数=全量条目数,150×N vs 1000——N>6 时增量反超。这正是 L03 练习 1 盈亏平衡点在评估层的重现。)

验收:两条变体线的 token 比值 + 「什么分布下增量不划算」的答案。


练习 3:把打扰精确率做成 CI 门槛(工程类)

test_judge_cuts_interrupts_to_one_precise 已经断言精确率 100%。现在把它上升为守护性回归:

  1. 写一个新测试 test_precision_regression_guard:full 档 precision ≥ 0.9 且 interrupts ≤ 2——阈值故意留余量(为什么不断言 ==1.0?想想以后判级 prompt 或时间线微调时,硬相等断言会让每次无害改动都红)。
  2. 反向验证:把 CONFIGS 里 full 档的 policy 临时改成 "all",确认这个测试会红(守护真的在守护),再改回来。

验收:新测试绿;临时破坏时它红;一句话说清「守护性断言用阈值不用硬相等」的理由。


练习 4:思考题——评估里的哑判级公平吗(方法论类)

cron 档用 DumbJudge(一切 minor+全推)模拟现状推送,而 +watcher 档用规则判级。有人质疑:「你给 cron 配了个弱判级,赢得不公平。」

  1. 辩方:cron 档模拟的是没有判级机制的世界(现状邮件推送)——哑判级不是「弱选手」,是「该档位机制清单的忠实再现」。逐机制评估的原则:每档只开该档的机制,不多不少。
  2. 控方成立的情形:如果矩阵声称比较的是「判级算法 A vs B」,那给一方配哑版确实作弊。本矩阵比较的是机制组合,不是算法优劣。
  3. 思考:agent-ops L08 的混沌矩阵、frontier-L09 的开关矩阵有没有同样的结构?(有——「全关档」永远是「机制不在场」的忠实模拟,而不是「机制在场但被削弱」。)写出这条评估纪律的一句话版本。

验收:一句话版本(参考方向:「对照组模拟的是机制缺席,不是机制残废」)。