[Hello Agents Chapter 4] 智能体经典范式构建 Part 4:Reflection (自我反思)

[Hello Agents Chapter 4] 智能体经典范式构建 Part 4:Reflection (自我反思)

摘要: ReAct 和 Plan-and-Solve 完成任务后即止,而 Reflection 范式引入了“事后修正”机制。本篇将构建一个具备“自我进化”能力的智能体,通过模拟人类的“初稿->反思->修稿”工作流,实现代码生成任务从 到 的算法级自动优化。
关键词: Reflection, Self-Correction, Iterative Refinement, Memory Module, System 2 Thinking
本文是基于Datawhale的hello-agent开源项目做的一些笔记,内容仅供参考,原PDF以及代码可以去github仓库获取https://datawhalechina.github.io/hello-agents


在前两篇中,我们构建了“边走边看”的 ReAct 和“先谋后动”的 Plan-and-Solve。它们各有千秋,但都有一个共同痛点:一旦输出,便是定局,缺乏自我纠错的能力。

智能体生成的初始答案,无论是行动轨迹还是最终代码,往往存在谬误或并非最优。Reflection 机制的核心思想,是为智能体引入一种事后 (post-hoc) 的自我校正循环

4.4.1 Reflection 机制的核心思想

Reflection 灵感来源于人类的学习过程:写完文章要校对,做完题要验算。这一思想在 Noah Shinn 等人提出的 Reflexion 框架中得到了系统化0。

其核心是一个简洁的三步循环:

  1. 执行 (Execution):生成“初稿”。
  2. 反思 (Reflection):调用一个独立的 LLM 实例扮演“评审员”,审视“初稿”的事实错误、逻辑漏洞或效率问题,并生成反馈 (Feedback)
  3. 优化 (Refinement):结合“初稿”和“反馈”,生成“修订稿” 。
数学形式化表达
流程可视化

(图 4.3 Reflection 机制中的“执行-反思-优化”迭代循环)


4.4.2 短期记忆模块 (Memory Module)

Reflection 的核心在于迭代,而迭代的前提是“记住”之前的尝试和反馈。我们需要一个 模块来存储完整的轨迹 。



4.4.3 Reflection 智能体的编码实现

有了记忆模块,我们来实现 。这需要三个精心设计的 Prompt,分别对应三个角色。

1. 提示词设计 (Prompt Engineering)
  • Initial Prompt: 资深 Python 程序员。任务:直接写代码 。
  • Reflection Prompt: 极其严格的代码评审专家。任务:找出算法效率瓶颈,提出改进建议(如时间复杂度优化)。
  • Refinement Prompt: 优化者。任务:根据反馈重写代码 。

深度解析 (Deep Dive)
原文中 的设计非常关键:“你是一位极其严格的代码评审专家…专注于找出算法效率上的主要瓶颈…如果存在更优解,请提出具体的改进算法(如筛法替代试除法)” 。这种Persona (角色设定) + Specific Constraint (具体约束) 是让 LLM 输出高质量反馈的秘诀。

2. 智能体核心逻辑


4.4.4 运行实例:从 到

我们将任务设定为:“编写一个 Python 函数,找出 1 到 n 之间所有的素数” 。这是一个经典的算法优化场景。

第 1 轮:初始尝试

  • LLM 输出:生成了一个标准的双重循环代码(试除法)。

(注:这是典型的初学者写法,效率一般)

第 1 轮:反思

  • 评审员反馈:当前代码时间复杂度为 。当 n 很大时性能会下降。建议使用 埃拉托斯特尼筛法 (Sieve of Eratosthenes),复杂度可降为 。

第 1 轮:优化

  • LLM Agent 智能体 输出:根据反馈重写了代码,使用了筛法。

第 2 轮:反思

  • 评审员反馈:当前代码已使用筛法,非常高效。虽然可以进一步使用“分段筛法”优化内存,但一般情况下无需改进
  • 结果:触发终止条件,任务结束。

4.4.5 成本收益分析

Reflection 是一种“以成本换质量”的高级策略。

  • 成本 (Cost)
  • Token 消耗倍增:每一轮迭代至少由于 2 次 LLM 调用(Reflect + Refine)。
  • 延迟 (Latency):串行过程,耗时显著增加 。
  • 收益 (Benefit)
  • 质量跃迁:能将“合格”方案优化为“优秀”方案(如本例中的算法复杂度降低)。
  • 鲁棒性:内部纠错回路能发现逻辑漏洞 。

适用场景:生成关键业务代码、撰写技术报告、复杂逻辑推演 。


至此,我们完成了三种经典范式的构建。请参考下表选择适合你的架构:

范式 核心逻辑 适用场景 优势
ReAct 思考-行动-观察 需要实时搜索、API 交互、探索性任务 环境适应性强,动态纠错
Plan-and-Solve 先规划-后执行 逻辑严密、步骤清晰的复杂推理任务 结构清晰,避免中途迷失
Reflection 执行-反思-优化 代码生成、长文写作、高质量决策
质量极高,具备自我进化能力

Next Step: 现在你已经掌握了单智能体的设计。但在真实世界中,一个超级智能体往往难以独当一面。下一章,我们将进入 Multi-Agent (多智能体) 的世界,探索如何让多个 Agent 像公司团队一样协作!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/240404.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 上午8:24
下一篇 2026年3月16日 上午8:24


相关推荐

关注全栈程序员社区公众号