前言

很多人误以为反思只是重复生成答案,这是面试高频失分误区。本文拆解反思完整闭环,区分两种反思粒度、互评方案,补充工程防循环方案与 Reflexion 长期记忆机制,适配面试答题与项目落地学习。

反思不是"不满意就重新生成"

最常听到的一个说法是"反思就是输出不达标就重来一遍"。这等于把反思当成随机重试,面试官听到这里就知道你没搞清楚核心逻辑。

反思的本质是一个有结构的闭环:生成 → 评估 → 改进。三个环节缺一个都转不起来。

具体来说,反思机制靠两个 prompt 配合工作。第一个是评估 prompt,专门负责找问题——它拿到执行结果之后,按预定维度逐项检查,输出一份结构化的批注,指出哪里不对、为什么不对。第二个是改进 prompt,它接收原始任务、第一步的生成结果和评估批注,做定向修改,而不是从头乱改。

评估 prompt 有两个设计细节决定了整个反思机制能不能真正生效。第一,必须给出具体的检查维度,不能笼统地说"请检查质量"。维度越具体,评估越不走形式。比如代码生成的场景,维度可以是"是否通过类型检查、是否有未处理的边界条件、命名是否遵循项目规范"。第二,必须设置一个 PASS 出口。如果 LLM 检查后觉得没问题,要允许它输出 PASS 并终止反思循环,否则它会为了"找出问题"而强行挑毛病,无限循环。

步骤级 vs 任务级:两种反思粒度

反思可以放在不同层级上,粒度选择直接影响开销和效果。

步骤级反思是每完成一个子步骤就做一次检查。好处是错误发现得早,第一步出错马上纠正,后续步骤都建立在正确基础上。适合步骤之间强依赖、前一步错了后面会全错的任务。代价是每一步多一次 LLM 调用,一个 10 步的任务可能要调 20 次模型,延迟和 token 消耗翻倍。

任务级反思是整个任务执行完之后做一次整体评估。开销小得多,整个任务只多一次 LLM 调用。而且它能发现步骤级看不到的问题:各个步骤单独看都对,但整体结论前后矛盾,或者各部分之间衔接不自然。这种"整体视角"是步骤级给不了的。代价是如果任务中途某步出了大问题,到最后才发现,前面的执行全都白费了。

选哪种看任务特点。步骤之间强依赖、中间出错代价大的(比如多步数学推导),用步骤级。步骤之间相对独立、最终输出的整体质量更重要的(比如生成一份报告),用任务级更划算。

多 Agent 互评:为什么别人看比自查管用

除了单 Agent 自我反思,还有一种效果通常更好的方式:专门设置一个独立的 Critic Agent 来审查执行 Agent 的输出。

原因很简单。单 Agent 自我反思时,评估者和生成者是同一个模型。它在生成输出时形成了一套"内部逻辑",做评估时大概率沿用这套逻辑,对自己输出的错误不够敏感。这种现象叫自洽偏见——不是模型故意放水,而是它压根看不出自己逻辑里的漏洞。

独立的 Critic Agent 没有这个包袱。它的唯一职责就是找问题,视角更客观,更容易发现执行 Agent 自己看不出的漏洞。

互评流程是:执行 Agent 生成输出 → Critic Agent 审查并给出具体批注 → 执行 Agent 根据批注修改 → Critic Agent 再次确认。和人类的代码 review 流程差不多。

什么时候值得加这一步?质量要求非常高的场景:生成代码后让独立测试 Agent 验证、分析报告后让事实核查 Agent 交叉验证。代价是多一个 Agent 的调用成本,系统复杂度也更高。普通场景用自我反思就够了,不要过度工程化。

防死循环:一个容易被忽略的工程要点

反思机制天然有一个隐患:如果评估 prompt 一直不给 PASS,模型就会一直"发现问题→修改→再发现问题→再修改",陷入死循环。

工程上必须硬性设置最大反思轮次,通常 2 到 3 轮。不要指望模型自己停下来。另外,如果连续两轮评估都指向同一个问题但改进没有实质效果,说明这个问题模型自己改不了,需要换策略或者降级处理,而不是继续硬撞。

Reflexion:反思的进阶版

Reflection 解决的是单个任务内的质量提升。Reflexion 更进一步:它把每次任务的失败经验沉淀下来,影响下一次任务的决策。

核心思路是在传统反思闭环外面加一层长期记忆:某次任务中某个步骤反复失败、被反思标注为"不可行"的经验,会被写入一个类似"错题本"的持久化存储。下一次 Agent 遇到相似场景,先从错题本里检索,匹配到相关记录就直接跳过这个方向,避免重复踩坑。

和 Reflection 的区别在于作用域:Reflection 管单次任务内部的质量,Reflexion 管跨任务的经验积累。两者不是替代关系,可以叠加。

面试怎么答

第一个雷是把反思说成"不满意就重新生成",这暴露了没理解反思的闭环结构。

答好的几个要点:

    1. 先说闭环结构:两个 prompt 各司其职,评估 prompt 专门找问题,改进 prompt 做定向修改,缺任何一个都不行
    1. 评估 prompt 的两个关键设计要主动提:具体检查维度 + PASS 出口,缺了前者评估流于表面,缺了后者无限循环
    1. 步骤级和任务级的区别:前者发现得早但开销大,后者能看到整体问题但前期白做的工作难挽回——要说清各自适用场景
    1. 防死循环是硬性要求:最大轮次 2 到 3 轮,不能依赖模型自己停
    1. 多 Agent 互评比自我反思效果好,原因是同一模型对自身有自洽偏见——这个点如果能说出来,加分

最后如果能顺手提一句 Reflexion 的"错题本"机制是 Reflection 的跨任务升级版,结束。

结语

基础反思仅优化单次任务输出,Reflexion 依靠长期记忆实现经验复用,项目可按需组合单 Agent 自查、多 Agent 评审两套方案,同时配置最大迭代轮次规避死循环问题。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐