1、什么是 Agent 的规划能力
Agent 的规划能力,指的是把一个模糊的、复杂的目标,拆解成可执行、有顺序、有依赖关系的子任务,并在执行过程中根据反馈动态调整的能力。
它包含几个层面:
- 任务分解:把“帮我规划杭州三日游”拆成查天气、查交通、选景点、排行程、算预算。
- 依赖管理:先查天气再选景点,先订票再排行程。
- 动态调整:执行中发现景点闭馆,能重新规划。
- 进度评估:知道当前做到哪一步,还剩什么。
没有规划能力的 Agent,只能做单步反应式问答;有规划能力,才能完成长链条任务。
2、ReAct:推理与行动交替
核心机制:ReAct = Reasoning + Acting,让模型在每一步交替进行“思考”和“行动”。
- Thought:分析当前状态,决定下一步做什么。
- Action:调用工具(搜索、API、计算器)。
- Observation:获取工具返回结果,进入下一轮思考。
循环直到任务完成或达到最大步数。
适合什么任务:
- 工具调用型任务:需要查询外部 API、数据库、搜索引擎。
- 信息查找与问答:多跳检索、事实核查。
- 动态环境:每一步的结果会影响下一步决策。
- 中小规模任务:3~10 轮迭代能完成的任务。
主要缺陷:
- 短视:每步只看当前,缺乏全局规划,可能走弯路。
- 循环与死锁:可能反复调用同一个工具或陷入无效循环,必须设 max_steps。
- 成本随步数线性增长:步数越多,token 消耗越大。
- 对模型能力有要求:小模型(4B 以下)容易格式混乱或循环。
一句话:ReAct 是“边想边做”,灵活但缺全局视野,适合工具调用和动态任务。
3、Plan-and-Execute:先规划,再执行
核心机制:先用一次 LLM 调用生成完整的计划(任务列表或依赖图),然后按计划逐步执行。
- Plan:把任务拆成有序步骤,可以带依赖关系。
- Execute:逐步执行,必要时可以重新规划。
与 ReAct 的关键区别:规划发生在执行之前,不是每步都重新想全局。
适合什么任务:
- 步骤可预测的多步工作流:如“查数据→清洗→分析→生成报告”。
- 需要可见性和可控性的任务:企业流程、审批流。
- 步骤之间有明确依赖:某些步骤必须先完成。
- 长链条任务:减少每步重新推理的开销。
主要缺陷:
- 计划可能过时:执行中发现环境变化(工具失败、结果出乎意料),原计划不再适用,需要重新规划。
- 前期规划质量决定上限:如果 plan 本身错了,执行再好也没用。
- 对模型结构化输出能力有要求:生成可靠的任务列表/JSON 需要较强模型,小模型容易格式错误。
- 缺乏中途观察:纯 Plan-and-Execute 在执行中不看中间结果,遇到意外无法反应。
一句话:Plan-and-Execute 是“先画图纸再施工”,适合可预测的多步流程,但对意外反应慢。
4、Reflexion:自我反思与迭代改进
核心机制:Reflexion 不更新模型权重,而是通过语言反馈让 Agent 从失败中学习。
- 完成一次任务(或失败后),Agent 评估结果。
- 生成一段“反思文本”:哪里做错了,下次怎么改。
- 把反思存入记忆,下一次尝试时参考。
- 多次迭代,逐步改进。
代表成果:在 HumanEval 代码生成上,Reflexion 达到 91% pass@1,超过当时 GPT-4 的 80%。
适合什么任务:
- 质量优先、可容忍多次尝试的任务:代码生成、复杂推理。
- 有明确反馈信号的任务:编译错误、测试失败、答案对错。
- 事实性问答:需要高准确率,可以多轮修正。
- 单次做不好的困难任务:Reflexion 通过迭代弥补。
主要缺陷:
- 成本高:多次尝试,token 消耗可能是 ReAct 的 3~5 倍甚至更多。
- 依赖反馈信号:没有好的反馈(对错信号),反思质量差。研究中的高准确率往往依赖 ground-truth 停止条件,实际部署中可能达不到。
- 反思可能污染:低质量的反思存入记忆,会误导后续决策。
- 延迟高:多轮迭代,不适合实时场景。
- 对模型能力要求最高:需要模型能生成有意义的自我批评,小模型效果差。
一句话:Reflexion 是“做完复盘再重做”,质量高但贵且慢,适合能接受多次尝试的高价值任务。
5、三种模式对比总结
选型建议:
- 默认用 ReAct,简单有效,覆盖大多数工具调用场景。
- 任务步骤可预测、需要可见性时,用 Plan-and-Execute。
- 质量比速度重要、且有反馈信号时,用 Reflexion。
- 实际系统可以组合:Plan-and-Execute 做骨架,ReAct 处理执行中的意外,Reflexion 做最终质量把关。
6、一句话总结
Agent 规划能力是把复杂目标拆成可执行步骤并动态调整的能力。ReAct 边想边做,灵活但短视,适合工具调用;Plan-and-Execute 先规划再执行,有全局视野但对意外反应慢,适合可预测流程;Reflexion 通过语言反思迭代改进,质量高但贵且慢,适合质量优先的可迭代任务。实际选型看任务确定性、成本预算和质量要求。
7、这道面试题的质量点评
优点
- 结构完整:定义 → 三种模式对比 → 缺陷,逻辑闭环。
- 区分度好:
- 初级:能说三种模式是什么。
- 中级:能说各自适合任务和基本缺陷。
- 高级:能说成本权衡、模型规模要求、组合使用、实际部署中的反馈依赖问题。
- 贴近前沿:Agent 规划是当前最热的应用层话题。
- 有追问空间:可以追问具体实现、成本数据、模型选型、组合策略。
缺点
- 偏开放:三种模式信息量大,容易泛泛而谈。
- 容易背名词:可能只列模式名和一句话定义,说不清取舍。
- 缺少场景:没问“你实际项目用哪种?为什么?”
- 没覆盖更新的变体:如 Plan-Execute-Reflect、Tree-of-Thought 等。
总体评价
质量:上。 适合中高级岗位,能有效区分“知道几个 Agent 名词”和“真正理解规划模式取舍”的人。建议追问:
“你实际项目用哪种?为什么不用另一种?”
“ReAct 循环怎么防?max_steps 怎么定?”
“Reflexion 的成本你测过吗?和 ReAct 差多少?”
“Plan-and-Execute 执行中计划失效怎么办?”
“小模型能用哪些模式?”
8、怎么回答才是最好的
回答原则
- 先给规划能力定义:拆解、依赖、动态调整。
- 每种模式讲清:机制、适合任务、主要缺陷。
- 对比要有维度:成本、延迟、全局视野、对意外的反应。
- 主动提组合和选型:实际系统往往不是单一模式。
- 结合实践:说“我们默认 ReAct,复杂流程用 Plan-Execute”。
推荐回答结构
“Agent 的规划能力是把模糊目标拆成可执行步骤,管理依赖,并在执行中根据反馈调整。没有规划,只能做单步反应。”
“ReAct 是边想边做,每步 Thought-Action-Observation 循环。适合工具调用和动态查询,灵活但短视,容易循环,必须设 max_steps。成本低,4B 模型就能跑。”
“Plan-and-Execute 是先规划再执行。适合步骤可预测的多步流程,有全局视野。但计划可能过时,执行中遇到意外反应慢,需要重新规划。对模型结构化输出能力有要求。”
“Reflexion 是做完复盘再重做。通过语言反思迭代改进,适合代码生成、事实问答这种质量优先的任务。HumanEval 上能到 91% pass@1。但成本高,依赖好的反馈信号,实际部署中如果没有 ground-truth,效果会打折扣。”
“实际选型:默认 ReAct,简单够用;流程确定性强用 Plan-Execute;质量关键且有反馈用 Reflexion。也可以组合,Plan-Execute 做骨架,ReAct 处理意外。我们项目默认 ReAct,复杂流程上 Plan-Execute。”
加分点
- 提到 Thought-Action-Observation、max_steps、循环问题。
- 提到 Reflexion 的 91% HumanEval、成本 3-5 倍、依赖反馈。
- 提到 Plan-and-Execute 的计划过时、模型规模要求。
- 提到 组合使用、按任务确定性选型。
- 结合真实项目经验。
减分点
- 只说“ReAct 是推理加行动”,不展开。
- 不知道 Reflexion 的成本问题。
- 不知道 Plan-and-Execute 需要重规划。
- 说“Reflexion 一定比 ReAct 好”。
- 不提 max_steps 和循环防护。
评论专区
评论加载中...登录后即可发表评论