游乐游手机版
首页/AI热点日报/热点详情

简易Reflection实现:Agent强化效果实测

类型:热点整理2026-06-13
在Agent设计中,反思策略能有效提升输出质量。测试表明,在意图识别节点后加入反思节点可稳定解决问题,最佳组合为首次回答用GPT-3 5、反思用GPT-4,但会延长响应时间6-8秒。复杂反思效果依赖模型能力与反馈规则匹配,且需持续迭代。
▉ 吴恩达老师提出的四种 Agent 设计策略,近期在行业圈内引发热议。这四种策略分别是:Reflection(让模型对自己的输出进行反思并修正)、Tool use(工具调用)、Planning(通过工作流拆解任务步骤)以及 Multi-agent collaboration(多智能体协作)。简单来说,这几乎覆盖了目前提升大语言模型实际效果的核心路径。 如果用现有的 Agent 工具搭建 bot,那么“工具”和“工作流”这两部分已经相对成熟。真正让大多数人感到棘手的,是“多 Agent 协作”——目前还没有哪款工具能真正高效、便捷地实现。因此,这次我们重点探讨如何低成本地在 bot 中加入“反思”这一步,让输出质量更上一层楼。 在动手实测之前,先分享几个来自吴恩达团队引用论文《SELF-REFINE: Iterative Refinement with Self-Feedback》中的关键结论: 1. **反思方式是分档次的,越具体效果越好。** - 无反馈迭代:直接重跑一次,不提供任何改进意见。 - 通用型反馈:例如“提高代码效率”——方向对,但过于模糊。 - 特定、可操作的反馈:例如“避免在 for 循环中重复计算”——这才是精准发力。 2. **自我反思比“一次生成多个结果再对比”更好。** 论文明确指出,这不是简单多次采样就能替代的方法。 3. **反思的关键挑战在于能否提出准确的反馈。** 强模型上效果显著,弱模型上则需要额外调优。 ▌**测试过程中的几个关键结论** 以下结论仅针对本次测试的单个 bot,不构成普适性结论: 对于可以用简单常识完成反馈的流程,单次反思带来的提升非常可观。但有趣的是,我并未明显感受到“GPT 3.5 + GPT 3.5”组合能超越直接用 GPT-4。更有价值的发现是:复杂反思的效果,很大程度上取决于模型能力和反馈规则的匹配度,这个过程本身也需要不断迭代。 ▉ **门修斯 Pro 版:一个不错的实验对象** 我们以之前测试过的“门修斯 Pro 版”为例。这个 bot 比此前介绍过的版本更复杂,它需要根据用户设定的环境,完成以下主要功能: 1. 用户可设置交流语言 `{main_language}` 和学习语言 `{target_language}`; 2. 将所有非 `{main_language}` 的段落逐字翻译成 `{main_language}`,并提供语法和词义解释; 3. 对 `{main_language}` 文本进行赏析,并翻译成 `{target_language}`; 4. 对于两种语言文本段落(前一句为原文,后一句为译文),进行准确性评估; 5. 对单词提供详细解释和用法; 6. 解答语言和翻译相关问题。 ▌**此前的问题** 在之前的测试中,无论我是写了超长 prompt 并强调“Let's think step by step”,还是用 workflow 把任务拆成“识别意图 → 进入对应流程”,bot 都无法稳定输出。常见问题包括: - 意图识别错误 - 无法用 `{main_language}` 与用户交流 - 回复内容错误 即便换成 GPT-4,有时也会识别失误——比如我输入了一个完整的英文句子,它却理解为“我想直接聊天”。 ▉ **强化意图识别:加一个反思节点** 于是我在意图识别节点后加了一个反思节点,把规则、用户输入和上一轮的输出结果都传递进去: ``` # 角色 你是一个评估者。你能基于用户设置的母语 `{mother_language}`,根据用户的输入 `{input}`, 识别用户输入的是单词/词组,还是完整句子;识别输入的语言是不是母语;如果输入了多个句子,则判断每句的语言等。 你的技能是根据规则、上一轮的输入,评判上一轮的输出是否正确,给出理由,如果不正确则给出正确的输出。 Let's think step by step. ``` GPT-3.5 的表现让人哭笑不得:它只检查了输出结果和 instruction 值是否能对上,却没有意识到“上一步的意图结果本身就可能错误”——这正是论文中提到的“反思的关键挑战:能否提出准确反馈”。 换成 GPT-4 后,效果才恢复。考虑到意图识别并不复杂,且需要尽可能缩短执行时间,**最佳组合是:首次回答用 GPT-3.5,反思节点用 GPT-4**。 在持续测试中,又发现一个新问题:LLM 总是无法判断用户输入了两种语言的文本。它一旦识别出第一个句子的语言后,就草草给出结论。针对性地在反思节点的 prompt 中加上一句“尤其注意判断 `{instruction}` 值为4的情况”,问题就解决了。 然而紧接着又冒出一个新问题:当我输入一个日语句子时,它也会判定为“包含两种语言”。即使我明确告诉它“请注意日语会使用汉字”,依然无解。这时我才意识到,原来的 prompt 有歧义——对 bot 来说,一个日语句子确实包含汉字,但本质上它是一个完整的日语句子。所以我调整了 prompt:“如果用户输入的 `{input}` 有多个句子,且每个句子使用的语言不一样,才返回 `{instruction}` 值为4”。完美解决。 这时候我一度怀疑:是不是原来的 prompt 本身有问题,其实不需要反思节点?但在新一轮暴力测试后,**我确认了:虽然在响应时间上多付出了 6-8 秒,但反思节点确实能稳定解决意图识别问题。** ▉ **强化回复:每个节点都加上反思** 当 bot 能正确进入对应流程后,我又为每个回复节点加上了反思节点。这次采用的是上文提到的“特定、可操作的反馈”方式,并要求它根据反馈修改上一步的输出: ``` ## 技能 - 评估以下几点: 1. 判断 `{comprehension}` 是否包含翻译、原文赏析和译文解释的完整板块,不完整则补充; 2. 判断 `{comprehension}` 中,除了被翻译的那句话,其他是否使用了 `{mother_language}` 回复; 3. 对 `{input}` 的来源指出是否正确; 4. 对 `{input}` 的原文赏析是否完整; 5. 对 `{input}` 翻译成 `{target_language}` 的译文是否准确。 ``` 第一次测试中,回复节点和反思节点都使用 GPT-4。最明显的提升是:回复终于能完全按照用户设置的 `{main_language}` 执行了。其次是,在某些例子中它确实纠正了错误——比如翻译“生存还是毁灭,这是一个问题”时,最初翻译成德语定冠词“die”,反思节点成功纠正为“eine”。 不过,面对更明显的错误,反思节点有时也无力回天——根本原因还是无法生成更高质量的反馈。比如中文古诗词的出处判断,这时如果能配合插件或知识库,效果会更好。 另外我也测试了“回复用 GPT-3.5,反思用 GPT-4”的组合,结果因为上一步输出不稳定,反而误导了反思节点。 当然,代价也很明显:用了多个 GPT-4 节点后,响应时间普遍超过 1 分半钟,有时甚至导致 workflow 调用超时。就在我准备写下更复杂的译文准确性评估准则,并进一步测试更好的反馈方案时,今天的 test run 额度用完了。就先写到这里。
来源:https://www.53ai.com/news/qianyanjishu/1031.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。