L04 练习
练习 1:设计实验验证「反思轮数 vs 成功率」曲线(设计实验类)
Reflexion 论文显示成功率随轮次上升,但有上限。设计实验验证:
- 假设:成功率随轮数上升,但 3-4 轮后边际收益递减(反思能改的有限)。
- 实验: - 构造 10 个任务(难度递增),每个跑 1/2/3/4/5 轮 Reflexion。 - 统计每个轮数下的成功率。 - 画"轮数 vs 成功率"曲线。
- 预期:1 轮(无反思)成功率最低,2-3 轮提升最大,4-5 轮边际递减。
- 成本分析:每多一轮多一次 Actor + Reflector 调用。算"每轮边际成功率提升 / 边际 token 成本"。
验收:输出曲线数据 + 成本效益分析。诚实标注 mock 下曲线是预设的,真实 LLM 曲线需实测。
练习 2:实现「反思去重」
当多轮反思累积时,可能产生重复或矛盾的反思。实现:
- 新反思加入前,和已有反思比对(文本相似度)。
- 重复的跳过("搜索词太宽泛"说一次就够了)。
- 矛盾的标注("加年份"vs"不加年份")并让 Reflector 重新生成。
- 反思列表超过 5 条时,保留最相关的 3 条(淘汰旧的/重复的)。
验收:反思列表不重复不矛盾,且长度可控。思考:这和 L01 的记忆遗忘策略有什么联系?(都是上下文管理——防止积累的信息撑爆窗口)。
练习 3:把 Reflexion 接入真实 LLM
本课用 Mock LLM 演示。用真实 ChatZhipuAI 替换 Mock:
- Actor 用真实 LLM 执行任务(给定反思 prompt,让 LLM 真正改搜索策略)。
- Reflector 用真实 LLM 生成反思(给失败结果,让 LLM 自己总结教训)。
- Evaluator 可用规则或 LLM judge。
- 跑一个真实任务,看反思质量(是否具体可执行)。
验收:真实 LLM 的反思质量评估——用 is_reflection_actionable 检测,统计多少比例的反思是具体的。诚实记录:真实 LLM 的反思质量如何?有没有出现空泛反思?
需要
ZHIPUAI_API_KEY。没有 key 时跳过,标注"未实测"。