从 LLM 到 ReACT Agent:推理与行动协同的智能体框架深度解析

过去几年,大语言模型(LLM)在文本生成、代码编写和知识问答等任务上取得了突破性进展。然而,随着应用场景从"回答问题"逐步走向"完成任务",人们开始意识到一个关键事实:仅具备推理能力的语言模型,并不足以应对真实世界中的复杂问题。如何让模型在思考的同时采取行动,并根据行动结果不断调整策略,成为推动智能系统演进的核心问题。正是在这一背景下,ReACT Agent 应运而生。

一、什么是 AI Agent:从"会回答"到"会做事"

传统的大语言模型(LLM)本质上是一个条件概率生成器:

给定输入 Token 序列,预测下一个 Token。

Agent 的核心目标不是"回答问题",而是"完成任务"。

AI Agent = LLM + 规划能力 + 记忆机制 + 工具执行能力 + 循环控制逻辑

在 Agent 体系中,LLM 不再是终点,而是中枢大脑(Brain)


1. Agent 的核心组件拆解(抽象层)

可以用一句工程化定义来总结:

Agent 是一个由 LLM 驱动、能够感知环境、进行推理、调用工具并持续迭代直至达成目标的系统。

核心能力一览

组件 职责 对应能力
LLM 推理与决策 语言理解、逻辑推演
Planning 任务拆解 子目标、顺序规划
Memory 状态保存 短期上下文、长期知识
Tool Use 执行动作 搜索、代码、API
Controller 循环调度 终止条件、异常处理

2. Agent 工作原理总览


二、Agent 的三大能力模块(深度拆解)

1. 规划(Planning)

1.1 子目标分解(Task Decomposition)

本质问题:LLM 一次性解决复杂问题,容易"思维跳跃"或遗漏关键步骤。

Agent 通过 显式规划 将问题拆分为可执行单元:

示例:

目标:制定季度销售推广方案

拆解为:

  1. 分析市场趋势
  2. 识别目标用户
  3. 调研竞品策略
  4. 选择推广渠道
  5. 制定执行计划

这一步通常通过 Prompt 或 Planner Agent 完成

1.2 反思与改进(Reflection)

这是 Agent 区别于普通 LLM 的关键进化点

常见反思方式:

  • 执行失败后总结原因
  • 对中间结果进行自我评价
  • 调整后续行动策略

工程实现常见形式:

powershell 复制代码
Previous action failed because ...
I should try a different approach:

2. 记忆(Memory)

2.1 短期记忆(Short-term Memory)

  • 本质:上下文窗口
  • 形式:对话历史、当前步骤
  • 限制:Token 上限

Prompt Engineering 就是在"压榨短期记忆"。

2.2 长期记忆(Long-term Memory)

  • 存储方式:向量数据库(FAISS / Milvus / Chroma)
  • 存储内容:
    • 历史任务经验
    • 用户偏好
    • 外部文档

典型流程:

powershell 复制代码
文本 → Embedding → Vector DB → 相似度检索 → 注入 Prompt

3. 工具使用(Tool Use)

3.1 为什么必须使用工具?

LLM 的权重是"静态的",现实世界是"动态的"。

工具弥补三大缺陷:

  • ❌ 无实时信息
  • ❌ 无执行能力
  • ❌ 无私有数据访问

3.2 常见工具类型

工具类型 示例
搜索 Google / Bing / 内部搜索
计算 Python REPL
数据 SQL / Elasticsearch
系统 Shell / OS
业务 内部 API

四、ReACT 的提出背景:Reasoning 与 Acting 的"断层问题"

4.1 早期方法的两种极端

方法 特点 问题
Chain-of-Thought 推理清晰 无法执行动作
Tool-Augmented LLM 能调用工具 缺乏长期规划

核心断层:推理(Reasoning)和行动(Acting)是割裂的。


4.2 ReACT 的核心洞察

ReACT 论文的关键假设是:

人类解决问题时,是在"想--做--看--再想"的闭环中完成的,而不是先想完再一次性执行。

因此,研究团队提出:

让语言模型同时生成推理轨迹(Thought)与行动指令(Action)


五、ReACT Agent 的核心机制:Thought--Action--Observation 循环

5.1 ReACT 的最小抽象

ReACT Agent 可以被抽象为一个 显式状态机

bash 复制代码
State = {Thought, Action, Observation}

每一轮循环,LLM 都会:

  1. 生成 Thought(推理)
  2. 选择 Action(动作)
  3. 接收 Observation(反馈)
  4. 进入下一轮推理

5.2 三个核心状态的语义定义(非常关键)

Thought(思考)

  • 内部推理链
  • 不直接影响环境
  • 决定下一步 Action

示例:

bash 复制代码
Thought: 我需要确认当前季度电子产品的市场趋势

Action(行动)

  • 唯一能改变环境的步骤
  • 必须是结构化、可执行的

示例:

bash 复制代码
Action: Search("2025 Q1 电子产品 市场趋势")

Observation(观察)

  • 工具或环境返回的真实结果
  • 是下一轮推理的"事实依据"

示例:

bash 复制代码
Observation: 多份行业报告指出 AI PC 与可穿戴设备增长迅速

六、ReACT Prompt 设计:让模型"学会"循环

6.1 标准 ReACT Prompt 模板(论文级)

bash 复制代码
You are a ReAct agent.

You must use the following format:

Thought: describe your reasoning
Action: the action to take, one of [Search, Lookup, Finish]
Observation: the result of the action

Repeat until you can answer.

Question: {question}

格式约束是 ReACT 成功的关键,而不是模型大小。


6.2 为什么 ReACT 必须"强约束输出格式"?

原因有三:

  • 方便 程序解析
  • 强制模型 外化推理
  • 防止 Action 随机生成

七、ReACT Agent 的工程实现

7.1 ReACT Agent 的核心控制循环

本质:一个由 LLM 驱动的 while 循环

python 复制代码
class ReActAgent:
    def __init__(self, llm, tools):
        self.llm = llm
        self.tools = tools
        self.history = []

    def run(self, question, max_steps=10):
        prompt = self.build_prompt(question)

        for step in range(max_steps):
            response = self.llm(prompt)
            thought, action = self.parse(response)

            if action.name == "Finish":
                return action.args

            observation = self.tools[action.name](action.args)
            prompt += f"\nObservation: {observation}\n"

这段代码就是 ReACT 的"灵魂"


7.2 Action Dispatch(工具路由)

python 复制代码
TOOLS = {
    "Search": search_tool,
    "Lookup": lookup_tool
}

ReACT 不关心工具怎么实现,只关心能不能用


八、ReACT 与传统 Agent 框架的本质区别

8.1 与 Planner-Executor 的对比

维度 Planner-Executor ReACT
执行方式 先规划后执行 边想边做
动态调整
中间可解释性 极高
容错性

8.2 与 AutoGPT 的对比

项目 AutoGPT ReACT
自主性 可控
推理可见
工程稳定性

九、ReACT 的典型应用场景

9.1 检索增强问答(RAG + ReACT)

python 复制代码
Thought → 是否需要外部信息?
Action → 向量检索 / 搜索
Observation → 文档片段
Thought → 综合答案

9.2 自动化运维 / 测试

python 复制代码
Thought: BMC 温度异常,需确认传感器数据
Action: CallAPI("/redfish/v1/Chassis/...")
Observation: CPU 温度 92℃
Thought: 超过阈值,需要进一步定位

9.3 数据分析 Agent

  • Thought:选择统计方法
  • Action:执行 Python
  • Observation:数值结果

十、ReACT 的挑战与工程化改进

10.1 Token 成本问题

  • Thought 会显著增加 Token
  • 工程方案:
    • 隐藏 Thought(生产)
    • 压缩历史
    • 分层 Agent

10.2 循环失控问题

解决方案:

  • 最大步数
  • 重复检测
  • Reward / Critic Agent

ReACT 并不是"让模型多想几步",而是让模型"像人一样边想边行动"。 它标志着大模型从"语言系统"向"行为系统"的关键跃迁。

相关推荐
无心水2 小时前
【神经风格迁移:多风格】17、AIGC+风格迁移:用Stable Diffusion生成自定义风格
人工智能·机器学习·语言模型·stable diffusion·aigc·机器翻译·vgg
摸鱼仙人~2 小时前
Bert系列之为什么选择chinese_roberta_wwm_ext
人工智能·深度学习·bert
Roxanne0072 小时前
吴教授《AI for everyone》笔记梳理(DAY1)
人工智能·笔记
倔强的石头1062 小时前
昇腾大模型量化实战:ModelSlim 工具上手与 W8A8 精度优化全流程解析
人工智能·机器学习
TMT星球2 小时前
“智汇众力 共擎新元”,机器人租赁平台“擎天租”发布
大数据·人工智能·机器人
HUT_Tyne2652 小时前
第2章 语言模型基础
人工智能·语言模型·自然语言处理
熬夜敲代码的小N2 小时前
自然语言处理与Transformer模型
人工智能·自然语言处理·transformer
KlipC2 小时前
字节跳动加码AI布局
人工智能·klipc
十铭忘2 小时前
SAM2跟踪的理解14——mask decoder
人工智能·计算机视觉