ReAct大模型“边想边干”攻略:解锁AI智能体新范式,附代码实操!
一句话总结ReAct 把人类想一想再动手的思维习惯教给了大语言模型让模型在每一步行动前先说清楚为什么这么做行动后再根据反馈调整下一步——这个看似朴素的思路却成了后来整个 AI Agent 领域的奠基范式。 论文信息标题ReAct: Synergizing Reasoning and Acting in Language Models作者Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao机构普林斯顿大学、Google Research发表ICLR 2023论文链接arxiv.org/abs/2210.03629项目主页react-lm.github.io 这篇论文到底在解决什么问题2022 年底大语言模型LLM已经展现出惊人的文本生成能力但有两个痛点一直卡在那里痛点一只会想不会干。像思维链Chain-of-Thought, CoT这类方法让模型把推理过程一步一步写出来逻辑看上去很漂亮但模型推理的全部原料只有它训练时见过的东西。一旦碰到需要查实时信息、调用计算器、翻数据库的场景CoT就只能硬编——编出来的东西叫幻觉。痛点二只会干不会想。另一批研究让模型直接输出行动指令去操作外部环境比如控制机器人、在网页上点击但模型不解释自己在想什么碰到稍微复杂一点的任务就抓瞎——它不知道为什么要做这一步也不知道做完之后下一步该怎么调整。这就好比一个实习生光让他坐在那想方案他可能写出一份逻辑自洽但数据全是编的PPT光让他执行指令干活碰到计划外的情况他就卡住了。ReAct 的核心思路其实特别直觉——让模型边想边干干完看反馈再接着想。 核心方法Thought → Action → Observation 的闭环ReAct 这个名字是Reasoning Acting 的缩写核心机制是一个不断循环的三步流程图1ReAct 与其他方法的对比示例图1上半部分展示了知识问答任务中四种方法的对比Standard、CoT、Act-only、ReAct下半部分展示了文本游戏 ALFWorld 中 Act-only 与 ReAct 的对比。可以看到ReAct 在每一步行动前都有一段绿色的Thought推理这让它能持续修正方向。Thought推理模型的内心独白模型先分析当前状况我现在知道了什么还缺什么信息下一步该做什么为什么要做这一步这不是摆设——推理轨迹是 ReAct 可解释性的关键。传统方法就像一个沉默的员工做完活交结果你不知道他怎么想的ReAct 则是每一步都在自言自语你可以随时检查他的逻辑是否合理。Action行动调用外部工具推理完之后模型输出一个标准化的行动指令比如Search[爱因斯坦 诺贝尔奖]或Lookup[获奖原因]。这些行动会被解析器识别并路由到对应的外部工具去执行。Observation观察环境的客观反馈工具执行完毕后把结果原样返回给模型。比如搜索引擎返回了一段维基百科的内容或者游戏环境返回了你在厨房里看到一个柜台。这些客观信息会被追加到模型的上下文里成为下一轮推理的新证据。然后循环继续模型拿着新拿到的信息重新推理决定下一步行动……直到任务完成输出Finish[答案]或者达到最大步数限制。用一个生活场景打比方你想订一张今晚从深圳飞海口最便宜的机票。Thought“我需要查今晚从深圳到海口的航班先看看有哪些可选”Action打开机票 App 搜索ObservationApp 返回了三个航班及票价Thought“三个航班里最便宜的是 HU7089480 块下一步直接订票”Action点击预订 HU7089Observation预订成功Finish搞定这就是 ReAct 的全部核心——没有什么复杂的数学公式没有需要训练的新模块就是用 Prompt 告诉模型你要按这个套路来。️ 技术架构三层模块化设计虽然 ReAct 的思想很朴素但要让它稳定跑起来架构设计上还是有讲究的。整体可以拆成三层第一层核心逻辑层——LLM Prompt这一层就是大模型本身加上精心设计的提示词。Prompt 里包含几个要素角色定义告诉模型你是一个 ReAct 智能体需要交替生成 Thought 和 ActionFew-shot 示例给 1-5 个完整的任务 → Thought → Action → Observation → … → Finish示例让模型学会格式和逻辑模式工具描述列出所有可用的工具及其参数格式格式约束明确要求输出必须严格遵循 Thought/Action 的交替格式一个有意思的点是ReAct 不需要对模型做任何微调。它完全靠 in-context learning——就是在 prompt 里放几个示例模型就能学会这个范式。这大幅降低了落地成本。第二层执行循环层——调度中枢这一层负责把推理、行动、观察三个环节串起来核心是三个组件上下文管理器存储历史 TAO 轨迹。当轨迹太长快要撑爆上下文窗口时采用保留最近 3 轮完整轨迹 早期轨迹摘要的策略裁剪。行动解析器解析模型输出的 Action 文本校验格式是否合规、参数是否完整然后路由到对应工具。如果解析失败生成错误提示作为 Observation 返回给模型。循环调度器控制迭代节奏判断终止条件正常完成、超时、连续失败熔断。第三层外部交互层——工具集 环境这一层是 ReAct 与外部世界的接口。工具的设计遵循统一接口每个工具实现一个run(params)方法接收标准化参数返回字符串结果。论文中根据不同任务配置了不同的工具HotpotQA / FeverSearch[query]搜索维基百科、Lookup[keyword]在搜索结果中定位关键词、Finish[answer]ALFWorldgo to [location]、take [object]、put [object] in/on [location]等游戏操作WebShopsearch[query]、click[element]等网页交互操作模块化是这里最大的优势想从问答任务切换到机器人控制核心逻辑层和执行循环层不用动只需要替换工具集就行。 实验结果数据说话论文在四个差异很大的任务上做了实验覆盖了知识推理和交互决策两大场景。知识密集型任务HotpotQA Fever这两个是经典的 NLP benchmarkHotpotQA 做多跳问答需要综合多条信息才能回答的问题Fever 做事实核查判断一个陈述是支持、“反驳还是信息不足”。模型统一使用PaLM-540B工具是简单的维基百科 API。结果如下方法HotpotQA (EM)Fever (Acc)Standard直接回答28.757.1CoT思维链29.456.3CoT-SC思维链自洽性33.460.4Act只行动不推理25.758.9ReAct27.460.9CoT-SC → ReAct先CoT再ReAct兜底34.264.6ReAct → CoT-SC先ReAct再CoT兜底35.162.0有监督 SOTA67.589.5几个值得注意的发现ReAct 单独用并不总是最强的。在 HotpotQA 上ReAct27.4甚至不如 CoT-SC33.4。这是因为 ReAct 对搜索结果质量很敏感——如果搜出来的内容没啥用模型容易卡住或者走偏。但 ReAct 的强项在 Fever 上体现得更明显它的 60.9% 打败了 CoT 的 56.3%因为事实核查特别需要外部证据锚定。ReAct CoT-SC 组合才是最优解。论文提出了一个巧妙的协同策略先用 CoT-SC 跑如果多次采样的答案不一致说明模型没把握就切换到 ReAct 去查外部信息或者反过来ReAct 跑不出结果时用 CoT 兜底。这种组合在两个数据集上都拿到了最高分。图2ReAct与CoT-SC协同效果图2左HotpotQA 上随着 CoT-SC 采样次数增加的表现。橙色线CoT-SC → ReAct和蓝色线ReAct → CoT-SC始终在纯 CoT-SC绿色线之上说明两种能力互补。图3Fever数据集上的协同效果图3Fever 上的类似趋势——ReAct 提供了一个稳定的下限保障红色虚线CoT-SC 随采样增加逐渐追上来两者组合效果最佳。错误分析幻觉 vs 搜索失败论文做了很扎实的人工错误分析随机抽取样本逐条检查成功和失败的原因类别ReActCoT成功案例中推理和事实都正确94%86%推理或事实有幻觉6%14%失败案例中推理错误47%16%搜索结果无用23%-幻觉0%56%标签歧义29%28%这张表有两个数字特别亮眼ReAct 失败案例中的幻觉率是 0%CoT 是 56%。这就是外部工具锚定的威力——ReAct 要么拿到正确信息做出正确判断要么因为搜索不到信息而失败但它不会编。CoT 则相反超过一半的错误都是在编造事实。ReAct 的主要失败原因是推理错误47%和搜索质量差23%。这说明 ReAct 的瓶颈不在会不会编而在搜不搜得到和推理链条会不会断。后者在长链路任务中尤其明显——模型容易陷入重复搜索的死循环。交互式决策任务ALFWorld WebShop这两个任务更接近真实世界的 Agent 场景ALFWorld是一个文本版的家庭机器人模拟环境——你需要在房间里找到某个物品执行加热、清洁等操作然后放到指定位置。包含 6 类子任务Pick、Clean、Heat、Cool、Look、Pick 2。WebShop是一个模拟电商环境——给你一个购物需求描述你需要在网页上搜索、筛选、点击来买到符合要求的商品。方法ALFWorld成功率WebShop成功率Act只行动不推理45%30.1%ReAct最优 prompt71%40.0%BUTLER强化学习37%-IL RL模仿学习强化学习-28.7%人类专家-59.6%在 ALFWorld 上ReAct 71% 的成功率比强化学习方法 BUTLER 的 37% 高了整整 34 个百分点。而且 BUTLER 是用 到 量级的训练数据训练出来的ReAct 只用了 1-2 个 few-shot 示例。为什么差距这么大看下面这个对比就明白了图4ALFWorld中人类编辑推理的效果图4ALFWorld 中 Act-only左vs ReAct人类编辑推理右的对比。Act-only 模型在执行过程中遇到错误后无法恢复一路标红而加入推理后模型能及时发现问题并调整策略绿色 Thought 标注的推理步骤指引了正确方向。Act-only 模型在 ALFWorld 里的典型失败模式是死磕——打开了错误的抽屉之后它不会想这个抽屉没有换个地方找而是一直重复操作。ReAct 加入 Thought 后模型可以在每一步反思上一步没找到下一步应该去别的地方看看。在 WebShop 上ReAct 40% 的成功率也大幅领先模仿学习强化学习的 28.7%但距离人类专家的 59.6% 还有不小差距——这说明 ReAct 虽然是一个好范式但在需要深度理解产品属性和用户意图的场景下纯 prompt 方法还不够。微调实验小模型也能行图5不同模型规模下各方法的表现图5HotpotQA 上不同模型规模8B / 62B / 540B在 Prompt左和 Finetune右设置下的表现。右图显示在微调场景下ReAct 格式让 62B 的小模型超越了 540B 大模型的 Prompt 表现。这张图传达了一个很重要的信号ReAct 不只是大模型的专利。当你对小模型做微调时用 ReAct 格式的数据训练效果最好——62B 模型微调后在 HotpotQA 上跑到了 ~33 分超过了 540B 模型 prompt 的 ~29 分。这意味着 ReAct 可以作为一种数据格式来蒸馏大模型的推理能力到小模型中。 深入分析ReAct 做对了什么没做好什么做对的事情1. 把可解释性从口号变成了工程手段。在 ReAct 之前大模型的决策就是个黑箱——你给它一个问题它给你一个答案中间发生了什么完全不知道。ReAct 强制模型在每一步行动前自言自语这不仅方便调试还让人类可以在关键节点介入修正。论文的人工研究证实了这一点在 ReAct 的成功案例中94% 的推理轨迹和事实都是正确的而 CoT 只有 86%。2. 用最低的成本实现了推理和行动的统一。不需要训练新模型、不需要设计新架构、不需要标注大量数据——只需要在 prompt 里放几个精心设计的示例。这种四两拨千斤的方法论让 ReAct 的落地门槛极低也是它后来被 LangChain、AutoGPT 等框架广泛采用的重要原因。3. 模块化设计让场景迁移成本极低。从问答切到游戏控制只需要换工具集和 few-shot 示例。核心的 TAO 循环逻辑完全复用。没做好的地方1. 上下文窗口是硬瓶颈。每一轮 TAO 循环都在往上下文里追加内容。论文中的任务基本上 3-6 步就能搞定但如果任务需要 10 步以上呢上下文裁剪虽然能缓解但保留近期 早期摘要的策略必然会丢失信息。2023-2024 年长上下文模型Gemini 1.5 Pro 的 100 万 token 窗口在一定程度上缓解了这个问题但信息在长上下文中的迷失lost in the middle又是另一个挑战。2. 没有行动效果的量化反馈机制。模型选择调用哪个工具、用什么参数完全靠自己想——没有一个 reward 信号告诉它这次搜索质量很高或者你已经搜了三次同样的东西了。错误分析也印证了这一点ReAct 47% 的失败来自推理错误其中相当一部分是重复无效行动。3. 搜索质量严重依赖外部工具。论文在 HotpotQA 上 ReAct 跑不过 CoT-SC核心原因就是维基百科 API 经常返回不相关的结果。模型本身缺少这个搜索结果有没有用的判断能力——或者说它在 prompt 中没有被充分引导去做这种判断。 ReAct 在 Agent 技术栈中的位置从 2023 年到 2026 年ReAct 已经成了 AI Agent 领域绕不开的基础范式。但它不是终点而是起点。看看 ReAct 启发了什么方向代表工作核心改进工具使用标准化Toolformer, Gorilla自动发现和调用 API多智能体协作AutoGen, CrewAI多个 ReAct Agent 协同完成复杂任务长程记忆MemGPT, Generative Agents引入外部记忆模块突破上下文限制强化学习融合WebAgent, AgentTuning用 RL 优化行动选择策略规划增强Plan-and-Solve, Tree of Thoughts在 ReAct 之上增加全局规划能力当下主流的 Agent 框架——LangChain 的AgentExecutor、OpenAI 的 Function Calling、Anthropic 的 Tool Use——本质上都是 ReAct 的工程化实现。区别只在于格式标准化从 ReAct 的自由文本Action: Search[query]演化到了结构化的 JSON 函数调用工具发现从手动指定工具列表到模型自动根据任务选择工具错误恢复从简单重试到复杂的 fallback 策略可以说ReAct 定义了推理型 Agent这个品类。 我的一些思考ReAct 为什么能成为范式不是因为它的实验数据多么碾压——实际上在 HotpotQA 上它单独还打不过 CoT-SC。真正让它成为范式的是简洁性和可组合性TAO 循环是一个足够简单的抽象简单到任何团队都能在一天之内把它跑起来又足够灵活到可以不断往上叠加新能力。ReAct 最需要补的短板是什么我觉得是行动质量的反馈闭环。当前 ReAct 的行动选择完全依赖 LLM 的直觉缺乏量化的好坏判断。如果能引入一个轻量级的 reward model——不需要多复杂哪怕只是这次搜索结果的相关性打几分——就能大幅减少无效行动降低执行成本。2024-2025 年 Agent Tuning 方向的工作已经在尝试用 RL 优化 Agent 的行动策略效果很明显。对工程落地的启示如果你正在构建一个 AI Agent 系统ReAct 教给我们的最重要的一课不是要用 TAO 循环而是显式推理轨迹的价值远大于你的想象。它不仅让系统可调试、可解释还能作为数据飞轮的起点——你可以从推理轨迹中发现模型的短板定向优化 prompt 或微调数据。AI行业迎来前所未有的爆发式增长从DeepSeek百万年薪招聘AI研究员到百度、阿里、腾讯等大厂疯狂布局AI Agent再到国家政策大力扶持数字经济和AI人才培养所有信号都在告诉我们AI的黄金十年真的来了在行业火爆之下AI人才争夺战也日趋白热化其就业前景一片蓝海我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取人才缺口巨大人力资源社会保障部有关报告显示据测算当前****我国人工智能人才缺口超过500万****供求比例达1∶10。脉脉最新数据也显示AI新发岗位量较去年初暴增29倍超1000家AI企业释放7.2万岗位……单拿今年的秋招来说各互联网大厂释放出来的招聘信息中我们就能感受到AI浪潮比如百度90%的技术岗都与AI相关就业薪资超高在旺盛的市场需求下AI岗位不仅招聘量大薪资待遇更是“一骑绝尘”。企业为抢AI核心人才薪资给的非常慷慨过去一年懂AI的人才普遍涨薪40%脉脉高聘发布的《2025年度人才迁徙报告》显示在2025年1月-10月的高薪岗位Top20排行中AI相关岗位占了绝大多数并且平均薪资月薪都超过6w在去年的秋招中小红书给算法相关岗位的薪资为50k起字节开出228万元的超高年薪据《2025年秋季校园招聘白皮书》AI算法类平均年薪达36.9万遥遥领先其他行业总结来说当前人工智能岗位需求多薪资高前景好。在职场里选对赛道就能赢在起跑线。抓住AI风口轻松实现高薪就业但现实却是仍有很多同学不知道如何抓住AI机遇会遇到很多就业难题比如❌ 技术过时只会CRUD的开发者在AI浪潮中沦为“职场裸奔者”❌ 薪资停滞初级岗位内卷到白菜价传统开发3年经验薪资涨幅不足15%❌ 转型无门想学AI却找不到系统路径83%自学党中途放弃。他们的就业难题解决问题的关键在于不仅要选对赛道更要跟对老师我给大家准备了一份全套的《AI大模型零基础入门进阶学习资源包》包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。有需要的小伙伴可以V扫描下方二维码免费领取