为什么 Agent 必须遵循思考→行动→观察的 ReAct 循环?

摘要:如果我们看过一些 Agent 框架,比如: LangChain AutoGen CrewAI 可能会发现一个有点奇怪的现象。 这些框架看起来功能很多: Tool 调用 Memory 多 Agent 协作 任务规划 但如果真的去翻源码或者架构
如果我们看过一些 Agent 框架,比如: LangChain AutoGen CrewAI 可能会发现一个有点奇怪的现象。 这些框架看起来功能很多: Tool 调用 Memory 多 Agent 协作 任务规划 但如果真的去翻源码或者架构,我们会发现一个事实: 很多 Agent 系统的核心逻辑其实非常简单。 大多数框架,本质上都在实现同一个循环: 思考 → 行动 → 观察 → 再思考 也就是所谓的 ReAct( Reasoning + Acting )。 第一次看到这个结构的时候,我其实有点意外。 因为它简单得有点不像一个“AI 架构”。 但后来越看越发现: 几乎所有 Agent 系统,都离不开这个循环。
为什么复杂任务必须“分步骤做” 先说一个很基础的问题。 大模型本身其实只会做一件事: 根据输入生成一段文本。 比如用户问: 帮我总结一下 AI Agent 的技术趋势 模型可以直接生成一段总结。 但如果任务变复杂一点,比如: 写一份 AI Agent 行业分析报告 这件事情如果是人来做,一般不会一步完成。 大多数人会这样做: 先去搜索一些资料 找几篇文章或报告看一看 整理出几个关键观点 想好文章结构 最后再写成一份完整报告 我们会发现,这其实是一个多步骤过程。 每一步都在决定: 下一步该做什么。 问题就在这里。 普通的大模型并不会自动拆分这些步骤,它只会根据当前输入生成一个结果。 但现实世界的大多数任务,其实都是一种 连续决策过程。 所以如果想让 AI 真的去“完成任务”,就必须给它一种机制,让它可以: 一步一步思考 在过程中调用工具 根据结果调整下一步动作 这就是 ReAct 想解决的问题。
ReAct:其实就是把“思考”和“行动”串起来 ReAct 这个概念来自一篇论文: ReAct: Synergizing Reasoning and Acting in Language Models 这篇论文的想法其实很简单: 让模型在推理过程中,不只是输出最终答案,而是同时输出三种信息: Thought(思考) Action(行动) Observation(观察结果) 例如: Thought: 需要先查一下最新的 Agent 技术趋势 Action: search("AI Agent trend 2025") Observation: 返回搜索结果 然后继续: Thought: 需要整理这些资料 Action: summarize(content) Observation: 得到总结 整个过程看起来大概是这样: Thought → Action → Observation ↑ └──── 再回到 Thought 换句话说,模型不再是“一次回答完问题”,而是在执行过程中不断调整下一步动作。
从工程角度看,它其实就是一个循环 如果用程序员的视角来看,ReAct 其实没那么神秘。 它本质上就是一个循环。 伪代码甚至可以写得很简单: while (task_not_finished) { thought = LLM(reasoning) action = choose_tool(thought) observation = run_tool(action) update_context(observation) } 模型负责做一件事: 决定下一步要做什么 系统负责做另一件事: 执行工具 拿到结果 把结果再喂给模型 整个系统就可以不断运行,直到任务完成。 很多 Agent 框架,其实只是把这个循环封装得更好用而已。
为什么这个循环这么关键 这个循环真正解决的问题其实只有一个: 让 AI 在执行过程中可以不断修正自己的决策。 举个简单例子。 如果用户说: 查一下最近最火的 AI Agent 框架 Agent 可能会这样工作: 第一步: Thought: 需要先搜索 Action: search("AI Agent framework") 第二步: Observation: 得到搜索结果 Thought: 需要整理这些框架 Action: summarize() 第三步: Observation: 得到总结 Thought: 可以输出最终结果 这个过程其实和人做事情很像。
阅读全文