Skip to content
🔗 分享本题
查看我的学习进度 →

ReAct 按环境反馈逐步行动,Reflexion 在整次尝试后评估反思并把经验带入下一轮

🧠 记忆锚点:ReAct 看环境走下一步;Reflexion 复盘整次尝试,把教训带进下一轮。

💡 答案要点

Reflexion = 通过语言反馈实现自我反思的 Agent 范式

核心思想:

  • Agent 执行任务后,让 LLM 评估执行结果
  • 如果失败,用反思结果指导下一步行动
  • 用"语言记忆"替代传统强化学习的奖励信号

ReAct vs Reflexion:

维度ReActReflexion
反馈来源外部环境(工具返回)自我语言评估
反思机制无(只看 Observation)有(显式反思)
适用场景外部信息明确需要判断质量
错误处理被动重试主动反思修正

Reflexion 流程:

1. 执行(Execute):Agent 执行动作,获得结果
2. 评估(Evaluate):LLM 评估结果是好是坏
3. 反思(Reflect):如果失败,分析原因,生成反思
4. 重试(Retry):根据反思调整策略,重新执行

示例:
Task: 写一篇技术博客
Execute: 生成初稿
Evaluate: "这篇博客结构不清晰,有些技术点没说清楚"
Reflect: "需要:1) 增加开头引入 2) 技术点详细说明 3) 结尾总结"
Retry: 根据反思重写

实现示例:

python
def reflexion_agent(task, max_turns=3):
    for turn in range(max_turns):
        # 执行
        result = agent.execute(task)

        # 评估
        evaluation = llm.evaluate(f"""
        任务:{task}
        结果:{result}
        请评估结果质量,指出不足之处。
        """)

        # 判断
        if evaluation.is_good:
            return result

        # 反思
        reflection = llm.reflect(f"""
        任务:{task}
        结果:{result}
        问题:{evaluation.issues}
        请分析原因,给出改进建议。
        """)

        # 带着反思重试
        task = f"{task}\n\n反思:{reflection}"

    return result

面试话术:

"Reflexion 的核心是用语言反馈代替传统 RL 的奖励信号。ReAct 只看环境返回什么,Reflexion 会让模型自己判断'我做得好不好,为什么不好,怎么改'。这种自我反思能力让 Agent 在复杂任务中表现大幅提升。"