10. 面试题
一句话理解:面试中关于 Reflection 的问题,核心考察你是否理解“生成—批判—评估—修订”的闭环,以及它与 ReAct、Memory、Multi-Agent 的区别与协作方式。
初级
Q1:什么是 Agent Reflection?
Agent Reflection 是 Agent 在生成输出后,主动对自身输出进行批判、评估和修订的能力。它把“一次性生成”变成“迭代优化”,帮助 Agent 在代码生成、内容创作、规划决策等复杂任务中持续逼近正确解。
Q2:Reflection 和普通的“多轮对话”有什么区别?
多轮对话通常是与用户交替进行,用户给出下一轮输入;Reflection 是 Agent 内部的自我纠错循环,不依赖用户反馈,由 Generator、Critic、Evaluator 自动完成。
Q3:Reflection 的核心步骤有哪些?
典型的 Reflection Loop 包括:
- Generate:生成 draft。
- Critique:检查 draft 的问题。
- Evaluate:把 critique 量化为 score/verdict。
- Revise:根据反馈修订 draft。
- Terminate:达到质量标准或触发兜底策略时终止。
Q4:为什么要限制最大迭代次数?
防止无限循环。Generator 和 Critic 可能陷入“反复修改同一问题”或“越改越差”的死循环,max_iter 是硬性护栏。
Q5:什么是 Critic?它有什么用?
Critic 是 Reflection 系统中负责检查 draft 的模块。它根据预定义的 criteria 输出问题列表或 LGTM,帮助 Generator 发现自身遗漏或错误。
中级
Q6:Reflection 和 ReAct 有什么关系?
ReAct 是“思考—行动—观察”的循环,强调与外部环境(工具、API)交互;Reflection 是“生成—批判—修订”的循环,强调对内部输出的自我纠错。两者可以结合:ReAct 负责执行,Reflection 负责在执行或生成后检查和修正。
Q7:如何避免 Critic 过严或过松?
- 过严:收紧 criteria、降低 Critic 温度、要求 Critic 区分 major/minor 问题。
- 过松:增加外部验证工具、细化 criteria、引入多 Critic 投票或人工审核。
- 还可以通过人工标注数据集校准 Critic 输出。
Q8:Reflection 如何与 Memory 集成?
Reflection 产生的 draft、critique、score、最终答案可以写入 Memory:
- 短期:保存在 Workspace 中供当前 loop 使用。
- 长期:作为 episode 写入,支持后续相似任务的检索与复用。
- 策略层:统计 critique 类型,优化 Critic prompt 和训练数据。
Q9:如何设计一个好的 Evaluator?
好的 Evaluator 应该:
- 基于明确的 rubric 打分。
- 输出可比较的标量 score 和离散 verdict。
- 与人工打分高度一致(通过人工标注校准)。
- 支持多维评分,避免单一维度主导。
Q10:生产环境什么时候不建议开启 Reflection?
- 延迟敏感型任务(实时对话、流式首句)。
- 创意发散任务,过度反思会降低多样性。
- 评估标准模糊、人工都难以判断的任务。
- 单轮 LLM 已经表现足够好、反思收益有限的任务。
高级
Q11:如何设计一个可扩展的 Reflection 框架?
一个可扩展的 Reflection 框架应包含:
- 可插拔的 Generator / Critic / Evaluator:支持不同模型和策略。
- Policy 引擎:按任务类型动态选择 criteria 和阈值。
- Workspace:统一的中间产物存储,支持读写隔离与历史版本。
- Revision Controller:编排循环、管理终止条件、处理异常与人工升级。
- Observer:记录 trace、metrics、事件,便于调试与监控。
- Memory 接口:把反思结果写入长期记忆。
Q12:Reflection 在多 Agent 系统中如何应用?
群体反思(Group Reflection)中,不同 Agent 扮演不同角色:
- Generator:负责生成 draft。
- Critic(s):多个 Agent 从不同角度批判。
- Evaluator / Aggregator:汇总评分,决定是否通过。
- Revision Controller:协调修订过程。
Multi-Agent 提供通信与协调机制,Reflection 提供“批判—修订”的语义。
Q13:如何处理“越改越差”的问题?
- 保留历史最佳版本,最终未通过时返回最佳尝试。
- 引入收敛检测,score 连续下降或波动时终止。
- 要求 Generator 逐条回应 critique,避免偏离原意。
- 人工介入高风险修改。
Q14:外部工具在 Reflection 中扮演什么角色?
外部工具提供客观反馈,弥补 LLM 自评的不足。典型工具:
- 编译器、单元测试、类型检查器(代码生成)。
- 检索、数据库、知识图谱(事实校验)。
- 规则引擎、敏感词检测(合规检查)。
外部验证结果可以作为 Critic 输入或直接作为 Evaluator 的维度。
Q15:OpenAI o1 / reasoning models 与显式 Reflection 框架有什么异同?
相同点:都通过“思考—反思—修正”提升复杂任务表现。
不同点:
- o1 的反思过程发生在模型内部,通过训练习得,对外不可见、不可控。
- 显式 Reflection 框架把 Generator、Critic、Evaluator 拆分为独立模块,便于定制、监控、干预和审计。
实际系统中可以结合:用 o1 作为 Generator 或 Critic,同时在更高层用显式框架做策略控制和人工兜底。
Q16:DeepSeek-R1 之后,Reflexion 这类显式反思框架还有必要吗?
有必要,但角色变了。R1 证明了反思能力可以通过 RL 训练进模型(可验证奖励 + GRPO,涌现自我验证与回溯),prompt 级自批判的收益随之收窄——研究显示推理模型的内隐反思大多是确认性的,很少真正改变答案。
显式框架仍然不可替代的价值在三点:
- 外部工具接地:编译器、单元测试、检索等客观验证只能由外部系统编排。
- 可控与可观测:内隐反思不可见、不可审计,业务关键链路需要显式的 criteria、score 与决策日志。
- 跨任务经验沉淀:模型权重里的反思不积累业务记忆,Reflexion/A-Mem/ACE 式的 Memory 才能复用经验。
Q17:什么是前瞻式反思?与回顾式反思如何取舍?
回顾式(Reflexive)先执行、失败后反思补救(Reflexion、Self-Refine);前瞻式(Prospective,代表 PreFlect)在执行前对计划做批判与修订,用错误模式库预判“这个计划哪里会错”,在不可逆错误发生前拦截,并保留执行中的动态重规划。
取舍原则:错误可逆、可重试的任务用回顾式(反馈真实具体);高风险、长链路、失败代价高的任务加前瞻式(成本低但依赖预判质量)。成熟系统两者结合:执行前前瞻批判、执行中动态重规划、失败后回顾式沉淀。
Q18:为什么 LLM 很难纠正自己的错误?2026 年的研究有什么新解释?
《The Self-Correction Illusion》(2026-06,v2 修订于 2026-07,arXiv:2606.05976)的核心发现是:模型难以显式标记自己推理链中的错误,很大程度是 chat template 角色标注的 artifact,而非能力缺陷。同一条错误主张,出现在模型自己的 <thought> 里几乎不会被标记;改标为用户消息、工具返回或 <memory> 记忆块后,显式纠错率提升 23~93 个百分点(12 组设置中 10 组显著)。
工程含义有三层:
- Critic 要外部化:给 Critic 独立角色与独立上下文,不要指望模型在自己的推理痕迹里“顺手”改错——这是零训练成本的可靠性杠杆。
- 与 SCoRe 一脉相承:自纠错能力主要靠训练获得(ACT、ICRL、CAFT 等把批判能力或批判收益训进模型),而非 prompt 技巧。
- 角色设计是校准的一部分:最优角色标签随领域变化(多数数学测试里
<memory>最佳,逻辑推理里用户消息最佳),生产上应把 Critic 的角色/上下文格式纳入 A/B 调优范围。
本章小结
Reflection 面试题从概念到架构、从模块设计到生产实践层层递进。回答时抓住三个核心:
- 闭环:generate → critique → evaluate → revise → terminate。
- 边界:与 ReAct、Memory、Multi-Agent、Planning 的区别与协作。
- 落地:Critic 设计、评分校准、终止条件、人工兜底、与 Memory/Runtime 集成。
参考来源
- Self-Refine: Iterative Refinement with Self-Feedback
- Reflexion: Self-Reflective Agents
- CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing
- Tree of Thoughts: Deliberate Problem Solving with Large Language Models
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via RL
- PreFlect: From Retrospective to Prospective Reflection in LLM Agents
- Revisiting the Role of Reflection in Reasoning Models
- The Self-Correction Illusion: Role Relabeling Gates Explicit Error Flagging in LLMs
- Agentic Critical Training
- ICRL: Learning to Internalize Self-Critique with Reinforcement Learning
- LangGraph Reflection Tutorial
- AutoGen Reflection
- OpenAI o1 / Reasoning Models