[控场AI]
· 4 分钟阅读· 2,497 字

AI Agent的秘密:ReAct框架如何让LLM自主行动

AI Agent的秘密:ReAct框架如何让LLM自主行动

AI Agent 靠 ReAct 循环——推理、行动、观察——实现自我纠错与自主完成任务。

文章解释了 Cursor、Devin、Claude Code 等 AI 编程工具为何能自主写代码、跑命令、修 Bug:核心在于 ReAct 框架,即推理(Reason)、行动(Act)、观察(Observe)三个步骤的持续循环。模型先判断下一步动作,通过工具调用在终端执行命令,再读取输出与报错并重新输入模型,触发下一轮推理,直到任务完成。文中以「创建 React 应用」为例,展示遇到 node 未安装的报错后 AI 如何自行调整方案重试。文章还指出 Agent 与传统对话式 AI 的三大差异:工具调用能力、环境反馈闭环和自主循环控制,并强调 MCP 协议作为执行层基础设施的关键作用,同时提醒长循环带来的 token 成本与误判风险。

为什么AI Agent能自己写代码、修Bug?

Cursor、Devin、Claude Code 这些工具正在重新定义编程体验:它们不只生成代码片段,还能运行终端命令、读取报错信息、自行修复问题。很多人困惑——LLM 本质上只是预测下一个 token 的模型,它凭什么能完成这一连串动作?

据 YouTube 科技频道的分析,答案藏在一个名为 ReAct(Reason + Act) 的框架里。普通 AI 只做一次「猜测」,而 Agentic AI 则在一个持续的循环中运转。

AI Agent工作原理解析

ReAct 框架:推理、行动、观察的无限循环

ReAct 的核心可以拆成三个交替进行的步骤:

  1. Reason(推理):根据当前目标和已知信息,判断下一步该做什么。
  2. Act(行动):通过工具调用(如 MCP 协议)在终端中执行具体命令。
  3. Observe(观察):读取执行结果,包括输出内容和错误信息。

关键在于,观察结果会重新输入给模型,触发下一轮推理。这个循环会一直持续,直到任务完成或达到终止条件。

ReAct框架示意图

一个具体例子:搭建 React 应用

假设用户下达指令「帮我创建一个 React 应用」。第一轮推理中,AI 判断需要运行 create-react-app 命令;随后它通过 MCP 在终端执行该命令;观察阶段发现报错「node not installed」。

循环没有中断,而是回到推理环节:AI 意识到需要先安装 Node.js,于是发起新的行动。正是这种「失败→反思→重试」的机制,让普通 LLM 蜕变为能处理复杂任务的 Agent。

错误触发循环重试

ReAct 最早由 Shunyu Yao 等人在 2022 年的论文《ReAct: Synergizing Reasoning and Acting in Language Models》中提出,最初用于问答与事实核查任务。其核心洞察是:让模型在生成答案前显式输出「思考」(thought),并据此决定调用哪个工具(action),再把工具返回的文本(observation)拼回上下文继续生成。与更早的「思维链」(Chain-of-Thought)只做内部推理不同,ReAct 把外部环境的真实反馈纳入推理链条,因此能纠正模型仅凭参数知识产生的臆断。今天 Cursor、Claude Code 等产品中的「工具调用循环」,本质上都是 ReAct 范式的工程化延伸。

Agent 与传统对话式 AI 的本质差异

普通对话式 AI 的交互是单次的:输入问题,输出答案。如果答案有误,需要用户自己发现并重新提问。

Agentic AI 把「纠错权」交给了模型自身。它拥有三个传统对话缺少的要素:

  • 工具调用能力:能操作终端、文件系统、浏览器等外部环境
  • 环境反馈闭环:每次行动的结果都会成为下一轮决策的输入
  • 自主循环控制:无需人工介入即可持续迭代

这使得 Agent 可以处理多步骤、强依赖环境状态的任务,例如调试依赖冲突、运行测试并修复失败用例。

工具调用层:MCP 的角色

视频中特别提到 MCP(Model Context Protocol)作为 Agent 与终端之间的桥梁。LLM 本身没有执行能力,它只能输出文本。MCP 这类协议把模型的「意图」翻译成实际的命令调用,再把执行结果结构化地返回给模型。

这一层是 Agent 能力落地的关键基础设施。没有它,ReAct 循环中的「Act」和「Observe」都无从谈起。

MCP(Model Context Protocol)由 Anthropic 于 2024 年底提出并开源,旨在为模型与外部数据源、工具之间提供统一的接口标准。在 MCP 之前,每个 Agent 产品都要为接入文件系统、数据库或命令行单独编写适配代码,工具生态彼此割裂;MCP 用「服务器—客户端」结构把工具能力抽象成可发现、可复用的服务,模型只需按协议描述请求即可调用。它常被类比为「AI 应用的 USB-C 接口」。需要区分的是,MCP 负责「怎么连」,而函数调用(function calling)负责「怎么表达调用意图」,两者配合才能完成 ReAct 循环中的 Act 与 Observe。

局限与边界

ReAct 并非万能。循环的每一步都依赖模型对观察结果的正确解读,一旦模型误判错误原因,可能在错误的路径上反复尝试。此外,长循环会消耗大量 token,成本和延迟随之上升。对开发者而言,理解这一机制有助于更好地设计提示词和工具接口,而不是把 Agent 当成黑盒。

ReAct循环流程

从工程视角看,长循环还面临上下文窗口的硬约束:每一轮的推理、命令输出和错误堆栈都会追加进对话历史,几轮之后上下文可能被填满,模型不得不丢弃早期信息或触发压缩摘要,导致对目标的记忆衰减。常见缓解手段包括把冗长日志写入文件、只在上下文中保留摘要、设置最大迭代轮数与超时,以及在关键步骤引入人工确认。这些设计决定了 Agent 在真实项目中的稳定性上限。

核心要点

  • AI Agent 的秘密在于 ReAct 框架:推理、行动、观察的持续循环
  • 普通 LLM 只做单次生成,Agent 通过环境反馈实现自我纠错
  • MCP 等工具调用协议是 Agent 执行终端命令的基础设施
  • 错误信息是循环的燃料,而非终止信号
  • 理解 ReAct 有助于更有效地使用和调试 Cursor、Devin 等工具
分享:

相关推荐