Reflection(反思) 核心概念
别名:
反思 · draft-judge-revise
生成 → 评审 → 修订的外环范式:评审不过就把评审意见追加进消息历史继续改,直到通过或达到轮数上限。买的是质量,代价是调用翻倍与同源盲区。见[第 12 章](/chapters/12-classic-paradigms/)。
它是什么
Reflection(反思,原论文叫 Reflexion)是生成 → 评审 → 修订的外环范式:模型先生成草稿(draft),评审器(judge)判断是否通过;不通过就把草稿与评审意见追加进消息历史,要求模型带着意见修订,直到通过或达到轮数上限。Reflexion 论文把它称为「语言形式的强化学习」——不改权重,只把「哪里错了、怎么改」写进上下文,下一轮自然改好。
评审是注入的
关键设计:judge 与生成器解耦。它可以是规则检查器(「必须包含防晒建议」「长度 ≥ 40 字」「代码必须通过这组单测」),也可以是一次评审 LLM 调用——练习里注入脚本化的确定性评审,Reflection 环才能离线可测。消息历史的追加顺序是 task → assistant(草稿) → user(评审意见),修订轮模型看到的是完整过程。
代价与盲区
买的是质量,代价有两项:调用翻倍(生成 + 评审各算一次)与同源盲区(同一个模型既当生成者又当评审者,看不出自己的系统性错误——对策是换模型/换视角当评审)。另外修订可能越改越差,保留历史最佳版本(best-of-n)是廉价有效的加固;maxRounds 保险丝兜底,绝不让用户拿到空字符串(详见第 12 章坑五、坑六)。