Agent 的反思模块如何设计?
未标记
考查重点:失败诊断与有界修订。在失败或证据冲突时触发,收目标、轨迹和验证反馈,输出具体错因与下一动作;有限修订后重新验收
本题目录
参考答案
核心回答
反思模块应是依据目标和实际反馈找出偏差,再给出可执行修正,不是每步都让模型写一段“我反思了”。我会把它拆成触发器、证据收集、评估诊断、修正建议和采纳验证,并给出调用预算。
规则能确定的问题先用规则检查;需要理解任务目标、资料充分性或方案合理性时再用模型。反思可以同模型完成,也可以使用独立模型;是否用小模型取决于真实用例的准确性、误报和成本,而非模型越大越好。
模块的输入与输出
输入包括用户目标与约束、当前计划、相关执行轨迹、工具结果、产物以及已经做过的检查。重点是提供实际证据,避免只让模型看自己上次的解释。
输出可组织为:发现的问题、对应证据、影响范围、建议动作和是否需要重规划。动作区分继续执行、局部修补、重新检索、重规划或停止;指出“哪条条件未满足、下一步改什么”,比一个总分更能驱动执行。
例如研究报告缺少某项结论的来源,反思应提出补查这项证据,而不是重新生成整份计划。代码测试失败则应引用失败用例和异常位置,帮助执行器定位修复。
什么时候触发,怎样避免频繁推翻计划
工具报错、检查失败、连续无进展、新证据否定关键前提、到达重要阶段或准备交付时都可以触发。简单可确定的步骤无需每次调用大模型评审。
修正应与偏差范围对应:字段错误局部改,子任务路线不可行才替换对应步骤,全局前提改变才重规划。重规划前说明新证据为何使旧计划失效,保留已验证产物和仍有效的约束;不要只因“还有更优方案”就反复推倒。
限制反思次数、额外工具调用和总预算,记录每次修改是否带来可验证进展。同类建议反复出现但无改善时停止循环,回传具体阻碍或切换处理方式。
模型与数据怎样选
可以先用强模型辅助整理失败类型和评价维度,再用人工确认的案例训练或评估小模型。数据应包含真正错误、正确但不完美、无需重规划和新前提改变等边界样本,避免反思器学成“总能挑出问题”。
比较同模型、独立模型与小模型时,固定执行任务和输入轨迹,检查问题识别、误报、修正后的实际成功、延迟和成本。独立模型仍可能与执行器犯相似错误;生成反馈不等于修复有效。
反思与自进化的区别
本轮反思用于修正当前任务;只有经过验证、具备复用价值的经验,才适合进入长期记忆或技能候选。Reflexion、Self-Refine等方法提供了反馈与迭代思路,但不会保证每次修改单调变好。技术亮点是让反思建立在外部证据上,并控制修正范围与收益。
对应教程
- 21-Agent智能体:理解规划、反思与工具执行的关系。
- 实战项目-深度研搜/1-DeepAgents基础与核心概念:理解开放研究中的证据缺口与迭代。
参考资料
- 国内:JavaGuide:Reflection模式:采用不同反思方法的触发时机,区分正文中当前任务的即时修正与供后续任务复用的经验记忆。
- 国内:zero2Agent:Agent自进化闭环:依据经验候选、回放与验证的流程,说明正文中哪些反思结果才值得长期采用。
- 国内:WeThinkIn:任务分解与计划执行:依据执行反馈与计划维护的边界,说明正文中局部修正和重规划如何避免无效循环。
- 国外:Shinn等:Reflexion:借鉴 Actor、Evaluator 和反馈记忆的分工,说明正文中反思输入及反馈进入下一轮尝试的方式。
- 国外:Madaan等:Self-Refine:依据生成、反馈、修订的循环及其局限,说明正文中反思为何不保证质量单调提高。
