本页目录
L03 练习
改
code.py或research_assistant/incremental.py,运行观察变化。零联网、零等待。
练习 1:算增量研究的盈亏平衡点(理解类)
Part 1 里 Day3(1 条变化)省 84%。增量不是永远划算的——焦点子题多到一定程度,可能比全量还贵(全量固定 3 个子题,焦点是每条变化一个)。
- 改
demo_cost_compare:让变化条数从 1 涨到 8,画出增量成本曲线。 - 找到「增量成本 ≥ 全量成本」的变化条数(盈亏平衡点)。
验收:给出平衡点数字,并回答:build_incremental_focus 该不该加「变化条数 > N 时退回全量研究」的策略?N 取多少?(提示:变化太多本身说明世界大变——全量重建基线可能比逐条打补丁更对。)
练习 2:设计实验——旧结论注入到底有没有用(设计实验类)
「已知这些,只补新的」是一段 prompt——它真的改变行为吗?
- 假设:不注入旧结论时,researcher 对变更条目的产出不会主动对照历史(不出现「更正:」),✏️ 通道失效。
- 实验设计(离线可做):
-
code.py的mock_research_findings模拟的是「遵守约定的 researcher」。写一个mock_naive_findings(不看 prior、平铺直叙新内容),跑 Day4 对比两版简报。 - 有 API key 的话做真实验:enable_incremental_run=true下跑两次 Day4(一次注入 prior_context,一次置空),对比真实 LLM 的产出里「更正」出现率。 - 预期:无注入版的 Day4 简报里 item-c 反转被标 🆕 而不是 ✏️——信息还在,但「这推翻了旧结论」的信号丢了。
- 思考:✏️ 通道的可靠性押在「LLM 遵守『更正:』开头的约定」上——这是脆弱的。更结实的做法是什么?(提示:结构化输出——让 researcher 返回
{"finding": ..., "corrects": "item-c"},用字段而非字符串前缀承载语义。)
验收:两版简报对比 + 一句话说清「字符串约定 vs 结构化字段」的取舍。
练习 3:修「不变项」的误报(动手类)
README 第 3 节诚实标注了复用资产的局限:Day4 简报里被 ✏️ 修正的「框架 X 支持 AGUI」同时出现在「不变项:仍成立」里——generate_incremental_brief 的关键词启发式误报。
在不改 task_ledger.py(红线:复用资产不重写)的前提下,在 incremental.py 的 record_and_brief 里后处理简报文本:把 ✏️ 行命中的任务标题从「不变项」段落里剔除。
验收:code.py Day4 的「不变项」不再包含「框架 X 宣布支持 AGUI 协议」;tests/test_incremental.py 全绿(14 个)。附加题:为你的后处理写一个新测试。
练习 4:思考题——全量校准的班次该怎么排(前瞻类)
README 流派对比说增量的漂移风险靠「定期全量校准」解决。
- 思考:校准班次和日常扫描班次是什么关系?(同一个调度表的两行?还是同一调度的特殊班次?提示:L01 的 schedules 表一行一个调度——「每天增量 + 每月全量」自然是两行,topic 相同、interval 不同、dispatch 不同。)
- 思考:校准 run 的结果怎么和账本合并?全量重研可能推翻多条已确认结论——是逐条 ✏️,还是「重建基线」(旧账本归档、新结论全部 🆕)?两种语义对读者分别意味着什么?
- 思考:什么信号该触发计划外的校准?(提示:L02 的 gone 条目大量出现、L04 判级连续 major、或 ✏️ 修正率超阈值——世界剧变时,增量假设本身失效。)
验收:给出「每天增量 + 每月校准 + 剧变触发校准」的调度表设计(三行,各自的 interval/dispatch/触发条件)。