Agent经典论文——ReAct框架
目录1、论文概述1.1 研究背景1.2 现有方法局限1.3 核心贡献1.4 摘要2、ReAct方法2.1 智能体与环境交互的一般设置2.2 动作空间扩展与生成流程2.3 独特特征3、实验3.1 知识密集型推理任务3.2 决策任务4、结论1、论文概述在开始分享这篇论文之前我们需要来搞清楚一个定义什么是Agent就从最近比较火的openclaw说起它就是一个 AgentAgent是一种能够感知环境进行自主理解进行决策和执行动作的智能体。Agent具备通过独立思考、调用工具逐步完成给定目标的能力主要分为感知决策和行动板块。如上图所示一个基于大模型的Agent系统可以拆分LLM(大模型)、记忆(Memory)、任务规划(Planning)以及工具使用(Tool)的集合。我们可以从右边这块Planing模块包括反思、自我批判、链式思考等这就是属于agent的决策板块。左边的tool板块就是当决策板块完成后会给大模型发出指令让它去选择调用存在的一些工具去完成任务比如计算任务代码检测任务联网搜索任务等等。现在我们再回到这篇论文本身这篇论文是23年的工作当时23年是个什么情况呢当时是gpt刚火大家更多的去研究怎么让模型更智能但是那个时候的模型要只会生成答案要么只会一步步推理那会很多模型都是自己在那算然后直接给结果你完全不知道他是怎么想的推理过程完全是黑箱而且有的时候为了推理出一个合理的答案它还会胡编乱造也就是大模型幻觉问题然后作者就想能不能让模型把他的思考过程说出来就像我们人解决问题一样先想第一步在想第二步边想边说这样不仅能减少幻觉还能让我们知道它是如何思考的。而且作者还想到光自己想是不够的也需要跟外面信息结合起来比如问一些实时新闻它的训练数据里面是没有的就需要去外面搜索那会很多模型都是基于静态数据进行训练的接触不到最新信息所以作者就将这两个事情结合起来一个就是reasioning推理思考一个就是acting就是行动比如说搜索调用工具什么的这就是ReAct。作者信息ShunyuYao*,1; Jeffrey Zhao,2,;Dian Yu2, Nan Du,2;IzhakShafran,2;Karthik Narasimhan,1; Yuan Cao,21、Department of Computer Science, Princeton University (普林斯顿大学计算机科学系)2、Google Research, Brain team项目地址https://react-lm.github.io/.以下将从研究背景、核心贡献、摘要、方法、实验等几个部分来进行介绍1.1 研究背景大语言模型LLM虽然在语言理解和交互式决策任务上展现出惊人的能力但长期以来推理Reasoning与行动Acting一直被作为两个独立的研究方向来探讨导致两者之间未能形成有效的协同机制。本文指出人类智慧的一个独特特征是能够将面向任务的行动与语言推理无缝结合。在现实场景中人类也会通过实际行动来支持推理例如在厨房做饭时打开食谱、打开冰箱检查食材从而回答“现在我能做什么菜”这样的问题。这种“行动”与“推理”之间的紧密协同作用使人类能够快速学习新任务并在之前未见过的环境或面对信息不确定的情况下做出稳健的决策或推理。尽管LLM已展现出强大的涌现能力但当前Agent主流方法在推理与行动的结合上存在明显缺陷。如纯推理范式和纯行动范式目前还没有研究系统性地探索如何以协同的方式将推理和行动结合起来用于通用任务求解。更重要的是尚未有工作验证这种协同是否能比单独的推理或单独的行动带来系统性的性能提升。1.2 现有方法局限1、纯推理范式Chain-of-Thought,CoT通过生成多步“思考步骤”来解决复杂语言问题。仅依赖模型内部知识不与外部环境交互CoT虽然在算术、常识和符号推理任务上展现了多步推理能力但本质上是静态的黑箱它完全依赖模型自身的预训练知识无法与外部真实世界进行交互因此无法实时更新信息或根据新观察进行反应式调整。在需要外部事实或最新知识的任务中这类方法极易产生事实幻觉即模型编造出不存在的信息同时错误会在推理链条中逐步传播导致最终结果不可靠。2、纯行动类范式Act-only即模型直接生成具体操作指令然后由控制器执行的方法。这类方法的主要优势是能与外部环境产生交互但它完全缺少高层抽象推理和工作记忆的支持无法对整体目标进行策略性规划也难以跟踪子目标的完成情况或处理突发异常。在长时序、稀疏奖励的环境中模型很容易迷失方向重复生成无效或幻觉式的行动。在问答任务中尽管能访问外部知识源但由于缺少推理指导它在合成最终答案时表现较弱。1.3 核心贡献论文的核心贡献在于提出了一种全新的提示范式——ReAct它首次将大语言模型中的推理与行动以交替生成的方式有机融合形成了一个通用、可扩展且易于实现的协同框架。这一框架从根本上突破了以往方法将推理和行动割裂处理的局限实现了两者之间的动态闭环协同。1、框架设计层面ReAct将智能体的动作空间进行了系统性扩展。传统方法中动作空间仅包含具体环境操作如搜索、点击、移动等。ReAct则将动作空间扩展为外部动作与语言思考的并集其中语言思考即模型生成的自由形式文本推理被视为一种不影响外部环境的特殊动作。这种思考动作的主要作用是更新当前的上下文信息帮助模型进行高层规划、跟踪进度、注入常识知识、提取关键观察信息、处理异常情况以及调整后续计划。•思考指导行动Reason-to-Act思考帮助模型制定高层计划、分解子目标、决定下一步最优操作•行动更新思考Act-to-Reason行动带来的外部观察被直接注入思考过程使推理不再是静态的内部过程而是动态接地到真实环境。2、实现机制层面ReAct在实现上极其简洁且易于复现完全依赖提示工程prompting而无需修改模型参数或进行大规模训练。使用两种思考密度模式在知识密集型任务中采用密集思考模式几乎每一步动作前都插入一个思考用于分解问题、提取信息、进行常识或算术推理、重新表述搜索查询以及合成最终答案。在交互决策任务中采用稀疏思考模式模型自主决定何时插入思考只在最关键的位置进行高层推理从而避免不必要的思考开销。1.4 摘要虽然大型语言模型LLMs在语言理解和交互式决策等任务中表现出色但它们在推理和行动方面的能力主要作为独立主题进行过研究。在本文中探索了使用LLMs以交错方式生成推理步骤和特定任务行动的方法从而实现两者之间的更大协同推理步骤帮助模型诱导、跟踪和更新行动计划以及处理异常而行动则允许它与外部来源如知识库或环境进行交互并收集更多信息。本文将名为ReAct的方法应用于一系列语言和决策任务并证明其在最先进基线之外的有效性以及改进的人类可解释性和可信度。具体来说在问答HotpotQA和事实验证Fever上ReAct通过与简单的维基百科API交互并生成比没有推理步骤的基线更具可解释性的任务解决克服了思维链推理中常见的幻觉和错误传播问题。此外在两个交互式决策基准ALFWorld和WebShop上ReAct分别比模仿学习和强化学习方法在绝对成功率上高出34%和10%而只需一个或两个上下文示例提示。首先我们来看第一个任务HotPotQA多跳问答问题示例除了Apple Remote还有哪种设备可以控制 Apple Remote 原本设计要交互的software1aStandard只给模型问题没有推理过程和外部查询。模型回答 iPod → 错误❌分析模型直接用内部知识猜测缺乏逻辑推理和事实验证。1bCoT / Reason Only模型生成详细推理轨迹Thought没有行动Action思考让我们一步一步思考。Apple Remote 最初被设计用来与 Apple TV 交互。Apple TV 可以由 iPhone、iPad 和 iPod Touch 控制。因此答案是 iPhone、iPad 和 iPod Touch错误❌分析内部推理轨迹丰富但信息是“静态的”无法动态查证事实 → 幻觉。1cAct-Only纯行动行动 1搜索[Apple Remote]观察 1Apple Remote 是一个控制器……行动 2搜索[Front Row]观察 2无法找到 [Front Row]。相似结果……行动 3搜索[Front Row (software)]观察 3Front Row 是一个已停产的媒体中心软件……行动 4完成[yes]❌分析模型虽然能与外部环境交互但缺乏综合推理能力导致于难以正确整合信息得到一个可靠的结果。1dReActReason Act思考 行动思考 1我需要搜索Apple Remote并找到它最初被设计用来交互的程序。行动 1搜索[Apple Remote]观察 1Apple Remote 是 Apple 于 2005 年 10 月推出的控制器……最初被设计用来控制 Front Row 媒体中心程序……思考 2Apple Remote 最初被设计用来控制Front Row媒体中心程序。我需要接下来搜索Front Row并找到其他什么设备可以控制它。行动 2搜索[Front Row]观察 2无法找到 [Front Row]。相似结果[‘Front Row Seat to Earth’、‘Front Row Motorsports’、‘Front Row (software)’、……]思考 3Front Row没有找到。我需要搜索Front Row (software)。行动 3搜索[Front Row (software)]观察 3Front Row是一个已停产的媒体中心软件……思考 4Front Row (software) 是由Apple Remote或键盘功能键控制的。因此答案是键盘功能键。行动 4完成[keyboard function keys] ✔接着我们来看第饿二个任务ALFWorld 文本家务游戏任务你站在房间中央。快速环顾四周你看到柜子 6、柜子 1、咖啡机 1、柜台 3、炉灶 1 和烤面包机 1。你的任务是把某个胡椒罐放到抽屉上。2aAct-Only纯行动行动 1去抽屉 1观察 1抽屉 1 是关闭的。行动 2打开抽屉 1观察 2你打开了抽屉 1。抽屉 1 已打开。在里面你看到海绵 2 和勺子 1。行动 3去水池1观察 3在水池1 上你看到海绵3、刮刀1 和勺子2。行动 4从水池1 拿起胡椒罐 1观察 4什么都没有发生。行动 5从水池 1 拿起胡椒罐 1观察 5什么都没有发生。❌分析模型没有推理无法理解“胡椒罐应该放到抽屉里”只机械执行动作。2bReActReason Act思考 行动行动 1思考[首先我需要找到一个胡椒罐……它更可能出现在柜子1-6、柜台1-3……]行动 2去柜子 1观察 2在柜子 1 上你看到花瓶 2。此处智能体依次去了柜子 1、柜子 2、柜子 3然后是柜台 1 和柜台 2行动 6去柜台 3观察 6在柜台 3 上你看到苹果 1、面包 1、……、胡椒罐 1 和花瓶 3。行动 7从柜台 3 拿起胡椒罐 1观察 7你从柜台 3 拿起了胡椒罐 1。行动 8思考[现在我找到了胡椒罐 1。接下来我需要把它放到抽屉 1 上。]行动 9去抽屉 1观察 9抽屉 1 是关闭的。行动 10打开抽屉 1观察 10你打开了抽屉 1……行动 11把胡椒罐 1 放到抽屉 1 上观察 11你把胡椒罐 1 放到了抽屉 1 上。✔分析思考步骤帮助模型规划动作顺序通过行动提供环境反馈模型根据反馈调整策略最终成功完成任务。通过我们对以上任务的解读和对比CoT思考结构好但事实不与外部交互自己在那跟自己玩 → 结果不可信。Act-Only能行动但缺少高层思考没办法去总结和纠错 → 盲目、重复的工作、最终失败。ReAct思考行动交替边想边做既能制定计划、实时纠错又能利用外部观察最终在两个完全不同类型的任务上都取得成功。2、ReAct方法2.1智能体与环境交互的一般设置2.2动作空间扩展与生成流程 ̂∪ℒ模型现在能做的所有事情动作空间被扩大了A原来的动作空间就是真正会影响环境的外部动作例如搜索 Wikipedia、去柜子 1、点击购买等。L新增的语言空间也就是模型可以输出的一段文字思考。总结以后模型既可以“动手”也可以“动嘴思考” ̂_∈ℒ在第 t 步模型输出的这个动作 at 是属于语言空间的。作者给它起了两个名字思考Thought或 推理轨迹reasoning trace。也就是说它不会真的去操作环境所以环境不会给它任何新的观察反馈不会产生 Obs。它只是在模型的“脑子里”想事情。_(1)也就是说思考的唯一作用就是更新模型的记忆。c_t 当前上下文模型到目前为止看到的所有历史记录包括之前的观察和动作。a_t刚刚生成的这段思考文字。c_{t1}新的上下文 旧上下文 这段思考。简单说思考就像在模型的笔记本上写了一条笔记下一步行动时模型就能带着这条笔记一起看从而决定下一步该做什么。2.3 独特特征A直观且易于设计设计ReAct提示非常简单标注者只需在自己采取的行动之上用语言写下他们的思考即可。本文没有使用任何特别的格式选择、思考设计或示例挑选。在后续章节中详细说明了每个任务的提示设计。B)通用且灵活由于思考空间的灵活性和思考-动作发生格式的灵活性ReAct可用于具有不同动作空间和推理需求的多样的任务包括但不限于问答、事实验证、网页导航等。C)高效且鲁棒ReAct在仅从1到6个上下文示例中学习的情况下对新任务实例展现出强大的泛化能力在不同领域持续超越仅进行推理或仅进行行动的基线方法。D)与人类对齐且可控ReAct提供了一个可解释的顺序决策和推理过程人类可以轻松检查推理和事实正确性。此外人类还可以通过编辑思考来实时控制或纠正智能体的行为如下图所示。ReAct在AlfWorld中的人机交互行为校正示例。(a)由于产生幻觉的思考行为17ReAct轨迹失败。(b)通过人类简单编辑两个思考行为17、23ReAct轨迹产生理想的推理轨迹和动作并成功。aAct 17、23、25 都是 Think思考ob16发现第一个钥匙链在抽屉4中。Act 17: “我找到第一个钥匙链需要拿它。我可以稍后在抽屉 4 找第二个钥匙链。”Act 23: “我把第一个钥匙链放入保险箱。接下来我需要找到第二个钥匙链我可以直接去抽屉 4。”Act 25: “我找到第二个钥匙链需要拿它。”Act 26: 拿第二个钥匙链 → 失败Nothing happens分析虽然模型有完整思考轨迹但存在规划错误第一个钥匙链放进保险箱后模型错误地认为第二个钥匙链仍在抽屉 4实际第二个钥匙链在其他家具如 dresser 1 → 拿取失败。也就是说ReAct在复杂任务中仍可能出现推理错误尤其是空间记忆或物品位置判断错误。b这里他直接将Act 17中的错误思考人为的删掉了那么当agent将第一个钥匙扣放好之后他就会去思考我需要找到第二个钥匙链它更可能出现在梳妆台1、垃圾桶1、保险箱1、边桌1、沙发1、架子1-12。而不是直接认定第二个钥匙链在抽屉 4中了。也就是说在人为的删除错误思考方向并在Thought 中加入对第二个钥匙链可能位置的推理考虑环境中所有可能位置而非只关注之前的抽屉结果模型成功完成任务避免了“Nothing happens”的失败。ReAct 不仅让模型“边想边做”还让人类能通过编辑思考像修改笔记一样实时纠正模型行为只需极小的干预就能把失败轨迹变成成功轨迹这体现了 ReAct 在可解释性和可控性上的巨大优势。3、实验3.1知识密集型推理任务首先从知识密集型推理任务入手例如问答和事实验证ReAct能够获取信息来支持推理同时利用推理来确定下一步应该检索什么内容从而展现出推理与行动的协同效应。实验设置领域本文选择了两个在知识检索和推理方面具有挑战性的数据集1HotpotQA这是一个横跨多领域的问答基准需要对两个或更多Wikipedia段落进行推理2FEVER这是一个事实验证基准每条声明都被标注为SUPPORTS支持、REFUTES反驳或NOT ENOUGH INFO信息不足。在本工作中对两个任务都采用仅提供问题/声明的设置即模型仅接收问题或声明作为输入无法直接访问支持段落必须依赖自身内部知识或者通过与外部环境交互来检索知识从而支持推理过程。动作空间实验设计了一个简单的Wikipedia网页API包含三种动作来支持交互式信息检索1search[entity]如果对应实体页面存在则返回该页面前5句话如果不存在则从Wikipedia搜索引擎返回最相似的5个实体2lookup[string]返回页面中包含指定字符串的下一句话模拟浏览器中的CtrlF查找功能3finish[answer]以指定答案结束当前任务。需要说明的是这个动作空间主要只能根据精确的页面名称检索到段落的一小部分其检索能力明显弱于当前最先进的词典式或神经网络检索器。本文的目的是模拟人类与Wikipedia的交互方式并迫使模型通过语言中的显式推理来进行检索。React Prompting对于HotpotQA和FEVER本文分别从训练集中随机选取6个和3个案例手动编写ReAct格式的轨迹作为少样本示例放入提示词中。每个轨迹都包含多个思考-动作-观察步骤即密集思考模式其中自由形式的思考用于多种任务。具体而言本文使用的思考组合包括分解问题“我需要搜索x找到y然后找到z”、从Wikipedia观察中提取信息“x始于1844年”“这段话没有提到x”、进行常识推理“x不是y因此z必须是……”或算术推理“1844 1989”、指导搜索重写“也许我可以改成搜索/查找x”以及综合得出最终答案“……所以答案是x”。Baselines本文系统性地对ReAct轨迹进行消融处理从而构建多种基线方法的提示a标准提示Standard移除ReAct轨迹中所有的思考、动作和观察。b思维链提示CoT移除动作和观察仅保留推理过程作为纯推理基线。c纯行动提示Act移除ReAct轨迹中的思考大致类似于WebGPT通过与互联网交互来回答问题的方式不过它使用不同的任务和动作空间并且采用模仿学习和强化学习而非提示方式。结果下表展示了以PaLM-540B为基础模型、在不同prompt方法下HotpotQA和FEVER的结果。注意到在两个任务上ReAct均优于Act这表明推理对于指导行动具有重要价值尤其是在综合得出最终答案时。3.2 决策任务本文还测试了ReAct在两个基于语言的交互式决策任务ALFWorld和WebShop上的表现这两个任务都涉及复杂的环境需要智能体在长时序、稀疏奖励的条件下进行行动因此特别需要推理来有效规划和探索。ALFWorld是一个合成文本游戏旨在与具身ALFRED基准对齐。它包含6种类型的任务智能体需要通过在模拟的家庭环境中导航和交互例如“go tocoffeetable1”“take paper 2”“usedesklamp1”来实现一个高层目标例如“examine paper underdesklamp”。一个任务实例可能包含超过50个位置并且专家策略可能需要50多步才能完成因此对智能体的规划、子目标跟踪以及系统性探索能力提出了挑战例如逐一检查所有桌子以找到台灯。ALFWorld特别内置了一个挑战即需要判断常见家用物品的可能位置例如台灯最可能出现在桌子、架子或梳妆台上这使得该环境非常适合大语言模型利用其预训练的常识知识。为了提示ReAct本文为每种任务类型从训练集中随机标注了3条轨迹每条轨迹包含稀疏的思考这些思考用于1分解目标2跟踪子目标完成情况3确定下一个子目标以及4通过常识推理判断物品可能在哪里以及该如何处理它。本文研究了 WebShop这是一个最近提出的在线购物网站环境包含118万个真实世界商品和1.2万条人类指令。与ALFWorld不同WebShop包含高度多样化的结构化和非结构化文本例如从Amazon抓取的商品标题、描述和选项并且要求智能体根据用户指令例如“我想要一个带抽屉的床头柜它应该有镍色表面价格低于140美元”通过网页交互例如搜索“nightstand drawers”、选择按钮如“color: modern-nickel-white”或“back to search”来购买商品。该任务通过平均得分所选商品覆盖用户所需属性的百分比在所有episode上取平均和成功率满足所有要求的episode占比在500条测试指令上进行评估。实验为Act提示设计了搜索、选择商品、选择选项和购买等动作而ReAct提示则额外加入了推理用于决定探索什么、何时购买以及哪些商品选项与指令相关。结果ReAct在ALFWorld下表左和WebShop下表右两个任务上均优于Act。在ALFWorld上最优的ReAct试验达到了平均成功率71%显著超越了Act的最优试验45%和BUTLER37%。事实上即使最差的ReAct试验48%也超过了两种基线方法的最优试验。此外ReAct相对于Act的优势在6个受控试验中保持一致相对性能提升范围为33%至90%平均提升62%。从定性角度看完全没有思考的Act无法正确地将目标分解为更小的子目标或者无法跟踪环境的当前状态。在WebShop上仅使用1-shot的Act提示就已经与IL和ILRL方法表现相当。加入稀疏推理后ReAct取得了显著更好的性能成功率比之前的最佳结果绝对提升了10%。4、结论本文提出了ReAct——一种简单而有效的方法用于在大型语言模型中实现推理与行动的协同。通过在多轮问答、事实验证以及交互式决策任务上进行的一系列多样化实验本文展示了ReAct能够带来更优的性能同时生成可解释的决策轨迹。尽管本文的方法非常简洁但对于动作空间较大的复杂任务仍需要更多示范示例才能学习得很好而这很容易超出上下文学习的输入长度限制。本文在HotpotQA上探索了微调方法取得了初步令人鼓舞的结果但要进一步提升性能仍需从更多高质量的人类标注数据中学习。将ReAct通过多任务训练进行扩展并与强化学习等互补范式相结合有望构建出更强大的智能体从而进一步释放大型语言模型在更多应用场景中的潜力。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2563755.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!