🔄 Reflexion Pattern
反思模式

Agent的自批判循环 | Shinn et al. 2023

Agent Loop Reasoning Self-Correction

📖 定义

Reflexion(反思模式)是一种Agent循环变体,在ReAct的"思考→行动→观察"基础上,增加了一个显式的自我批判(Self-Critique)步骤。批判结果被追加到上下文中,作为下一次尝试的指导。

来源:Shinn et al., "Reflexion: Language Agents with Verbal Reinforcement Learning", NeurIPS 2023

🎭 通俗比喻

想象你在解一道数学题。普通Agent就像一个学生写完答案直接交卷。而Reflexion模式呢?每写一步,都停下来自问:"这步对吗?有没有更简单的方法?"把反思记在草稿纸上,下一步就避开刚才的错误。

就像周星驰电影里的桥段——不是直接打怪,而是打完一回合,回头看录像分析:"哎,这招姿势不对,下回改!"

⚙️ 原理与流程

标准ReAct循环:观察 → 思考 → 行动 → 观察...

Reflexion循环:观察 → 思考 → 行动 → 观察 → 批判 → 反思追加 → 继续循环

# Reflexion循环伪代码
def reflexion_loop(task, max_steps=50):
    context = [task]
    reflections = []
    
    for step in range(max_steps):
        # 标准ReAct步骤
        thought = model.generate_thought(context)
        action = model.generate_action(thought)
        observation = execute_tool(action)
        
        # 🔄 关键:反思步骤
        critique = model.generate_critique(
            context + [thought, action, observation]
        )
        
        # 将反思追加到上下文
        reflection_text = f"反思:{critique}"
        reflections.append(reflection_text)
        context.append(reflection_text)
        
        if is_task_complete(observation):
            break
    
    return final_answer, reflections

🎯 OpenClaw实战应用

在OpenClaw中,Reflexion可以通过以下方式实现:

# OpenClaw Reflexion Skill 示例
name: reflexion_coder
description: 使用反思模式改进代码生成质量

steps:
  - name: initial_generation
    action: llm
    prompt: |
      根据需求生成代码:{{user_request}}
      
  - name: self_critique
    action: llm
    prompt: |
      请批判以下代码,指出潜在问题:
      1. 逻辑错误
      2. 边界情况未处理
      3. 性能隐患
      4. 代码风格问题
      
      代码:
      {{initial_generation.output}}
      
  - name: improved_generation
    action: llm
    prompt: |
      基于反思改进代码:
      
      原代码:{{initial_generation.output}}
      批判:{{self_critique.output}}
      
      生成改进后的代码:

📊 优缺点分析

✅ 优点

  • 减少重复失败(30-50%错误率下降)
  • 对编码、数学推理任务效果显著
  • 无需额外训练,仅靠提示工程实现
  • 反思记录可持久化,用于后续改进

⚠️ 代价

  • 每步增加~1次额外模型调用
  • 延迟增加30-50%
  • Token消耗增加
  • 过度反思可能导致自我怀疑

🔗 相关术语

📚 延伸阅读