news 2026/7/17 21:02:52

第5篇:三种思考模式 —— ReAct / Plan-and-Execute / Reflection

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第5篇:三种思考模式 —— ReAct / Plan-and-Execute / Reflection

Agent 不只是"LLM + Tools"。LLM 怎么"想"问题、怎么决定下一步做什么,有不同的模式。本篇介绍三种主流模式:ReAct(边想边做)、Plan-and-Execute(先想再做)、Reflection(想完自查)。理解它们的区别,才能在不同场景下选对模式。

一、ReAct(Reasoning + Acting)

边走边算:拿到一个信息后推理,再调工具,再推理,循环直到信息足够。

Thought(推理)→ Action(执行工具)→ Observation(观察结果)→ 再推理 → … → Final Answer

例子:用户问"今天天气适合徒步吗?"

  1. Thought:我需要知道今天的天气情况来判断是否适合徒步
  2. Action:调用天气查询工具,传入城市名
  3. Observation:返回"温度 28°C,湿度 60%,下午有阵雨"
  4. Thought:下午有阵雨,需要知道徒步路线是否有避雨点。还需要查昨天的天气做对比
  5. Action:调用地图工具查徒步路线设施
  6. Observation:路线沿途有 3 个避雨亭
  7. Thought:信息足够,可以回答——建议上午出发,带雨具
  8. Final Answer:给出具体建议

这个例子展示了 ReAct 的核心特征:每一步都在"想→做→看→想"之间循环,直到信息足够才给出最终回答。

  • 优点:简单直观,实现容易,适合对话式交互
  • 缺点:可能死循环(Thought→Action 反复停不下来)、消耗更多 token、没有全局视角(每一步只考虑当前信息)
  • 适合:日常问答、单步工具调用、信息不完整的场景

论文:Yao et al., 2022, ICLR 2023《ReAct: Synergizing Reasoning and Acting in Language Models》

ReAct 循环的工程实现

在 Agent Runtime 中,ReAct 循环是一个连贯的七阶段流程:

  1. 意图识别:判断用户的真实需求是什么
  2. 理解 Context:结合当前上下文和记忆理解完整场景
  3. 路由(Routing):决定用哪个 Skill 或 Tool
  4. Skill 加载:按需加载对应 Skill 指令
  5. 工具执行:执行 Tool,等待结果
  6. 结果观察:评估工具返回结果
  7. 判断结束/继续:信息足够 → 生成最终答案;不够 → 回到第一步

这个七阶段循环是 Agent Runtime 的核心引擎。每次从 7 回到 1,都是一次"Thought→Action→Observation"的完整迭代。

ReAct 的死循环问题

ReAct 最常被诟病的问题是死循环。Agent 反复"想→做→看"但永远得不到足够的信息得出结论。工程上常用的应对手段:

  1. 最大迭代次数限制:设定硬上限(如 10 次),超出后强制输出当前结果
  2. 时间超时机制:超过设定时间(如 30 秒)后中断
  3. 信息增益检测:如果最新 Observation 没有带来新的有效信息,提前终止
  4. 重复动作检测:如果 Agent 连续调用同一个工具且参数相同,打断循环

二、Plan-and-Execute(先规划再执行)

先制定完整计划,再逐步执行。

vs ReAct:ReAct 是边想边做(每步重新推理),Plan-and-Execute 是先想好再做。

Plan:[1. 搜索 React 教程 →2. 阅读前3个结果 →3. 总结核心观点 →4. 格式化输出]Execute: 按计划逐步执行,每步只需执行不需要思考
  • 优点
    • 有全局视角,不会因为局部信息影响整体判断
    • 执行效率高(大模型只在规划和重规划时被调用,执行阶段只需 Tool 调用)
    • 用户可介入修改计划(增加/修改步骤)
  • 缺点
    • 计划可能过于僵化,执行中遇到意外情况需要重新规划
    • 不适合信息高度不确定的场景
  • 适合:论文写作、博客、代码开发等多步长、结构清晰的任务
  • 主流框架:LangChain / LangGraph 已实现该模式

Plan-and-Execute 在 AI 编程工具中非常常见:用户提出需求 → Agent 制定修改计划 → 用户确认 → 逐步执行 → 代码应用。

三、Reflection(自我反思)

Generate → Critique → Refine 循环。

草稿 → 审阅 → 通过/不通过 → 不通过则修改 → 再审阅 →... → 通过 → 输出

Reflection 的核心是引入第二个检验环节:不是让 LLM 一次生成到位,而是先生成初稿,再让另一个 LLM(或同一个 LLM 但换一个角度)审阅,发现问题后打回修改。

  • 适合:需要高准确性的任务(代码审查、专业文档、法律文书)
  • 类比:写完文章后自己审稿,或者找同事 code review

Reflection 的变体包括:

  • Self-Reflection:同一个 LLM 对自己生成的内容做自我批评
  • Multi-LLM Reflection:不同 LLM 分别担任"写"和"审"的角色
  • Tool-Assisted Reflection:通过外部工具(编译器、语法检查器)来辅助审阅

论文:SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION

四、组合模式

大型通用 Agent 通常三种模式整合使用:

Plan 先规划 → ReAct 逐步执行 → Reflection 验证结果

类比:项目经理先定计划(Plan),团队执行(ReAct),QA 验收(Reflection)。

组合模式的优势在于各取所长:Plan 提供全局视角,ReAct 提供灵活性,Reflection 提供质量保障。缺陷也很明显:复杂度和 Token 消耗都更高。

模式选择指南

任务特点推荐模式说明
简单、单步ReAct不需要全局规划
复杂多步Plan-and-Execute先规划节省 token
高准确性+Reflection审阅机制兜底
大型通用组合模式三种整合使用

选择的核心原则:不要为不需要的能力买单。简单问答用 ReAct 就够了,加 Reflection 反而增加延迟和成本。只有当你明确遇到"质量不够"的问题时,才叠加更复杂的模式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/17 21:00:45

基于SpringBoot的社区物业报修系统的设计与实现

摘 要 当前社区物业服务中,故障报修环节的传统人工模式存在响应慢、流程不透明、数据难追溯等问题,既降低物业管控效率,也难以满足居民对便捷化、高效化报修服务的需求。在智慧社区建设的大背景下,为缓解报修服务痛点、优化物业运…

作者头像 李华
网站建设 2026/7/17 21:00:03

吃透MySQL核心原理:日志、事务、MVCC、锁机制深度详解

作为后端开发工程师,MySQL 是日常开发中接触最多的关系型数据库。大部分业务问题、数据库性能瓶颈、线上故障,归根结底都和 MySQL 的日志机制、事务特性、MVCC、锁机制四大核心模块相关。 很多人只会写 SQL 语句,却不懂底层运行原理&#xf…

作者头像 李华
网站建设 2026/7/17 20:56:30

专注医美GEO的企业哪家更专业?看技术深耕和客户真实反馈

在医美行业同城化获客需求爆发的当下,GEO(地理空间数据优化)技术成为破解本地经营难题的关键。然而,通用型大数据工具的“水土不服”,让医美机构陷入获客成本高、投放盲目的困境。杭州深度迹寻互联网科技有限公司&…

作者头像 李华
网站建设 2026/7/17 20:55:56

Flutter 环境搭建实录

Flutter环境搭建日志,记录了我在 Windows 10 系统上从零开始配置 Flutter 开发环境的完整过程。期间遇到了网络连接、环境变量、sdk下载、Android Studio 配置等一系列问题,最终全部解决。🖥️ 我的电脑配置硬件配置操作系统Windows 10 专业版…

作者头像 李华
网站建设 2026/7/17 20:50:10

什么是产品经理?

为什么需要产品经理?直接给答案:因为组织的分工,会导致没有人对全局的投入产出比负责。我们看一个没有产品经理的团队,各个角色都在追求什么:设计师:追求极致的用户体验。一个按钮的位置、一个动画的流畅度…

作者头像 李华