拆解AI Agent的"神经系统":规划、记忆、工具、ReAct,四个概念让你真正读懂Agent

很多人第一次接触AI Agent,会有一种类似"读医学教材"的困惑:单词都认识,但读完不知道在讲什么。

"规划"、"记忆"、"工具调用"、"ReAct框架"……这些词经常一起出现,但彼此的关系说不清楚,看起来像是四套不同系统硬拼在一起。

这篇文章,我想把这四个东西的逻辑关系说透。它们不是并列的,更不是相互独立的——它们是一个系统的四个层次,缺一不可。


一、从一个比喻开始:人类如何完成一项复杂任务?

假设你是一个活动策划,今天接到任务:为公司200人年会设计一个方案,三天后汇报。

你会怎么做?

  1. 先想清楚要干什么(规划):把大任务拆成小任务——场地、预算、节目、餐饮、主持……
  2. 调用已有的知识和经验(记忆):你记得去年的供应商报价,你记得哪个节目类型最受欢迎。
  3. 打电话查资料、用工具(工具调用):你打开地图找场地,调出Excel算预算,发邮件给供应商问报价。
  4. 执行并不断根据反馈调整(ReAct循环):场地报价太高,重新找;节目时长超了,重新排……

你就是一个Agent。 规划、记忆、工具、执行循环,这四件事你每天都在做,只是不叫这个名字。

现在,OpenAI前安全主管Lilian Weng在她的著名博文《LLM Powered Autonomous Agents》中,把这个过程精确地映射到了AI Agent的架构上。


二、Agent的四大要素:拆开来看

1. 规划(Planning):大模型的"分解力"

规划,是把一个复杂任务拆成可执行的子任务序列的过程。

听起来简单,但这恰恰是大模型出现之前的Agent最难做到的事。传统AI要么死守规则,遇到没见过的情况就不知所措;要么只会反应式处理,根本没有"先想清楚再行动"的能力。

大模型改变了这一点。它有两类关键的规划技术:

任务分解

  • 思维链(CoT):让模型"一步一步地思考"。这不是一个特殊功能,而是一种提示技巧——在提示词里加上"请一步一步推理",模型就能把隐式的推理过程显式化,把大任务自然分解成小步骤。

  • 思维树(ToT):CoT的升级版。CoT是一条线,ToT是一棵树——每一步都探索多种可能性,用广度优先或深度优先搜索来找最优路径。复杂问题用CoT可能走进死路,ToT能回溯重试。

自我反思

规划不是一次性的,好的Agent要能"反思自己的决定"。这里有三个框架很重要:

  • ReAct(后面会详细展开):边推理边行动,边行动边观察反馈,构成循环。
  • Reflexion:让Agent在行动后回顾"我做得怎么样",用过去的反思改进下一轮决策。
  • CoH(Chain of Hindsight):向模型展示一系列带反馈的历史输出,让它学会从失败中改进。

这三者的共同点:Agent不再是一次性给出答案的机器,而是有了迭代和进化的能力。


2. 记忆(Memory):大模型的"四种脑子"

这是最容易被忽略,却极其重要的部分。

很多人以为大模型"天生有记忆",或者"记忆就是上下文窗口"。其实,大模型的记忆有四种不同的机制,每种来源不同、作用不同:

第一种:预训练记忆(参数记忆)

这是大模型最"深层"的记忆。GPT-4在训练时看过互联网上海量的文本,这些知识被压缩进了数十亿个神经元权重里。它"知道"水是湿的、合同有法律效力、Python用缩进控制结构——这些不需要任何提示,是天生就有的。

但这种记忆有一个关键缺陷:一旦训练完成,就固定了。 今天发生的新闻、你公司内部的数据,它一概不知。

第二种:上下文记忆(短期记忆)

这就是你和大模型对话时的"当前窗口"。把历史对话全部塞进prompt,模型就能"记住"前面说了什么。这属于提示工程的范畴。

局限也很明显:上下文窗口有限,长对话后早期内容会被截断或遗忘。用人类来比喻,这就是"工作记忆"——容量有限、不持久。

第三种:微调记忆(长期参数记忆)

在更具体的数据集上进一步训练模型,让它"专精"某个领域。比如把大量医疗病历喂给模型做微调,它在医疗问答上的表现就会显著提升。

这种方式成本高、周期长,适合垂直场景的深度定制,不适合频繁更新知识。

第四种:外部记忆系统(向量数据库)

这是给大模型加"外挂第二大脑"的方式,也是RAG(检索增强生成)技术的核心。

把大量文档、知识库、历史记录向量化存储,每次对话时先检索相关内容塞进上下文,模型就能"参考"远超上下文窗口的外部知识。

想象一下:一个法律AI Agent,它的"脑子"里不仅有预训练的法律常识,还能实时检索最新的法律法规数据库。这就是外部记忆的价值。

四种记忆的关系:

记忆类型 容量 更新速度 持久性
预训练 极大 极慢(重训) 永久
上下文 有限 实时 会话内
微调 较大 慢(重训) 永久
外部系统 无限 实时 持久

真正强大的Agent,需要把这四种记忆协同使用。


3. 工具调用(Tool Use):从"大脑"到"手脚"

这是Agent与ChatGPT最本质的差别。

ChatGPT只有一颗大脑,它能说、能想,但它的世界终结于对话框。没有工具调用能力的AI,再聪明也只能"想",不能"做"。

工具调用让Agent有了"手脚":

  • 搜索工具:知识库不够用?去搜索引擎找最新信息。
  • 计算器:让模型算复杂数学,不靠"猜"而靠精确计算。
  • 代码执行器:让模型写完代码直接跑,看真实输出。
  • 日历、邮件、数据库API……几乎任何外部系统都可以封装成工具。

举个实际例子。假设Agent接到任务:"帮我找到今天北京最便宜的一束玫瑰花,并估算一下100元预算能买几束。"

没有工具的模型:凭训练数据里的"记忆"给出一个可能严重过时的价格。

有工具的Agent的执行路径:

  1. 调用搜索工具,查询"北京玫瑰花今日价格"
  2. 收到搜索结果,提取价格数据
  3. 调用计算器,计算100÷单价
  4. 综合信息,输出最终答案

这两者的差距,不是"准不准"的问题,而是"能不能做到"的问题。

工具调用的挑战在于:

  • Agent需要知道何时用工具(不是每个问题都要调工具)
  • Agent需要知道用哪个工具(工具选择策略)
  • Agent需要协调多个工具的使用顺序(复杂任务下的工具编排)

这些问题,恰好是ReAct框架要解决的。


4. ReAct框架:把三件事串起来的"推理引擎"

ReAct(Reasoning + Acting)是2022年由Shunyu Yao等人在论文中提出的框架,发表于ICLR 2023。

它的核心思想极其简洁:把推理和行动交织在一起,形成循环。

ReAct的循环只有三步:

思考(Thought)→ 行动(Action)→ 观察(Observation)→ 思考……

每一轮:

  1. 思考:评估当前情况,决定下一步要做什么
  2. 行动:执行决定(可能是调用工具,可能是直接输出)
  3. 观察:收集行动的反馈结果

然后把"观察"的结果输入下一轮"思考",循环往复,直到任务完成。

这个循环有多重要?

来看一段真实的Agent执行过程(书中原文):

问题:当前Agent最新研究进展是什么?

思考:我需要搜索关于Agent的最新研究
行动:Search("Agent最新研究进展")
观察:[搜索结果:多篇论文摘要...]

思考:搜索结果提到了AI对齐,我需要更多信息
行动:Search("Agent AI alignment 2024")
观察:[更多搜索结果...]

思考:现在我掌握了足够信息
最终答案:多Agent强化学习、AI对齐等领域已取得重大进展...

注意:相同的问题,Agent两次运行给出了不同的搜索策略和不同的答案。 这不是bug,这是Agent在动态地"思考"如何解决问题。它不是硬编码的流程,而是实时推理的产物。

这正是ReAct框架的精髓:操作的序列不是硬编码在代码里的,而是由大模型实时决定的。 这是AI自主决定应用程序逻辑的新编程范式。


三、四个要素怎么协同工作?

现在把四件事放在一起看:

用户输入任务
    ↓
[规划] 大模型分析任务,制定执行计划
    ↓
[记忆] 检索相关历史信息和外部知识
    ↓
[ReAct循环]
  思考 → 行动(调用工具) → 观察结果 → 思考 → ...
    ↓
任务完成,输出结果
    ↑
[记忆] 将本次交互结果存入记忆系统

用书中KwaiAgents项目的架构来描述:

  1. 接收任务:输入查询+背景知识+人设指令
  2. 记忆更新:确认记忆系统是最新状态
  3. 记忆检索:从记忆库中取出相关信息
  4. 任务规划:大模型生成包含工具调用计划的执行序列
  5. 工具执行:按计划调用工具,观察结果
  6. 循环判断:任务完成则输出,否则继续规划
  7. 总结输出:整合所有信息,生成最终答案

这七步,就是一个完整的Agent工作循环。


四、除了ReAct,还有哪些认知框架?

ReAct是最主流的,但不是唯一的。书中还介绍了几个值得了解的框架:

函数调用(Function Calling):OpenAI提出的方式。大模型作为"调度中心",直接调用预定义的函数。比ReAct更结构化,适合与现有系统深度集成。

计划与执行(Plan-and-Execute):先完整规划所有步骤,再统一执行。ReAct是边想边做,这个是先想好再做。适合确定性高、步骤清晰的复杂任务。

自问自答(Self-Ask):让大模型对自己的问题提出追问,层层深入。适合需要多角度分析的复杂查询。

批判修正(Critique-Revise):也叫Self-Reflection。模型先输出,再批判自己的输出,再修正,循环直到满意。适合创作、分析类任务。

思维链 / 思维树(CoT / ToT):前文已讲,线性推理 vs. 树状搜索,复杂度越高越倾向用ToT。

选哪种框架,取决于任务类型和环境确定性。没有最好的框架,只有最合适的框架。


五、用50行代码跑起来一个真正的Agent

理论说够了,来看代码。

书中用LangChain + OpenAI + SerpApi,实现了一个会自主搜索并总结"Agent最新研究进展"的Agent。核心逻辑不超过50行:

from langchain import hub
from langchain_openai import OpenAI
from langchain_community.utilities import SerpAPIWrapper
from langchain.agents.tools import Tool
from langchain.agents import create_react_agent, AgentExecutor

# 1. 获取ReAct提示模板(来自LangChain Hub社区)
prompt = hub.pull("hwchase17/react")

# 2. 创建大模型实例(推理引擎)
llm = OpenAI()

# 3. 定义工具(Agent的手脚)
search = SerpAPIWrapper()
tools = [Tool(
    name="Search",
    func=search.run,
    description="当大模型没有相关知识时,用于搜索知识"
)]

# 4. 构建ReAct Agent
agent = create_react_agent(llm, tools, prompt)

# 5. 创建执行器并运行
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({"input": "当前Agent最新研究进展是什么?"})

五步,每一步对应一个要素:

  • hub.pull:加载ReAct框架的提示(规划指南)
  • OpenAI():推理引擎(大脑)
  • Tool(Search...):工具(手脚)
  • create_react_agent:把三者组合成一个Agent
  • AgentExecutor.invoke:触发ReAct循环,自主完成任务

最关键的是这个ReAct提示模板。 它的内容大致是:

尽你所能回答以下问题。你可以使用以下工具:{工具列表}

请按格式回答:
问题:{输入问题}
思考:你应该思考接下来怎么做
行动:从工具列表中选一个
行动输入:工具的输入参数
观察:工具的执行结果
...(可重复N次)
思考:我现在知道答案了
最终答案:最终答案

正是这个提示,让大模型从"生成文本的模型"变成了"遵循ReAct框架思考并行动的Agent"。 提示工程的价值,在这里体现得淋漓尽致。


六、写在最后:这四件事为什么如此重要

我们来把整篇文章做一个收束。

Agent的四大要素——规划、记忆、工具、执行——本质上对应了人类完成复杂任务的四种能力:

  • 规划 = 思维能力:把大问题拆成小问题
  • 记忆 = 知识积累:知道的越多,决策越准
  • 工具 = 行动能力:不只是想,还能做
  • ReAct循环 = 反馈适应:做完看结果,不对就调整

这四者缺一不可。一个没有规划的Agent,面对复杂任务只会乱撞;一个没有记忆的Agent,每次都从零开始;一个没有工具的Agent,只能说不能做;一个没有执行反馈的Agent,永远不知道自己做对了没有。

更重要的是:这个架构不是一成不变的。 随着大模型能力提升、工具生态完善,Agent的边界会持续扩展。从今天的"会搜索会调API",到未来的"会操控机器人、会管理企业流程",走的是同一条路。

理解这个底层架构,你才能判断一个"Agent产品"到底做到了几层,哪里是真正的壁垒,哪里还有空白。

那才是这件事真正有意思的地方。


posted @ 2026-06-15 09:39  Ruby_Lu  阅读(125)  评论(0)    收藏  举报