AI Agent 入门实战(二):ReAct 模式 —— Agent 的“思考-行动-观察”循环

403 阅读4分钟

普通 AI 是一问一答的“复读机”,Agent 是能自我迭代的“永动机”。这其中的差别,就在于 Agent 拥有一个持续运转的“认知循环”——ReAct。


一、从“你问我答”到“自我迭代”

上一讲我们说到,Agent 是有了手脚和记忆的 LLM。但光有零部件还不行,这些零部件该怎么协同工作呢?

  • 普通对话:你说“帮我写封邮件”,AI“刷刷刷”写完了,任务结束。这是一个线性的过程。
  • Agent 工作:你说“帮我分析竞品并写份报告”。Agent 不会直接扔给你一篇报告,它会先自言自语:“嗯,我要写报告,首先得有数据。第一步,我得去搜索竞品信息。”

笔记中有一段话点明了本质:

普通对话,你问他答,一问一答就结束了。Agent 不一样,它有一个持续运转的结构。


二、核心机制:ReAct(Reasoning + Acting + Observing)

Agent 最核心的工作方式就是 ReAct。这不是一种新模型,而是一套标准化的 Agent 执行流程框架。

它由三个核心动作组成,不断循环:

动作英文说明
思考Reason我要做什么?下一步该干什么?
行动Act调用工具去执行具体操作
观察Observe看看工具返回了什么结果

原文定义:ReAct(Reasoning+Act+Observe)是一套标准Agent执行流程/Agent工作框架,不是Langchain那种大型开发库,是Agent通用的循环工作标准

每一轮结束后,带着观察到的结果,再次回到 Reason,如此往复,直到任务完成,或者 Agent 自己判断终止(超出循环次数、token 上限、相同结果次数过多或任务失败)。


三、实战拆解:Agent 写竞品报告的全过程

我们用笔记中“竞品分析报告”的例子,把 ReAct 模式拆开了看:

  • 第 1 轮循环:

    • Reason(思考) :用户要竞品报告,但我手里没数据。我需要先搜索三家竞品的最新动态。
    • Act(行动) :调用“搜索工具(Search Tool)”,输入关键词“竞品 A 最新战略”。
    • Observe(观察) :工具返回了 100 页的搜索结果,信息量巨大。
    • 第一轮结束。
  • 第 2 轮循环:

    • Reason(思考) :虽然有信息了,但都是新闻稿,缺少具体的财务数据支撑论点。我需要找财报。
    • Act(行动) :调用“网页抓取工具”或“股市 API 工具”,去指定网址拉取数据。
    • Observe(观察) :拿到了三家公司的去年年报数据。
    • 第二轮结束。
  • 第 3 轮循环(可能还有第 4、5 轮) :

    • Reason:数据齐了,我可以开始撰写报告了。
    • Act(行动) :调用“文件写入工具(write_file)”,把内容写入 竞品分析.md。
    • Observe:文件保存成功。
  • 最终输出:

    • 当所有工具调用完毕,数据收集充分后,Agent 在最后一轮不再调用工具,而是直接生成最终答案,把报告交还给我们。

四、决定 Agent 能力边界的关键:Tool Use

在整个 ReAct 循环中,最关键的动作就是 Act(行动) ,也就是 Tool Use(工具调用) 。

笔记里有一句话非常精辟:

工具是 Agent 的手和脚,没有工具,它只能在大脑里转,转完之后,还是只有文字。

工具决定了 Agent 能干什么:

工具类型能力
搜索工具上网查实时信息
代码执行器运行代码、看结果
文件读写(I/O)读写本地文件
浏览器操作工具模拟人点击网页(如 Manus)
API 调用工具对接各种外部服务

笔记原文:工具越多,Agent能干的事情越多。很多Agent产品,调用了很多工具,工具的覆盖范围直接决定Agent的能力边界,选择Agent的核心。


五、江湖地位:为什么说“文无第一,武无第二(Claude)”?

在 AI 编程助手领域,一直有“文无第一,武无第二”的说法。

意思是写诗作画各有千秋(文),但写代码、跑测试是有客观标准的(武)。目前业内公认编程能力最强的模型是 Claude(Anthropic)  系列,其配套的 Claude Code 更是把工程化验收机制(AI 自我测试) 做到了极致。

笔记原文:Anthopice最牛逼的Agent企业,代码是最标准,又完善工程化验收机制的,ai测试agent

我们后续手写的 mini-cursor,正是向这些顶级 Coding Agent 致敬和学习的第一步。


六、总结

概念含义
ReActAgent 的标准执行框架:Reason → Act → Observe 循环
ReasonLLM 根据当前上下文进行规划和推理
Act调用 Tool 执行具体动作
Observe接收工具执行结果,作为下一轮推理的输入
Tool Use决定 Agent 能力边界的核心因素

下一篇,我们将迈入实战——用 LangChain 框架定义我们的第一个 Tool,并把 ReAct 循环用代码跑起来。