L02 练习
练习 1:量化「存原文 vs 存提炼」的检索质量(设计实验类)
本课 code.py 演示了"存原文 vs 存提炼"的差异,但只是定性对比。设计实验量化:
- 假设:提炼式记忆的 recall 精确率(命中里相关的比例)高于全存式。
- 实验: - 构造 10 条 findings(5 条关于 MCP、5 条关于其他主题,混杂)。 - 方案 A 全存,方案 B 反思式提炼。 - 对 5 个 MCP 相关 query 做 recall,统计:① 召回率(相关记忆被命中的比例)② 精确率(命中的里相关的比例)③ 平均条目长度(token 成本)。
- 预期:精确率 B > A(提炼去噪了),条目长度 B < A(更短)。
验收:输出三列对比表(召回率/精确率/平均长度),诚实标注假 embedding 可能让召回率两方案都不高。
练习 2:实现多层反思树
本课的 consolidate 是两层(情景→语义)。Generative Agents 论文是多层的(情景→反思→更深反思)。实现三层:
- 第一层:情景记忆 → reflect_and_store → 提炼条目(已有)。
- 第二层:多条提炼条目 → consolidate → 语义结论(已有)。
- 第三层(新增):多条语义结论 → meta_consolidate → 更抽象的"领域认知"。
示例:3 条语义结论(MCP 协议/SDK/生态)→ 1 条领域认知("MCP 是标准化工具互操作生态,核心是协议层统一")。
验收:第三层产出比第二层更抽象的认知,且 recall 能命中。思考:什么时候第三层有价值?(提示:语义记忆条数多了之后,需要再压缩)。
练习 3:改进遗忘策略——按质量遗忘
本课的遗忘只看时间衰减和检索频次。改进:
- 低置信度(<0.5)的记忆优先淘汰(不确定的先忘)。
- 被 consolidate 吸收过的情景记忆可以淘汰(信息已进入语义层,原料可弃)。
- 冲突记忆中,被新信息推翻的旧记忆降权(L05 冲突检测会标记)。
验收:改进后的 forget 优先淘汰低质量/已吸收/已过时的记忆,而非简单按时间。面试能讲清"遗忘不是随机丢,是有优先级的质量筛选"。