目录第一部分Agent推理模式谱系第二部分详解 ReAct 模式第三部分ReAct vs. CoT vs. ToT 核心区别面试回答第一部分Agent推理模式谱系Agent的推理模式可以看作一个光谱一端是纯粹的“思考”另一端是纯粹的“行动”中间则是二者的结合。1. 纯推理模式只思考不行动这类模式主要用于解决复杂的推理问题如数学、逻辑谜题不涉及与外部环境交互。链式思考Chain-of-Thought, CoT模型在给出最终答案前先生成一系列中间推理步骤。这就像考试时写出解题过程。思维树Tree of Thoughts, ToT不满足于单一的推理链而是在每一步探索多个可能的“思维分支”评估其前景并选择最有希望的方向继续探索或回溯。这更像下棋时的多步推演。思维图Graph of Thoughts, GoT将ToT的树状结构进一步泛化为图允许不同的思维链进行合并、循环等更复杂的操作形成推理网络。2. 行动驱动模式以行动为中心以试错来推理这类模式将推理隐含在行动与环境的交互反馈中。ReAct核心是推理和行动的交错协同。这也是我们要重点讲解的。反思在执行一系列行动后让Agent对整个过程和最终结果进行“反思”或“自我批评”总结经验教训以改进未来的行为。这是对ReAct模式的一种补充。计划与执行先制定一个完整的、不依赖具体反馈的抽象计划然后再逐步执行。这就像写代码前先画架构图。第二部分详解 ReAct 模式ReAct是Reasoning Acting 的缩写其核心思想极其朴素却强大让大型语言模型同步生成“推理轨迹”和“具体行动”两者相互增强协同解决复杂任务。一个标准的ReAct循环如下思考Agent收到用户输入后首先进行推理“我需要先找到2023年F1冠军是谁。”行动基于思考它决定调用“搜索”工具并输出一个具体的搜索API调用。观察环境返回搜索结果比如“马克斯·维斯塔潘”。再思考基于观察Agent继续推理“现在我知道了冠军是维斯塔潘下一步我需要找他的出生地。” 它也可能反思“刚才搜索的结果不完整我需要换一个更精确的查询。”再行动发起第二次搜索“马克斯·维斯塔潘 出生地”。再观察得到结果“比利时 哈瑟尔特”。最终回答经过几轮循环Agent整合信息给出最终答案“2023年F1冠军是维斯塔潘他出生于比利时哈瑟尔特。”ReAct的关键特性动态修正它打破了传统“规划-执行”的死板允许Agent在观察到行动结果后动态调整下一步计划。如果搜索失败它可以换个关键词如果信息矛盾它可以查证。可解释性人可以看到Agent的每一次“思考”和“观察”这使得其决策过程透明、可调试。融合内外部知识将模型内部的参数化知识“我知道需要搜索”与外部的工具知识搜索引擎返回的结果无缝结合有效缓解了模型的幻觉问题。第三部分ReAct vs. CoT vs. ToT 核心区别维度CoTToTReAct核心定义线性、逐步推理树状、多路径探索推理推理与行动交错的协同过程推理过程静态的单一推理链A→B→C→答案动态多分支探索可回溯A→ (B1, B2...) → ...动态、循环交互思考→行动→观察→思考...与外部世界完全隔绝。不获取、不使用任何外部信息。完全隔绝。探索的是内部生成的“思维状态”。强依赖。行动和观察是核心环节用于获取真实世界知识。问题解决内部的、封闭的推理问题。如数学应用题、逻辑推理。需要策略探索和全局规划的问题。如24点游戏、创意写作大纲、需要回溯的谜题。开放式的、需要与外部环境交互的任务。如信息检索、控制数字设备、对话式购物等。核心机制生成中间推理步骤来分解问题。生成、评估、搜索多个“下一步思考”分支。用行动从环境获取事实用推理来处理事实并指导下一步行动。区分它们的一个直观比喻CoT像一位学生闭卷考试在脑中一步步演算直接写出过程和答案。ToT像一位棋手在脑海中推演接下来的N种走法和对手的应对评估每种走法的胜率选择最优策略。整个过程仍是脑内活动。ReAct则像一位拿着手机的科学侦探。他会思考“凶手可能用的是氰化物。”思考然后马上行动“查询我的化学手册氰化物的中毒症状是什么”行动看到结果观察后他继续推理“这和目击者描述的症状不符。我得换个方向查查其他毒物……” 他通过不断与外部世界互动最终拼凑出真相。总结一下ReAct之所以在Agent构建中占据核心地位正是因为它解决了纯推理模式最大的局限无法利用外部工具和真实世界信息来校准知识、执行操作。而在实际的高级Agent系统中这些模式常常是组合使用的。例如在ReAct循环的单个“思考”步骤中可以调用ToT来求解一个子问题从而形成“ReAct ToT”的混合策略兼顾了外部交互与内部复杂推理。面试回答关于 Agent 的推理模式目前主流的主要有三类第一类是纯推理型像思维链CoT、思维树ToT它们主要在模型内部做文字推理不跟外界交互第二类是行动型比如 ReAct它把推理和行动结合起来第三类更高级一点比如自我反思Reflexion、规划与执行Plan-and-Solve等。重点说一下 ReAct它的核心理念就是让模型一边思考一边行动同时观察结果再继续思考。举个例子如果用 ReAct 模式让 Agent 查‘今天北京的天气并决定是否带伞’它会这样运作Thought思考我需要先查天气。Action行动调用天气 API 查询北京。Observation观察接口返回‘大雨’。Thought思考要下雨我得带伞。Action行动输出‘建议带伞’。这种模式最大的好处是能打破模型的‘知识幻觉’模型不知道实时信息没关系它会通过工具去获取真正做到接地气。对比 CoT、ToT 和 ReAct它们三者的区别先说 CoT思维链它是一条线走到底。模型在内部‘自言自语’把复杂问题拆成一步步逻辑推导。缺点它是静态的没法纠正错误。比如第一步算错了后面全错而且模型拿不到外部真实信息。再说 ToT思维树它是CoT的升级版不再是单条线而是像树一样分叉。模型会在每一步尝试多种可能性走不通就回溯换一条路。适用场景需要大量探索的数学题、策略游戏。缺点是计算量爆炸成本高。最后回到 ReAct它的轨迹更像是一个循环思考-行动-观察。它不是纯内部推理而是跟外部环境强交互。核心区别CoT只会‘想’ReAct既会‘想’也会‘做’。在需要查数据库、上网搜索、操作软件的任务里ReAct远强于CoT和ToT。简单总结一句话CoT 适合逻辑推导ToT 适合复杂探索ReAct 适合需要调用工具的真实任务环境。在实际开发中我不会只用一种。比如我会让 Agent 先用CoT做快速规划然后在需要查信息的具体步骤上切换成ReAct模式调用工具这其实就是更高级的Plan-and-Solve或LLM Compiler的思路。追问ReAct 有什么缺点ReAct 也有坑。因为要多次调用 LLM 和工具延迟比较高而且模型在‘思考-行动’之间切换时容易陷入死循环比如反复查同一个东西。生产环境里通常要加最大循环次数限制或者用格式约束来保证它收敛。如果小假的内容对你有帮助请点赞评论收藏。创作不易大家的支持就是我坚持下去的动力
【Agent 学习日记】我们来说说 Agent 的推理模式有哪些?说说 ReAct 模式,它和 CoT、ToT 等模式有什么区别?
目录第一部分Agent推理模式谱系第二部分详解 ReAct 模式第三部分ReAct vs. CoT vs. ToT 核心区别面试回答第一部分Agent推理模式谱系Agent的推理模式可以看作一个光谱一端是纯粹的“思考”另一端是纯粹的“行动”中间则是二者的结合。1. 纯推理模式只思考不行动这类模式主要用于解决复杂的推理问题如数学、逻辑谜题不涉及与外部环境交互。链式思考Chain-of-Thought, CoT模型在给出最终答案前先生成一系列中间推理步骤。这就像考试时写出解题过程。思维树Tree of Thoughts, ToT不满足于单一的推理链而是在每一步探索多个可能的“思维分支”评估其前景并选择最有希望的方向继续探索或回溯。这更像下棋时的多步推演。思维图Graph of Thoughts, GoT将ToT的树状结构进一步泛化为图允许不同的思维链进行合并、循环等更复杂的操作形成推理网络。2. 行动驱动模式以行动为中心以试错来推理这类模式将推理隐含在行动与环境的交互反馈中。ReAct核心是推理和行动的交错协同。这也是我们要重点讲解的。反思在执行一系列行动后让Agent对整个过程和最终结果进行“反思”或“自我批评”总结经验教训以改进未来的行为。这是对ReAct模式的一种补充。计划与执行先制定一个完整的、不依赖具体反馈的抽象计划然后再逐步执行。这就像写代码前先画架构图。第二部分详解 ReAct 模式ReAct是Reasoning Acting 的缩写其核心思想极其朴素却强大让大型语言模型同步生成“推理轨迹”和“具体行动”两者相互增强协同解决复杂任务。一个标准的ReAct循环如下思考Agent收到用户输入后首先进行推理“我需要先找到2023年F1冠军是谁。”行动基于思考它决定调用“搜索”工具并输出一个具体的搜索API调用。观察环境返回搜索结果比如“马克斯·维斯塔潘”。再思考基于观察Agent继续推理“现在我知道了冠军是维斯塔潘下一步我需要找他的出生地。” 它也可能反思“刚才搜索的结果不完整我需要换一个更精确的查询。”再行动发起第二次搜索“马克斯·维斯塔潘 出生地”。再观察得到结果“比利时 哈瑟尔特”。最终回答经过几轮循环Agent整合信息给出最终答案“2023年F1冠军是维斯塔潘他出生于比利时哈瑟尔特。”ReAct的关键特性动态修正它打破了传统“规划-执行”的死板允许Agent在观察到行动结果后动态调整下一步计划。如果搜索失败它可以换个关键词如果信息矛盾它可以查证。可解释性人可以看到Agent的每一次“思考”和“观察”这使得其决策过程透明、可调试。融合内外部知识将模型内部的参数化知识“我知道需要搜索”与外部的工具知识搜索引擎返回的结果无缝结合有效缓解了模型的幻觉问题。第三部分ReAct vs. CoT vs. ToT 核心区别维度CoTToTReAct核心定义线性、逐步推理树状、多路径探索推理推理与行动交错的协同过程推理过程静态的单一推理链A→B→C→答案动态多分支探索可回溯A→ (B1, B2...) → ...动态、循环交互思考→行动→观察→思考...与外部世界完全隔绝。不获取、不使用任何外部信息。完全隔绝。探索的是内部生成的“思维状态”。强依赖。行动和观察是核心环节用于获取真实世界知识。问题解决内部的、封闭的推理问题。如数学应用题、逻辑推理。需要策略探索和全局规划的问题。如24点游戏、创意写作大纲、需要回溯的谜题。开放式的、需要与外部环境交互的任务。如信息检索、控制数字设备、对话式购物等。核心机制生成中间推理步骤来分解问题。生成、评估、搜索多个“下一步思考”分支。用行动从环境获取事实用推理来处理事实并指导下一步行动。区分它们的一个直观比喻CoT像一位学生闭卷考试在脑中一步步演算直接写出过程和答案。ToT像一位棋手在脑海中推演接下来的N种走法和对手的应对评估每种走法的胜率选择最优策略。整个过程仍是脑内活动。ReAct则像一位拿着手机的科学侦探。他会思考“凶手可能用的是氰化物。”思考然后马上行动“查询我的化学手册氰化物的中毒症状是什么”行动看到结果观察后他继续推理“这和目击者描述的症状不符。我得换个方向查查其他毒物……” 他通过不断与外部世界互动最终拼凑出真相。总结一下ReAct之所以在Agent构建中占据核心地位正是因为它解决了纯推理模式最大的局限无法利用外部工具和真实世界信息来校准知识、执行操作。而在实际的高级Agent系统中这些模式常常是组合使用的。例如在ReAct循环的单个“思考”步骤中可以调用ToT来求解一个子问题从而形成“ReAct ToT”的混合策略兼顾了外部交互与内部复杂推理。面试回答关于 Agent 的推理模式目前主流的主要有三类第一类是纯推理型像思维链CoT、思维树ToT它们主要在模型内部做文字推理不跟外界交互第二类是行动型比如 ReAct它把推理和行动结合起来第三类更高级一点比如自我反思Reflexion、规划与执行Plan-and-Solve等。重点说一下 ReAct它的核心理念就是让模型一边思考一边行动同时观察结果再继续思考。举个例子如果用 ReAct 模式让 Agent 查‘今天北京的天气并决定是否带伞’它会这样运作Thought思考我需要先查天气。Action行动调用天气 API 查询北京。Observation观察接口返回‘大雨’。Thought思考要下雨我得带伞。Action行动输出‘建议带伞’。这种模式最大的好处是能打破模型的‘知识幻觉’模型不知道实时信息没关系它会通过工具去获取真正做到接地气。对比 CoT、ToT 和 ReAct它们三者的区别先说 CoT思维链它是一条线走到底。模型在内部‘自言自语’把复杂问题拆成一步步逻辑推导。缺点它是静态的没法纠正错误。比如第一步算错了后面全错而且模型拿不到外部真实信息。再说 ToT思维树它是CoT的升级版不再是单条线而是像树一样分叉。模型会在每一步尝试多种可能性走不通就回溯换一条路。适用场景需要大量探索的数学题、策略游戏。缺点是计算量爆炸成本高。最后回到 ReAct它的轨迹更像是一个循环思考-行动-观察。它不是纯内部推理而是跟外部环境强交互。核心区别CoT只会‘想’ReAct既会‘想’也会‘做’。在需要查数据库、上网搜索、操作软件的任务里ReAct远强于CoT和ToT。简单总结一句话CoT 适合逻辑推导ToT 适合复杂探索ReAct 适合需要调用工具的真实任务环境。在实际开发中我不会只用一种。比如我会让 Agent 先用CoT做快速规划然后在需要查信息的具体步骤上切换成ReAct模式调用工具这其实就是更高级的Plan-and-Solve或LLM Compiler的思路。追问ReAct 有什么缺点ReAct 也有坑。因为要多次调用 LLM 和工具延迟比较高而且模型在‘思考-行动’之间切换时容易陷入死循环比如反复查同一个东西。生产环境里通常要加最大循环次数限制或者用格式约束来保证它收敛。如果小假的内容对你有帮助请点赞评论收藏。创作不易大家的支持就是我坚持下去的动力