Agent 推理模式对比
ReAct、Plan-and-Execute、Reflection 等推理/编排模式,补充适用边界与工程取舍
原题:请列举几种主流的大语言模型Agent实现框架或方法,并简要说明它们的特点和适用场景。
Agent · 百度真题
30 秒回答
- 能列举3种以上主流框架/方法
- 准确描述各自的核心机制
- 说明关键差异和适用场景
- 体现对实际落地的理解
回答与解析
答案要点
- 能列举3种以上主流框架/方法
- 准确描述各自的核心机制
- 说明关键差异和适用场景
- 体现对实际落地的理解
主流Agent框架/方法
1. ReAct(Reasoning + Acting)
- 核心机制:思维链(CoT)与工具调用交替进行,"思考→行动→观察"循环
- 特点:可解释性强,每一步推理过程可见;适合复杂多步推理任务
- 适用场景:数学推理、知识问答、需要逐步拆解的决策任务
2. Function Calling / Tool Use
- 核心机制:模型原生支持结构化工具调用(OpenAI、Claude、文心等)
- 特点:延迟低、格式稳定、易集成;但单轮调用,无显式推理链
- 适用场景:API对接、实时数据查询、标准化工具集成的生产环境
3. LangChain / LlamaIndex
- 核心机制:模块化编排,封装了Prompt管理、记忆、工具链等
- 特点:生态丰富、上手快;但抽象层厚,定制灵活性受限
- 适用场景:快速原型验证、RAG+Agent结合的标准化应用
4. AutoGPT / BabyAGI
- 核心机制:目标分解 + 自主任务队列 + 长期记忆
- 特点:追求完全自主,但稳定性差、易陷入循环
- 适用场景:实验性探索、开放式任务(实际生产较少用)
5. Multi-Agent框架(如MetaGPT、AutoGen)
- 核心机制:多角色协作,模拟软件开发等流程
- 特点:分工明确,适合复杂协作任务;通信开销大
- 适用场景:代码生成、内容创作、需要多角色评审的场景
选型建议
- 生产环境:优先Function Calling + 轻量编排(自研或LangChain)
- 复杂推理:ReAct + 反思机制
- 多人协作:Multi-Agent,但需控制角色数量和通信轮次
口语版讲法(约4分钟)
- 题目本质问的是选型能力
- ReAct适合推理但延迟高
- Function Calling是生产首选
- 落地常见坑和前提
- 我的判断和可延伸点
这道题其实问的不是你会背几个框架名字,而是你面对一个真实业务需求时,怎么选、怎么搭、怎么避免踩坑。我按自己的理解讲一下。
先说 ReAct,就是思考加行动交替循环。它的好处是每一步推理都看得见,可解释性很强,适合那种需要多步拆解的复杂推理,比如数学题或者知识问答。但问题也很明显,延迟高,因为每步都要调一次模型,而且如果模型思考跑偏了,整个链条就废了。所以它更适合对延迟不敏感、但对正确性要求高的场景,比如后台的深度分析。
再一个就是 Function Calling,现在主流模型原生支持。它延迟低,格式稳定,跟API对接非常顺。生产环境里我大概率会优先用这个,比如做一个客服退款机器人,用户说“帮我查订单退多少钱”,我直接调一个查订单接口、一个算退款金额接口,单步搞定,不需要模型绕来绕去。但它的弱点是缺乏显式推理链,单步调用,如果任务需要多步推理就不够用了。
所以实际落地时,我常常会把两者结合起来:用Function Calling做标准化的单步工具调用,然后用ReAct在后台做复杂推理的调度。比如用户问“为什么我上个月满减没生效”,我先用Function Calling查订单和优惠券,拿到数据后再用ReAct分析满减规则有没有冲突。
这里有个坑:很多人一上来就上Multi-Agent框架,比如让几个Agent扮演产品、开发、测试。但实际中,Agent之间的通信开销很大,而且容易陷入循环,比如两个Agent互相反驳停不下来。所以我的建议是,除非你真的需要多角色协作,比如内容创作或者代码生成需要评审,否则别轻易上多Agent。而且就算用,也要严格控制角色数量和通信轮次,比如最多两个Agent、每轮对话不超过三次。
其实还有一个方向我最近在关注,就是 Self-RAG,让模型在生成过程中自己检索、自己反思、自己决定要不要改答案。这个跟ReAct有点像,但Self-RAG更强调模型自己判断什么时候该检索、什么时候该停止。我觉得它在减少无效调用和提升答案质量上挺有潜力的。
总的来说,我会把Function Calling看成生产环境的基石,ReAct看成复杂推理的补充,Multi-Agent看成实验性探索。选型时我会优先问自己:这个任务能不能用一步工具调用解决?如果不能,再考虑加推理链。而且上线前我一定会做压力测试,看看延迟和召回率,尤其是当模型输出格式不对时,有没有降级方案。
关键一句:Self-RAG让模型自己判断何时检索、何时停止,减少无效调用。
面试官还可能这样问
- 问法 1 · 场景切入
假设你要做一个订单查询的智能客服,用户问‘我的订单到哪了’,模型需要查物流API。你会怎么设计这个流程?能不能列举几种主流的Agent实现方式,说说各自适合什么场景?
- 问法 2 · 层层追问
你了解哪些实现Agent的方法?……比如ReAct和Function Calling有什么区别?……那你觉得在真实生产环境里,选型时应该考虑哪些因素?
- 问法 3 · 直球架构
请列举几种主流的大模型Agent框架或方法,并简要说明它们的特点和适用场景,比如ReAct、Function Calling、LangChain这些。