【Agent】ReAct 核心架构与设计哲学

深入浅出 AI Agent:ReAct 核心架构与设计哲学


引言:LLM 时代的"行路难"

在构建大语言模型(LLM)应用的实际业务场景中,开发者往往会面临两个致命的痛点:

  1. "知识幻觉"与时效性缺失: 模型的知识受限于预训练的截止时间,无法获取企业私有数据或互联网实时信息,容易"一本正经地胡说八道"。
  2. "闭门造车"的逻辑硬伤: 尽管思维链(CoT, Chain of Thought)极大地提升了模型的推理能力,但如果面对复杂的、需要多步决策的任务,模型一旦在中间某一步算错或产生认知偏差,后续的推理就会彻底崩塌。

如何让大模型既具备"聪明的头脑"去思考,又拥有"强壮的四肢"去感知和改变外部世界?

2022 年底,由谷歌团队提出的 ReAct(Reasoning + Acting) 架构给出了里程碑式的答案。它是目前主流 AI Agent(智能体)演进的底层设计哲学。


一、 什么是 ReAct 架构?

ReAct 的核心逻辑可以浓缩为一个极简的公式:

Reasoning(推理)+Acting(行动)=ReAct\text{Reasoning(推理)} + \text{Acting(行动)} = \text{ReAct}Reasoning(推理)+Acting(行动)=ReAct

在 ReAct 问世之前,大模型应用主要分为两个孤立的流派:

  • Reasoning-Only(仅推理): 以 CoT 为代表。模型在脑海中一步步推导(如:"第一步应该...,第二步应该..."),但由于完全不与外部环境交互,一旦遇到知识盲区,只能盲目续写。
  • Acting-Only(仅行动): 以早期的 API 联动为代表。模型直接输出外部工具的调用指令(如:直接触发搜索、调用数据库),但缺乏对中间结果的审视与全局规划,极易迷失在复杂的条件分支中。

ReAct 的本质是一种"协同机制": 它打破了两者的界限,让模型"边想边做,边做边改"。模型先写一段"思考",决定下一步干什么;然后执行"行动"去调用工具;接着拿到工具返回的"观察"结果;再基于新信息进入下一轮思考。


二、 底层运行机制与经典工作流

一个标准的 ReAct Agent 在处理复杂任务时,会严格在一个闭环状态机中进行循环。

1. 核心状态循环圈

复制代码
          [User Question] (用户输入原始问题)
                 │
                 ▼
 ┌─────────► 1. [Thought] 思考 (分析当前状态,决定下一步计划)
 │               │
 │               ▼
 │           2. [Action] 行动 (决定调用哪个工具,并输出参数)
 │               │
 │               ▼
 │           3. [Observation] 观察 (外部系统执行工具,并返回真实数据)
 │               │
 └───────────────┴─── (循环迭代,直至获得足够信息)
                 │
                 ▼
            [Final Answer] (结合全盘信息,输出最终答案)

2. 文本层面的"接龙"戏法

在底层,ReAct 并不是靠魔法实现的,而是通过精心设计的提示词模板(Prompt Template),强行规范大模型的文本生成结构。

以下是一个标准的底层 Prompt 骨架:

text 复制代码
你是一个能够使用工具回答问题的智能体。你必须使用以下格式,严禁单次同时调用多个工具:

Question: 用户提出的输入问题
Thought: 思考你当前知道什么,还需要知道什么,下一步应该选择什么工具
Action: 要采取的行动,必须是以下工具之一: [Google_Search, DB_Query, Calculator]
Action Input: 调用的工具输入参数
Observation: 工具返回的结果(注意:这是由外部系统填入的,不是由你生成的)
... (上述 Thought/Action/Action Input/Observation 步骤可以重复多次)
Thought: 我现在知道最终答案了
Final Answer: 对原始问题的最终、详细的回答

当用户输入"计算我扣税后的净收入"时,大模型在底层的"脑路历程"是这样交错推进的:

步骤(Token 生成) 角色 文本内容 核心目的
Thought 1 LLM 要计算扣税后收入,我需要先查到用户的税率以及基础总收入。我应该先查询数据库。 制定计划
Action 1 LLM DB_Query 发起行动
Action Input 1 LLM {"user_id": 1024, "field": "base_salary"} 传递参数
停止生成,等待框架注入...
Observation 1 系统 {"base_salary": 25000, "tax_rate": "20%"} 注入外部事实
恢复生成...
Thought 2 LLM 已经获取到总收入 25000,税率 20%。我现在需要用计算器精确计算扣税金额:25000×(1−0.2)25000 \times (1 - 0.2)25000×(1−0.2)。 评估反馈并修正计划
Action 2 LLM Calculator 发起第二次行动
Action Input 2 LLM 25000 * 0.8 传递计算参数
停止生成,等待框架注入...
Observation 2 系统 20000 注入计算结果
恢复生成...
Thought 3 LLM 计算完成,结果是 20000。我已经掌握了所有必要的信息,可以回答用户了。 判定退出
Final Answer LLM 您扣税后的净收入为 20,000 元。 交付结果

三、 ReAct 的三大核心设计哲学

1. 动态可解释性(Trustworthy)

在传统的"黑盒"模型中,用户输入一个问题,模型直接给出一个答案,人类无法得知其中间推导过程。

ReAct 的每一次 Thought 都是白盒化的。通过将模型的"心路历程"和"工具挑选理由"实时打印出来,人类可以非常清晰地复盘 AI 的推理逻辑。这种高可解释性在金融、医疗、工业等高容错要求的场景中至关重要。

2. 差错自愈能力(Error Correction)

人类在做决策时,如果发现查到的资料不对,会立刻换个关键词重新查。ReAct 让模型也具备了这种动态容错与自愈能力 。

如果 Observation 返回了一个错误信息(例如:"未找到相关数据 "),模型会在下一个 Thought 中表现出反思:"刚刚使用的关键词太宽泛了,我应该尝试用更精准的商品 ID 重新查询数据库"。

3. 解耦"常识"与"专业事实"

ReAct 的终极哲学,是让大模型回归"大脑"的本质 ,专注于逻辑推理、意图理解和任务拆解;而将海量的"专业事实知识"外包给外部工具(Tools)。

模型不再需要死记硬背天气的变化、股票的波动或复杂的行业报表,它只需要知道在什么场景下,去调用哪一个工具即可。


四、 走向工程落地:从学术到现实的挑战

虽然 ReAct 在理论上近乎完美,但在真实的业务工程落地中,纯粹基于 Prompt 的 ReAct 架构会遭遇以下现实挑战:

  • Token 滚雪球与高延迟:
    从上面的工作流可以看出,每一轮新的 Thought 触发时,都需要把之前所有轮次的 Thought + Action + Observation 历史当做上下文全部重新喂给模型。这导致 Token 消耗呈几何级数增长,且多轮推理带来的 API 响应延迟(TTFT/TPOT)在 C 端体验中难以忍受。
  • 格式"脱轨"与死循环:
    底座模型一旦因为温度(Temperature)随机性少打了一个冒号、或者参数格式不符合 JSON,后端的解析器(Parser)就会崩塌。如果模型卡在某一步不停地输出错误的格式,就会陷入高昂的付费死循环(Looping)。
  • 现代演进(Tool Calling 与状态机):
    为了解决上述痛点,现代生产环境逐渐摒弃了纯文本正则解析的老式 ReAct。
  1. 硬件层面: 底座模型(如 GPT-4, Kimi K2.5)原生支持了 Tool Calling 技术,通过微调专门的采样通道,直接稳定输出结构化 JSON。
  2. 架构层面: 行业正在向 LangGraph 等基于图结构和状态机(State Graph)的架构演进------用确定性的代码逻辑去控制 Agent 的流转拓扑(哪一步该走分支、什么时候强行熔断),而仅仅将决策交由 LLM。

总结

ReAct 架构不仅是一种代码实现模式,更是一种将人类行为学"知行合一"映射到硅基世界的哲学思想。它奠定了现代 AI Agent 的骨架。

相关推荐
天空属于哈夫克33 天前
企业微信二次开发:精准实现关键词自动回复
架构·企业微信
子兮曰3 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
AlbertZein3 天前
Step-5-Preview 上手实测:3D 游戏、金融分析、网页设计一次跑完
人工智能·aigc
1点东西3 天前
做了近两年的Agent开发,其实真正要学的就是这五件事
llm·agent·ai编程
七牛云行业应用3 天前
Qwen-Image-2.1 开源部署完整指南:Diffusers、ComfyUI 与推理服务
ai编程
晨米酱3 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
这个DBA有点耶3 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
福如意如我心意3 天前
TencentDB Agent Memory和其他开源memory
ai编程
码流子3 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
AIGCmagic社区3 天前
文档智能专题:小模型后训练怎么选样本?PaddleOCR-VL-1.6按三类弱点挖掘
人工智能·aigc·文档智能