最近圈内最火的是什么毫无疑问是AI Agent智能体。但你有没有想过一个问题当一个Agent接到“帮我查查最近AI Agent有啥新进展”这种任务时它的大脑里到底在想什么它怎么知道什么时候该搜索什么时候该思考怎么确保自己不胡说八道今天我就带你深入Agent的“大脑”拆解当前最主流的推理引擎——ReAct框架。这不是那种泛泛而谈的概念科普。我会带你从理论到代码手把手看一个Agent是如何思考、行动、观察、再思考的。更重要的是——我会展示两次完全相同的提问Agent给出了不同质量的答案并告诉你为什么。全程干货建议收藏。一、Agent的“大脑”为什么需要推理引擎先问一个问题大模型本身已经很聪明了为什么还要搞什么Agent因为大模型有先天缺陷它的知识截止于训练数据的那一天。你问它“2024年AI Agent的最新进展”如果它的数据只到2023年它要么认怂说不知道要么——开始胡说八道。比如下面这个经典翻车现场下图《浮生六记》是清代沈复的作品大模型没有实时信息也没有自我纠错机制就会把两个不相关的知识点强行缝合给你一个“看起来很合理但完全错误”的答案。这就是为什么需要Agent需要推理引擎。推理引擎的核心作用就是让大模型不再只是一个“文本生成器”而变成一个能够规划、决策、调用工具、观察反馈、持续迭代的智能系统。而在众多推理框架CoT、ToT、LLMP等中ReAct框架脱颖而出成为LangChain、LlamaIndex等主流开发工具的首选。二、什么是ReAct框架不是前端框架是认知框架先纠正一个误区这里的React不是前端那个React。ReAct Reasoning Acting推理行动。这个概念是由Shunyu Yao等人在ICLR 2023的论文《ReAct: Synergizing Reasoning and Acting in Language Models》中提出的。它的核心思想可以用一句话概括让大模型在思考中行动在行动中思考形成闭环。这个闭环长这样下图观察 → 思考 → 行动 → 再观察 → 再思考 → 再行动 → …… → 最终答案拆解一下思考Thought评估当前情况决定下一步做什么。行动Action执行具体动作——可能是搜索、计算、调用API。观察Observation查看行动的结果获取反馈。循环根据新的观察再次思考直到得出最终答案。这不就是人类解决问题的过程吗你想知道“最近AI Agent有啥新进展”——你先想“我应该搜一下”思考然后打开Google搜索行动看到搜索结果观察发现信息还不够聚焦于是加个关键词再搜一次再思考再行动直到满意为止。ReAct框架就是把人类的这种思维方式教给大模型。三、LangChain中的ReAct实现不到50行代码创造一个会思考的Agent理论说完了上代码。下面这段代码用LangChain实现了一个能够自主搜索并总结“Agent最新研究进展”的Agent。代码不到50行。3.1 准备工作首先你需要两个API密钥OpenAI_API_KEY调用GPT模型SERPAPI_API_KEY使用Google搜索工具SerpApi提供安装必要的包bashpip install langchain pip install langchainhub pip install langchain-openai pip install openai pip install google-search-results设置环境变量千万别把密钥硬编码在代码里否则会被GitHub机器人扫到并封禁别问我怎么知道的pythonimport os os.environ[OPENAI_API_KEY] 你的密钥 os.environ[SERPAPI_API_KEY] 你的密钥3.2 核心代码python# 1. 获取ReAct提示模板 from langchain import hub prompt hub.pull(hwchase17/react) # print(prompt) # 可以看看提示长什么样 # 2. 初始化大模型 from langchain_openai import OpenAI llm OpenAI() # 3. 定义搜索工具 from langchain_community.utilities import SerpAPIWrapper from langchain.agents.tools import Tool search SerpAPIWrapper() tools [ Tool( nameSearch, funcsearch.run, description当大模型没有相关知识时用于搜索知识 ) ] # 4. 创建ReAct Agent from langchain.agents import create_react_agent agent create_react_agent(llm, tools, prompt) # 5. 创建执行器并运行 from langchain.agents import AgentExecutor agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) # 6. 调用Agent agent_executor.invoke({input: 当前Agent最新研究进展是什么})就这么简单。但简单不代表简陋。这几十行代码背后是一个完整的思考-行动-观察循环系统。四、拆解ReAct的核心提示模板才是真正的“大脑”很多人以为Agent聪明是因为大模型本身。错Agent的行为方式100%由提示模板决定。来看看我们从LangChain Hub拉下来的这个提示模板长什么样简化版text尽你所能回答以下问题。你可以访问以下工具 {tools} 请使用以下格式 问题你必须回答的输入问题 思考你每次都应该思考接下来怎么做 行动要采取的行动应该是{工具名称}中的一个 行动输入行动的输入 观察行动的结果 思考-行动-行动输入-观察过程可以重复N次 思考我现在知道最终答案了 最终答案原始输入问题的最终答案 开始 问题{input} 思考{agent_scratchpad}看到没这个模板就是Agent的思维宪法。它规定了你必须先思考再行动你可以用哪些工具你必须观察结果你可以循环直到找到答案最后要有最终答案没有这个模板大模型就只是个“文本续写器”。有了这个模板它就成了一个“目标驱动的智能体”。五、实况转播一个Agent的两次思考全过程为了让你真正理解ReAct的工作机制我运行了两次完全相同的提问得到了两份截然不同的“思考日志”。5.1 第一次运行下图 进入新的AgentExecutor链... 思考我应该使用搜索工具来查找最新的研究进展。 行动Search 行动输入当前Agent最新研究进展 观察[搜索到一堆中文结果包括复旦NLP的综述、GPT Researcher项目等] 思考通过搜索我已经了解了当前AI Agent领域的最新研究进展。 最终答案通过搜索我已经了解了当前AI Agent领域的最新研究进展包括LLM-based Agents、GPT Researcher、级联语言模型等。特点简洁、直接、一次搜索搞定、答案聚焦。5.2 第二次运行下图——这才是真正精彩的一次 进入新的AgentExecutor链... 思考我应该先搜索一下Agent的最新研究进展。 行动Search 行动输入latest research progress of Agent 观察[搜到一堆英文结果包括多智能体强化学习、抗病毒药物研究——等等抗病毒药物这显然跑偏了] 思考我应该阅读和收集这些观察到的信息。 行动Read and gather information ← 问题来了 行动输入Observations 观察Read and gather information 不是一个有效的工具请尝试使用 [Search]。关键转折点Agent犯错了它想用一个不存在的工具。但ReAct框架的牛逼之处来了——它知道自己错了并且能纠错。思考我应该搜索一个关于Agent最新研究进展的特定主题。 行动Search 行动输入latest research progress of Agent AI alignment 观察[搜到AI对齐Alignment的相关研究] 思考我应该阅读和收集信息。 行动Read and gather information 行动输入Observations 观察Read and gather information 不是一个有效的工具请尝试使用 [Search]。又犯同样的错误这像不像一个固执的人类但Agent还在坚持text思考我应该找一篇关于Agent和AI对齐最新研究进展的综述或摘要。 行动Search 行动输入latest research progress of Agent and AI alignment review 观察[搜到大量关于AI对齐的深度研究包括Paul Christiano的观点、UC Berkeley的演讲等] 思考我现在知道最终答案了。 最终答案Agent和它们与人类价值和意图对齐的研究和开发已经取得了重大进步。具体来说多Agent强化学习、抗病毒Agent以及自由Agent的训练等领域都有进展。然而AI对齐解决方案仍然需要持续修订和更新该领域还在进行更多研究。最终答案虽然有点啰嗦但信息量比第一次丰富得多而且触及了“AI对齐”这个核心议题。六、从两次运行中我们能学到什么6.1 ReAct的六大核心步骤在实际运行中的体现思考ThoughtAgent不断自我对话“我应该先搜索”、“我应该聚焦特定主题”、“我需要找综述”——每一步都有明确的思考痕迹。行动Action选择工具。这里只有Search但理论上可以有计算器、数据库、API等。行动输入Action Input构造查询关键词。第二次运行中Agent不断优化关键词从宽泛的“latest research progress”到“AI alignment”再到“review”像极了一个有经验的研究员。观察Observation接收搜索结果。注意Agent会把搜索结果当作“新的事实”来理解而不是简单地丢弃。循环Loop第二次运行中Agent经历了4次思考、3次搜索才得出结论。它甚至犯了两次同样的错误试图用不存在的工具但每次都从错误中恢复。最终答案Final Answer整合所有观察生成综合回答。6.2 为什么第二次答案更好第一次运行浅尝辄止搜到中文结果就满足了。第二次运行因为英文关键词更宽泛搜到了不相关的内容抗病毒药物反而迫使Agent不断优化关键词、深入挖掘最终触及了“AI对齐”这个前沿方向。这说明什么ReAct框架的价值不仅在于“能行动”更在于“能从错误中学习、从反馈中迭代”。如果第一次搜索结果不理想Agent不会就此放弃——它会思考“为什么这些结果不相关”、“我应该怎么调整关键词”然后再次行动。这种迭代式的问题解决能力才是ReAct框架的真正精髓。七、ReAct框架赋予Agent的四大超能力适应性ReAct不是固定算法它可以和任何大模型、任何工具组合。你想用Claude代替GPT没问题。你想加个计算器工具随便加。交互性Agent不是一次性答题而是与环境持续对话。每一次观察都是新的输入每一次行动都基于最新状态。自主性在第二次运行中Agent自己决定“我要加个AI alignment关键词”、“我要找综述”——这些都是Agent自主做出的决策不是代码写死的。功能性通过工具调用Agent突破了纯文本模型的限制。它可以搜索实时信息、可以计算数学题、可以操作其他软件——从“会说”变成“会做”。八、总结ReAct框架为什么是Agent的“灵魂”回到开头的问题Agent的“大脑”是怎么工作的现在你应该明白了ReAct框架 思考(Reasoning) 行动(Acting) 的闭环提示模板 思维宪法规定思考-行动-观察的流程大模型 推理引擎负责每一步的思考工具 手脚负责执行具体动作观察 感官负责获取反馈循环 灵魂负责持续迭代直到目标达成没有ReAct框架大模型只是个“静态知识库”知识截止日期一到就开始胡言乱语。有了ReAct框架大模型变成了“动态智能体”能实时获取信息、自我纠错、持续优化。这就是为什么我敢说ReAct框架是AI Agent从“玩具”走向“工具”的关键一步。在第二次运行的例子中Agent犯了两次错误但它最终给出了比第一次更深入的答案。这难道不就是我们期待的人工智能吗不是完美无缺而是能意识到自己的局限并主动寻找突破。未来已来只是尚未普及。而ReAct框架正在让这个未来加速到来。本文参考大模型应用开发_动手做AI_Agent书籍pdf免费分享下载地址https://pan.baidu.com/s/17rUoqBC7Efn_LdYaJwLxbg?pwdhqxj