定义

Reflexion 是一种 Agent 自我纠正模式:生成者产出结果后,批评者(Critic)进行多层验证,失败时将具体反馈注入生成者上下文进行重试,形成"生成→评估→反馈→重试"的循环,直到通过或达到最大迭代次数。

关键数据点

  • 三层验证级联: 格式检查 → 安全检查 → LLM 蕴涵检查
  • 确定性安全: 批评者以确定性代码运行(非 LLM 控制逻辑),防止对抗性提示绕过安全检查
  • 重试上限: 通常设为 2 次迭代,防止无限循环
  • OncoAgent 实践: 作为 8 节点 LangGraph 拓扑中的 Critic 节点,位于 Specialist 和 HITL Gate 之间
  • 原始论文: Shinn et al. (2023), NeurIPS — 使用语言强化学习实现 Agent 自我改进
  • 失败路径: OncoAgent 中若重试后仍不满足 schema、安全或蕴涵约束,系统进入 fallback 或 HITL,而不是继续生成
  • 安全边界: Critic 可以使用 LLM 做 entailment,但安全扫描和 schema 校验必须由确定性代码兜底

为什么 Critic 不能只是另一个 LLM

Reflexion 容易被误解为“让一个模型检查另一个模型”。在生产系统中,更稳的结构是分层批评者:

  • 第一层检查格式和 schema,确保下游系统能解析。
  • 第二层用确定性规则扫描禁忌输出、隐私泄露、危险建议和安全红线。
  • 第三层才用 LLM 判断回答是否被证据支持、是否与检索上下文矛盾。
  • 最后根据风险进入重试、拒绝或人工接管。

这样设计的原因很直接:LLM 适合做语义判断,但不适合承担不可绕过的安全边界。Reflexion 的工程价值在于把“模型自我感觉良好”改造成“可审计的失败反馈”。

前提与局限性

  • 前提: 需要明确定义的评估标准(格式、安全、蕴涵),否则批评者无法给出有效反馈
  • 前提: 重试有成本(延迟、token 消耗),需要设置合理的最大迭代次数
  • 局限性: 如果评估标准本身有缺陷,Reflexion 会反复尝试满足错误标准
  • 局限性: 对于需要全新思路的问题(而非渐进改进),重试可能无法突破
  • 局限性: Critic 与 Generator 若共享相同盲点,可能产生一致但错误的判断
  • 局限性: 高风险领域不能把 Reflexion 当作最终安全证明,它只能降低错误率,不能替代责任主体

关联概念