反思(Reflexion)指智能体(Agent)在一次任务失败后,用自然语言写下一段"我为什么失败、下次该怎么改"的复盘,并把这段文字带进下一次尝试,从而在不改动模型参数的前提下越做越好。
它怎么工作
可以把它想成学生的错题本。做错一道题,光把题重做一遍往往还是错;但如果对完答案后写下"我把单位看成了米,其实题目给的是厘米,下次先圈出单位",下次再遇到同类题,正确率就会明显不同。反思做的就是这件事,只不过"错题本"写在模型的上下文(Context)里,而不是靠重新训练。
一个典型的循环有这么几步:
1. 执行:智能体按当前理解去完成任务,比如写代码、调工具、回答问题。
2. 评估:拿到结果信号——测试是否通过、工具是否报错、答案是否被判为错误。
3. 反思:让模型基于这个信号生成一段具体的失败分析,说明错在哪一步、为什么、下次换什么做法。
4. 重试:把这段反思拼进下一次的输入,重新执行。循环若干轮,直到成功或达到次数上限。
关键点在于:它把"梯度更新"换成了"文字更新"。模型权重一点没变,变的只是每次开局时它能看到的经验。
和相邻概念的区别
| 维度 | 盲目重试 | 反思(Reflexion) | 微调(Fine-tuning) |
|---|---|---|---|
| 是否改模型参数 | 否 | 否 | 是 |
| 学习载体 | 无 | 自然语言复盘 | 权重 |
| 生效速度 | 立即 | 下一轮立即生效 | 需重新训练 |
| 泛化范围 | 无 | 限相似任务与当前上下文 | 较广 |
| 主要代价 | 调用次数 | 上下文长度、额外调用 | 算力与数据 |
与思维链(AI 词典:Chain-of-Thought">Chain-of-Thought)的区别是:思维链是同一次推理内部的展开,反思是跨尝试的经验沉淀。与自我修正(Self-Refine)相比,反思更强调外部结果信号——不是模型自己觉得写得不好就改,而是真的失败了才复盘。
对做智能体的人意味着什么
第一,失败处理别只写 retry。加一层"生成复盘再重试",往往比多试五次更有用。
第二,反思的质量取决于喂给它的信号。如果只告诉模型"你错了",它只能写出"我应该更仔细"这种空话。把报错信息、测试输出、工具返回值一并给它,并要求它指出具体哪一步、具体怎么改,复盘才有可执行性。
第三,警惕反思的副作用。归因错误(把环境波动当成方法错)、反思越攒越多挤爆上下文、上一轮的结论污染下一轮的判断,都会让效果变差。常见做法是限制反思条数或长度,并在任务切换时清空。
对普通职场人,这套逻辑同样通用:失败后别急着原样重来,先写三行——错在哪、为什么、下次怎么改——再动手第二次。具体做法以各家平台官方文档为准。
