SuperAPI AI 工具集

reflexion-pattern

智能体与模型

查看项目

更新于 10-15 19:54

技能介绍

用途:当智能体用同一提示反复失败时,Reflexion 通过引入 Critic 节点打破重复失败。Critic 读取失败轨迹,写出一条简短的语言化教训(≤200 tokens),存入情景记忆;Actor 在下一次尝试前读取该教训。整个循环由重试预算约束,避免无限循环。

适用条件:同一任务用同一提示失败 2 次以上;有明确的成功信号(测试、golden、judge);失败模式在轨迹中可识别(工具错、参数错、计划错)。不适用:一次性任务无重试空间;失败信号噪声大(judge LLM 自相矛盾);预算不足以支持 2 次以上尝试。

循环结构:Actor → Trajectory → Evaluator → 成功则结束;失败则进入 Critic → 语言化教训 → 情景记忆 → 下一次 Actor 尝试。

组件:Actor 执行任务并产出轨迹;Evaluator 对轨迹打分,输出 success、score、reasons;Critic 诊断失败并提出修复,输出简短教训;Memory 跨尝试保存教训,采用 append-only 的 lessons[]。

稳定评分标准(关键):若 Evaluator 不稳定,Reflexion 会失效。需锁定 rubric,例如 test_suite_passes 0.4、acceptance_criteria_met 0.3、no_forbidden_actions 0.2、efficiency 0.1,success_threshold 0.85。每次尝试使用相同 rubric 与权重,实验中途不要调整。

Critic 提示模板要求:只写一条简短教训,聚焦导致失败的具体动作或决策;不要复述任务,不要超出轨迹进行推测。

重试预算:可定义 max_attempts(默认 4)、max_cost_usd(默认 1.0)、min_score_improvement(默认 0.05)。停止条件包括 success 为 True、attempts 达到上限、cost 达到上限、分数提升低于阈值(平台期)。

快速开始(LangGraph):定义 actor 读取 memory 中的 lessons 并拼接进提示,执行后返回 trajectory;evaluator 返回 score;critic 调用 critic_llm 生成 lesson 并追加到 memory;用条件边在 score 大于 0.85 时结束,否则进入 critic。

反模式:Critic 只说“再努力一点”需约束为可执行教训;lessons 列表无界需保留最近 N 条或聚类;跨尝试混用 rubric 需在运行前冻结;Critic 只看最终答案而非轨迹则无效。

延伸阅读:Shinn 等人的原始 Reflexion 论文(NeurIPS 2023)、LangGraph reflection 示例;可与 multi-agent-eval-harness 搭配使用。