
🧠 记忆锚点:ReAct 看环境走下一步;Reflexion 复盘整次尝试,把教训带进下一轮。
💡 答案要点
Reflexion = 通过语言反馈实现自我反思的 Agent 范式
核心思想:
- Agent 执行任务后,让 LLM 评估执行结果
- 如果失败,用反思结果指导下一步行动
- 用"语言记忆"替代传统强化学习的奖励信号
ReAct vs Reflexion:
| 维度 | ReAct | Reflexion |
|---|---|---|
| 反馈来源 | 外部环境(工具返回) | 自我语言评估 |
| 反思机制 | 无(只看 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 在复杂任务中表现大幅提升。"