Agent Engineering 课程阅读

在 GitHub 查看原文

本页目录

L03 练习

code.pyresearch_assistant/incremental.py,运行观察变化。零联网、零等待。


练习 1:算增量研究的盈亏平衡点(理解类)

Part 1 里 Day3(1 条变化)省 84%。增量不是永远划算的——焦点子题多到一定程度,可能比全量还贵(全量固定 3 个子题,焦点是每条变化一个)。

  1. demo_cost_compare:让变化条数从 1 涨到 8,画出增量成本曲线。
  2. 找到「增量成本 ≥ 全量成本」的变化条数(盈亏平衡点)。

验收:给出平衡点数字,并回答:build_incremental_focus 该不该加「变化条数 > N 时退回全量研究」的策略?N 取多少?(提示:变化太多本身说明世界大变——全量重建基线可能比逐条打补丁更对。)


练习 2:设计实验——旧结论注入到底有没有用(设计实验类)

「已知这些,只补新的」是一段 prompt——它真的改变行为吗?

  1. 假设:不注入旧结论时,researcher 对变更条目的产出不会主动对照历史(不出现「更正:」),✏️ 通道失效。
  2. 实验设计(离线可做): - code.pymock_research_findings 模拟的是「遵守约定的 researcher」。写一个 mock_naive_findings(不看 prior、平铺直叙新内容),跑 Day4 对比两版简报。 - 有 API key 的话做真实验:enable_incremental_run=true 下跑两次 Day4(一次注入 prior_context,一次置空),对比真实 LLM 的产出里「更正」出现率。
  3. 预期:无注入版的 Day4 简报里 item-c 反转被标 🆕 而不是 ✏️——信息还在,但「这推翻了旧结论」的信号丢了。
  4. 思考:✏️ 通道的可靠性押在「LLM 遵守『更正:』开头的约定」上——这是脆弱的。更结实的做法是什么?(提示:结构化输出——让 researcher 返回 {"finding": ..., "corrects": "item-c"},用字段而非字符串前缀承载语义。)

验收:两版简报对比 + 一句话说清「字符串约定 vs 结构化字段」的取舍。


练习 3:修「不变项」的误报(动手类)

README 第 3 节诚实标注了复用资产的局限:Day4 简报里被 ✏️ 修正的「框架 X 支持 AGUI」同时出现在「不变项:仍成立」里——generate_incremental_brief 的关键词启发式误报。

不改 task_ledger.py(红线:复用资产不重写)的前提下,在 incremental.pyrecord_and_brief 里后处理简报文本:把 ✏️ 行命中的任务标题从「不变项」段落里剔除。

验收code.py Day4 的「不变项」不再包含「框架 X 宣布支持 AGUI 协议」;tests/test_incremental.py 全绿(14 个)。附加题:为你的后处理写一个新测试。


练习 4:思考题——全量校准的班次该怎么排(前瞻类)

README 流派对比说增量的漂移风险靠「定期全量校准」解决。

  1. 思考:校准班次和日常扫描班次是什么关系?(同一个调度表的两行?还是同一调度的特殊班次?提示:L01 的 schedules 表一行一个调度——「每天增量 + 每月全量」自然是两行,topic 相同、interval 不同、dispatch 不同。)
  2. 思考:校准 run 的结果怎么和账本合并?全量重研可能推翻多条已确认结论——是逐条 ✏️,还是「重建基线」(旧账本归档、新结论全部 🆕)?两种语义对读者分别意味着什么?
  3. 思考:什么信号该触发计划外的校准?(提示:L02 的 gone 条目大量出现、L04 判级连续 major、或 ✏️ 修正率超阈值——世界剧变时,增量假设本身失效。)

验收:给出「每天增量 + 每月校准 + 剧变触发校准」的调度表设计(三行,各自的 interval/dispatch/触发条件)。