agent实习都干什么?什么是ReAct和Planning & Extractor?

在构建AI Agent(智能体)时,如何引导大模型有效完成复杂任务是一个核心问题。当前主流范式主要有两种:ReAct(推理+行动)Planning & Extractor(规划+提取器)。它们都旨在增强模型的自主性和任务执行能力,但在工作流程和适用场景上存在显著差异。本文将通过实例对比两者的异同,帮助企业根据实际需求选择合适范式。

一、ReAct范式

ReAct由Shunyu Yao等人提出,其核心思想是让模型在生成过程中交替进行“推理”和“行动”。模型会先思考当前状态(Reasoning),然后决定采取什么行动(Acting),如调用工具、查询知识库,之后根据行动结果再次推理,直至完成任务。这种动态循环使模型能够根据环境反馈实时调整策略,特别适合需要多步交互、结果不确定的任务。

实例:旅游出行建议助手

用户提问:“明天北京天气如何?适合去长城吗?”

假设模型具备天气查询工具get_weather(city, date)和地图工具get_distance(location1, location2)

ReAct执行过程模拟

思考1:用户想知道北京明天的天气,以及是否适合去长城。我需要先查询天气。
行动1:调用 get_weather(city="北京", date="明天")
观察1:天气晴朗,气温15-25℃,微风。

思考2:天气很好,适合户外活动。但还需要考虑长城的具体位置和交通情况。查询从市区到长城的距离。
行动2:调用 get_distance("北京市中心", "八达岭长城")
观察2:距离约70公里,车程约1.5小时。

思考3:天气晴朗,距离适中,适合前往。但需提醒用户注意交通和防晒。
最终回答:明天北京天气晴朗,气温15-25℃,非常适合游览长城。从市区到八达岭约70公里,建议早点出发并做好防晒。

特点:每一步思考都基于前一步的观察,推理和行动紧密耦合,模型自主决定下一步动作。

二、Planning & Extractor范式

Planning & Extractor范式采用分阶段处理的方式。首先由模型(或规则)对任务进行规划,分解为一系列有序步骤;然后依次执行这些步骤(可能调用工具);最后通过一个提取器(可以是模型或代码)从执行结果中抽取出关键信息,生成最终答案。该范式强调任务的分解和结果的精炼,适用于流程相对固定、输出格式要求明确的场景。

实例:同样的旅游出行建议助手

Planning & Extractor执行过程模拟

  1. 规划阶段:步骤1:查询北京明天的天气。步骤2:查询北京到长城的距离。步骤3:根据天气和距离,综合判断是否适合去长城。
  2. 执行阶段(按顺序执行):执行1:调用 get_weather(city="北京", date="明天") → 结果:晴朗,15-25℃执行2:调用 get_distance("北京市中心", "八达岭长城") → 结果:70公里,1.5小时
  3. 提取与生成阶段:提取器接收执行结果,分析:天气晴朗,温度适宜;距离70公里,属于可接受范围。生成最终回答:“明天北京天气晴朗,适合户外活动。长城距离市区约70公里,车程1.5小时,建议前往,注意防晒和补水。”

特点:规划与执行分离,执行结果被统一交给提取器处理,提取器可专门针对输出格式进行优化(如结构化数据、摘要等)。

三、异同对比

工作流程

推理-行动循环,动态迭代

规划 → 执行 → 提取,线性阶段

决策灵活性

高,可根据中间结果调整后续动作

低,计划一旦制定,执行相对固定

工具调用次数

不确定,由模型动态决定

确定,由计划步骤决定

输出生成方式

在循环中逐步构建,最终整合

由提取器统一处理执行结果后生成

适用场景

开放式探索、需多步推理的任务(如科研助手、复杂问答)

流程清晰、输出结构化的任务(如报表生成、信息抽取)

实现复杂度

需要设计循环机制和停止条件

相对简单,各阶段可独立优化

典型应用

AutoGPT、BabyAGI等自主智能体

数据ETL流程、标准化报告生成

相同点

  • 都支持调用外部工具和知识库。
  • 都旨在提升模型完成复杂任务的能力。
  • 都需要对模型输出进行约束,避免偏离任务。

不同点的核心在于:ReAct将决策过程融入执行中,而Planning & Extractor将决策(规划)与执行分离。ReAct更像一个“思考者+行动者”,边想边做;Planning & Extractor更像一个“项目经理+执行者+秘书”,先定计划,再执行,最后整理汇报。

四、选择建议

  • 如果任务需要根据实时反馈调整策略(如动态搜索信息、多轮对话中的决策),ReAct更具优势。
  • 如果任务流程固定,且对输出格式有严格要求(如周报生成、数据汇总),Planning & Extractor更高效、更可控。

在实际企业应用中,两种范式可以结合:例如先用Planning制定高层计划,然后在每个步骤内部采用ReAct式的动态推理,实现灵活性与结构化的平衡。

通过理解这两种范式的异同,开发人员可以针对具体场景设计更合理的AI Agent架构,提升任务完成的质量与效率。

五、 一图流

#AI求职实录#
全部评论

相关推荐

bg双非本科,方向是嵌入式。这次秋招一共拿到了 8 个 offer,最高年包 40w,中间也有一段在海康的实习经历,还有几次国家级竞赛。写这篇不是想证明什么,只是想把自己走过的这条路,尽量讲清楚一点,给同样背景的人一个参考。一、我一开始也很迷茫刚决定走嵌入式的时候,其实并没有一个特别清晰的规划。网上的信息很零散,有人说一定要懂底层,有人说项目更重要,也有人建议直接转方向。很多时候都是在怀疑:1.自己这种背景到底有没有机会2.现在学的东西到底有没有用3.是不是已经开始晚了这些问题,我当时一个都没答案。二、现在回头看,我主要做对了这几件事第一,方向尽早确定,但不把自己锁死。我比较早就确定了嵌入式这个大方向,但具体做哪一块,是在项目、竞赛和实习中慢慢调整的,而不是一开始就给自己下结论。第二,用项目和竞赛去“证明能力”,而不是堆技术名词。我不会刻意追求学得多全面,而是确保自己参与的每个项目,都能讲清楚:我负责了什么、遇到了什么问题、最后是怎么解决的。第三,尽早接触真实的工程环境。在海康实习的那段时间,对我触动挺大的。我开始意识到,企业更看重的是代码结构、逻辑清晰度,以及你能不能把事情说清楚,而不只是会不会某个知识点。第四,把秋招当成一个需要长期迭代的过程。简历不是一次写完的,面试表现也不是一次就到位的。我会在每次面试后复盘哪些问题没答好,再针对性补。三、我踩过的一些坑现在看也挺典型的:1.一开始在底层细节上纠结太久,投入产出比不高2.做过项目,但前期不会总结,导致面试表达吃亏3.早期有点害怕面试,准备不充分就去投这些弯路走过之后,才慢慢找到节奏。四、给和我背景相似的人一点建议如果你也是双非,准备走嵌入式,我觉得有几件事挺重要的:1.不用等“准备得差不多了”再投2.项目一定要能讲清楚,而不是做完就算3.不要只盯着技术,多关注表达和逻辑很多时候,差的不是能力,而是呈现方式。五、写在最后这篇总结不是标准答案,只是我个人的一次复盘。后面我会陆续把自己在嵌入式学习、竞赛、实习和秋招中的一些真实经验拆开来讲,希望能对后来的人有点帮助。如果你正好也在这条路上,希望你能少走一点弯路。
x_y_z1:蹲个后续
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务