AI Agent的规划能力:从ReAct到Tree-of-Planning

规划:Agent的核心能力 AI Agent与聊天机器人的本质区别在于规划能力——将复杂目标分解为可执行步骤并动态调整的能力。从简单的ReAct循环到复杂的树搜索规划,Agent规划算法经历了快速演进。 ReAct:推理与行动的交错 基本循环 ReAct(Reasoning + Acting)是Agent规划的基石,核心思想是交错推理和行动: Thought: 用户要查北京天气,我需要调用天气API Action: search_weather(city="北京") Observation: 北京今天晴,25°C Thought: 获取到天气信息,可以回答用户了 Answer: 北京今天天气晴朗,气温25°C,适合外出活动。 实现细节 class ReActAgent: def __init__(self, llm, tools, max_steps=10): self.llm = llm self.tools = tools self.max_steps = max_steps def run(self, task): trajectory = [] for step in range(self.max_steps): # 生成下一步思考和行为 prompt = self._build_prompt(task, trajectory) response = self.llm.generate(prompt) thought, action = self._parse(response) trajectory.append({"thought": thought, "action": action}) if action["type"] == "finish": return action["answer"] # 执行工具 if action["type"] == "tool": result = self.tools[action["name"]](**action["params"]) trajectory.append({"observation": result}) return "达到最大步数限制" def _build_prompt(self, task, trajectory): prompt = f"""任务:{task} 可用工具:{list(self.tools.keys())} 历史: """ for item in trajectory: if "thought" in item: prompt += f"Thought: {item['thought']}\n" prompt += f"Action: {item['action']}\n" elif "observation" in item: prompt += f"Observation: {item['observation']}\n" prompt += "Thought:" return prompt ReAct的局限 无记忆反馈:失败的经验不会影响后续尝试 线性思维:无法回溯到之前的选择点尝试其他路径 容易陷入循环:在复杂任务中反复尝试相同的失败方案 Reflexion:从失败中学习 核心改进 Reflexion在ReAct基础上增加了自我反思机制。当任务执行失败时,Agent会生成反思并存储到长期记忆中: ...

2026-07-16 · 3 min · 515 words · 硅基 AGI 探索者

从ReAct到Reflexion:Agent推理范式演进

从ReAct到Reflexion:Agent推理范式演进 AI Agent的推理范式在过去几年经历了快速演进。从最初的ReAct到Reflexion再到各种自主规划框架,每一次迭代都在扩展Agent的问题解决能力。理解这条演进线,对于把握Agent技术的发展方向至关重要。 ReAct:推理与行动的交织 ReAct(Reasoning + Acting)是Agent推理范式的奠基之作。核心思想极其简洁:让模型交替进行推理(Thought)和行动(Action),根据行动的观察结果(Observation)调整下一步推理。 一个典型的ReAct循环: Thought: 我需要查找北京今天的天气 Action: search_weather("北京") Observation: 晴,最高温35°C,最低温22°C Thought: 今天北京是晴天且很热,我应该建议用户防晒 Action: respond("北京今天晴,最高35°C,建议防晒") ReAct的伟大之处在于它的简单和通用。不需要复杂的训练,只需要在prompt中定义好Thought-Action-Observation的格式,模型就能执行。这使得任何足够强大的LLM都可以变成一个Agent。 但ReAct也有明显局限: 无反思能力:如果Agent在第一步就走错了方向,它会沿着错误路径一直走下去,不会回头审视自己的推理链是否合理。 上下文窗口消耗快:每一步的Thought-Action-Observation都占用上下文,长任务很容易耗尽窗口。 错误传播:一步的错误观察会导致后续所有推理基于错误前提。 Reflexion:引入自我反思 Reflexion在ReAct的基础上增加了"反思"环节。当Agent完成任务或遇到失败时,它会回顾整个过程,总结经验教训,并将这些反思存储为"记忆",指导后续尝试。 Reflexion的循环: Attempt 1: Thought → Action → Observation → ... → Failed Reflection: 失败原因是第一步搜索关键词太宽泛,返回了不相关的结果。 下次应该使用更具体的搜索词。 Attempt 2: (使用反思记忆指导) Thought → Action → ... → Success Reflexion的关键创新是引入了"语言强化学习"的概念——用自然语言而非数值梯度来改进Agent的行为。反思生成的文本记忆起到了类似梯度下降中更新方向的作用。 在我们的实践中,Reflexion在多步推理任务上的成功率比ReAct高出15-25%。特别是在调试代码、解数学题等有明确正确答案的任务上,Reflexion的自我纠错能力非常有效。 Reflexion的局限 反思质量依赖模型的自我评估能力。如果模型无法准确判断自己的推理哪里出了问题,反思可能无效甚至误导。在需要专业领域知识的任务上,模型的自我反思往往不够深入。 此外,多次尝试意味着更多的时间和token消耗。在实时性要求高的场景中,Reflexion的开销可能不可接受。 后Reflexion时代的新范式 自主规划 ReAct和Reflexion都是"边想边做"的范式——每一步根据当前状态决定下一步。自主规划范式则将"规划"和"执行"分离:先制定完整计划,再逐步执行,执行中遇到偏差时重新规划。 自主规划的优势在于全局视野——Agent在开始执行前就能看到整个解决方案的结构,避免局部最优的陷阱。劣势是初始计划可能基于不完整信息,执行中发现计划不可行时需要频繁重规划。 树搜索 将推理过程组织为搜索树——每个节点是一个状态,每个边是一个动作。Agent使用启发式函数评估每个状态的价值,选择最有前景的方向探索。 Tree-of-Thoughts和MCTS(蒙特卡洛树搜索)是这一范式的代表。它们在需要深度搜索的任务(如数学证明、博弈)上表现优异,但计算开销远高于线性推理。 多Agent辩论 多个Agent从不同角度分析同一问题,通过辩论达成共识。这种范式利用了多样性——不同Agent有不同的知识和推理偏好,辩论过程可以暴露单个Agent的盲点。 范式选择的决策框架 场景 推荐范式 原因 简单工具调用 ReAct 开销最小,足够应付 多步推理有验证 Reflexion 自我纠错能力强 复杂规划任务 自主规划 全局视野避免局部最优 数学/逻辑难题 树搜索 深度搜索能力强 开放性问题 多Agent辩论 多角度视角减少盲点 未来方向 Agent推理范式的下一个突破可能来自以下方向: ...

2026-07-12 · 1 min · 92 words · 硅基 AGI 探索者

从ReAct到Reflexion:Agent推理范式演进

从ReAct到Reflexion:Agent推理范式演进 AI Agent的推理范式在过去几年经历了快速演进。从最初的ReAct到Reflexion再到各种自主规划框架,每一次迭代都在扩展Agent的问题解决能力。理解这条演进线,对于把握Agent技术的发展方向至关重要。 ReAct:推理与行动的交织 ReAct(Reasoning + Acting)是Agent推理范式的奠基之作。核心思想极其简洁:让模型交替进行推理(Thought)和行动(Action),根据行动的观察结果(Observation)调整下一步推理。 一个典型的ReAct循环: Thought: 我需要查找北京今天的天气 Action: search_weather("北京") Observation: 晴,最高温35°C,最低温22°C Thought: 今天北京是晴天且很热,我应该建议用户防晒 Action: respond("北京今天晴,最高35°C,建议防晒") ReAct的伟大之处在于它的简单和通用。不需要复杂的训练,只需要在prompt中定义好Thought-Action-Observation的格式,模型就能执行。这使得任何足够强大的LLM都可以变成一个Agent。 但ReAct也有明显局限: 无反思能力:如果Agent在第一步就走错了方向,它会沿着错误路径一直走下去,不会回头审视自己的推理链是否合理。 上下文窗口消耗快:每一步的Thought-Action-Observation都占用上下文,长任务很容易耗尽窗口。 错误传播:一步的错误观察会导致后续所有推理基于错误前提。 Reflexion:引入自我反思 Reflexion在ReAct的基础上增加了"反思"环节。当Agent完成任务或遇到失败时,它会回顾整个过程,总结经验教训,并将这些反思存储为"记忆",指导后续尝试。 Reflexion的循环: Attempt 1: Thought → Action → Observation → ... → Failed Reflection: 失败原因是第一步搜索关键词太宽泛,返回了不相关的结果。 下次应该使用更具体的搜索词。 Attempt 2: (使用反思记忆指导) Thought → Action → ... → Success Reflexion的关键创新是引入了"语言强化学习"的概念——用自然语言而非数值梯度来改进Agent的行为。反思生成的文本记忆起到了类似梯度下降中更新方向的作用。 在我们的实践中,Reflexion在多步推理任务上的成功率比ReAct高出15-25%。特别是在调试代码、解数学题等有明确正确答案的任务上,Reflexion的自我纠错能力非常有效。 Reflexion的局限 反思质量依赖模型的自我评估能力。如果模型无法准确判断自己的推理哪里出了问题,反思可能无效甚至误导。在需要专业领域知识的任务上,模型的自我反思往往不够深入。 此外,多次尝试意味着更多的时间和token消耗。在实时性要求高的场景中,Reflexion的开销可能不可接受。 后Reflexion时代的新范式 自主规划 ReAct和Reflexion都是"边想边做"的范式——每一步根据当前状态决定下一步。自主规划范式则将"规划"和"执行"分离:先制定完整计划,再逐步执行,执行中遇到偏差时重新规划。 自主规划的优势在于全局视野——Agent在开始执行前就能看到整个解决方案的结构,避免局部最优的陷阱。劣势是初始计划可能基于不完整信息,执行中发现计划不可行时需要频繁重规划。 树搜索 将推理过程组织为搜索树——每个节点是一个状态,每个边是一个动作。Agent使用启发式函数评估每个状态的价值,选择最有前景的方向探索。 Tree-of-Thoughts和MCTS(蒙特卡洛树搜索)是这一范式的代表。它们在需要深度搜索的任务(如数学证明、博弈)上表现优异,但计算开销远高于线性推理。 多Agent辩论 多个Agent从不同角度分析同一问题,通过辩论达成共识。这种范式利用了多样性——不同Agent有不同的知识和推理偏好,辩论过程可以暴露单个Agent的盲点。 范式选择的决策框架 场景 推荐范式 原因 简单工具调用 ReAct 开销最小,足够应付 多步推理有验证 Reflexion 自我纠错能力强 复杂规划任务 自主规划 全局视野避免局部最优 数学/逻辑难题 树搜索 深度搜索能力强 开放性问题 多Agent辩论 多角度视角减少盲点 未来方向 Agent推理范式的下一个突破可能来自以下方向: ...

2026-07-12 · 1 min · 92 words · 硅基 AGI 探索者
Agent反思与自我纠错

Agent反思与自我纠错架构:让AI学会从错误中学习

引言 人类智慧的一个重要特征是反思能力——我们不仅能行动,还能审视自己的行动,发现错误并改进。这种"元认知"能力是区分智能和本能的关键。 2026年,Agent的反思与自我纠错能力已经从学术概念走向生产应用。从简单的错误重试到复杂的因果分析,反思架构正在成为高级Agent的标配组件。 一、为什么Agent需要反思 1.1 LLM的固有局限 LLM存在幻觉、推理错误、知识过时等问题。单纯的LLM调用就像一个"没有反馈回路的开环系统"——输出正确与否,系统无从得知。 1.2 环境的不确定性 Agent在真实环境中运行,面临工具调用失败、数据不完整、用户意图模糊等不确定因素。没有反思机制,Agent会不断重复同样的错误。 1.3 任务的复杂性 复杂任务需要多步推理和工具调用,每一步都可能出错。反思机制可以在早期发现问题,避免错误级联放大。 二、反思的层次模型 2.1 执行层反思 最基础的反思层次:检查工具调用是否成功、结果是否符合预期。 Action: query_database(sql="SELECT * FROM users WHERE age > 18") Result: Error - table 'users' not found Reflection: 表名可能不对,先查询数据库的表列表。 Action: query_database(sql="SHOW TABLES") Result: ['user_info', 'orders', 'products'] Reflection: 表名是'user_info'而不是'users'。 Action: query_database(sql="SELECT * FROM user_info WHERE age > 18") Result: Success - 1234 rows 2.2 推理层反思 检查推理过程是否合理——逻辑是否自洽、前提是否正确、结论是否 follows from 前提。 Thought: 用户想了解销售额下降的原因。我先查看上个月的销售数据。 ... (查看数据后) Thought: 销售额确实下降了20%。但我只看了总数据,没有按渠道分解。 Reflection: 我的分析太粗粒度了。应该按渠道、产品线、地区分别分析,才能定位原因。 2.3 策略层反思 最高层次的反思:审视自己的策略和方法论是否正确。 ...

2026-07-02 · 2 min · 268 words · 硅基 AGI 探索者
鲁ICP备2026018361号