Agent 中规划与执行怎么协同?
以 ReAct 为例,拆解规划与执行在 Agent 系统中的分工与配合
原题:请阐述你对智能Agent中‘规划’与‘执行’两个核心能力的理解,并举例说明它们在实际Agent系统中的体现与协同方式。
评估与监控 · 字节真题
30 秒回答
- 明确区分"规划"与"执行"的定义边界和核心职责
- 能结合具体架构(如ReAct、Plan-and-Execute)说明协同机制
- 举例体现动态调整能力(规划失败后的重规划)
- 提及实际工程中的权衡(规划开销vs执行效率)
回答与解析
答案要点
- 明确区分"规划"与"执行"的定义边界和核心职责
- 能结合具体架构(如ReAct、Plan-and-Execute)说明协同机制
- 举例体现动态调整能力(规划失败后的重规划)
- 提及实际工程中的权衡(规划开销vs执行效率)
核心理解
规划(Planning) 是Agent的"大脑":将复杂目标拆解为可执行的子任务序列,决定做什么和先后顺序。关键能力包括任务分解、依赖推理、路径选择。
执行(Execution) 是Agent的"手脚":调用具体工具/动作完成原子任务,决定怎么做。关键能力包括工具调用、异常处理、结果观测。
协同方式:以ReAct为例
循环:思考(规划) → 行动(执行) → 观察 → 再思考...
| 阶段 | 典型输出 | 作用 |
|---|---|---|
| 规划 | "我需要先查天气,再决定穿衣建议" | 确定下一步动作意图 |
| 执行 | 调用WeatherAPI(location="北京") | 获取具体数据 |
| 反馈 | 观测结果"晴,25°C" | 为下一轮规划提供依据 |
动态协同的关键:执行结果可能触发重规划——若API返回错误,Agent需重新规划替代路径(如换数据源或简化需求)。
工程实践中的体现
- Plan-and-Execute架构:先一次性生成完整计划(如"搜索→总结→翻译"),再逐条执行,适合确定性高的任务
- 反思机制(Self-Reflection):执行失败后,规划模块分析原因并调整策略,而非简单重试
- 成本权衡:过度规划增加Token消耗和延迟,实际系统常设规划深度阈值或采用自适应规划
本质区别:规划处理不确定性(决策空间),执行处理确定性(动作落地),二者闭环迭代构成Agent的自主核心。
口语版讲法(约4分钟)
- 一句话定位:这道题考的是Agent怎么把目标拆成步骤、再落地执行,以及两者怎么闭环
- 规划是大脑,决定做什么和顺序;执行是手脚,具体调用工具
- 以ReAct为例说明协同:思考-行动-观察循环,执行结果触发重规划
- 工程落地:Plan-and-Execute适合确定性任务,反思机制处理失败,规划开销要权衡
- 结尾:用工程师视角总结取舍,并给出可延伸点
这道题问的是Agent的规划和执行,我觉得它本质是在考察一个Agent怎么把模糊目标变成具体动作,以及这两步怎么配合。如果只讲概念就太浅了,我更想从工程落地的角度来聊。
先说边界划分。规划是Agent的大脑,负责把复杂目标拆成可执行的子任务,决定做什么和先后顺序。比如用户说“帮我订一张去北京的机票”,规划层就要拆成“查航班、比较价格、下单支付”这几步,还得考虑依赖关系,比如先查航班才能比价格。执行是手脚,负责调用具体工具完成每个原子任务,比如调航班API、调支付接口。规划处理的是不确定性,因为决策空间很大;执行处理的是确定性,每个工具调用都有固定输入输出。
真正落地的时候,规划和执行不是串行的,而是循环迭代。最典型的架构就是ReAct,它的流程是思考、行动、观察、再思考。举个例子,一个客服Agent处理退款,规划层先决定“查订单状态”,执行层调订单API,返回“已发货”,那规划层就得重新规划,改成“联系物流拦截”或者“引导用户退货”。这个例子说明,执行结果会直接影响下一轮规划,如果API报错或者返回意料之外的数据,Agent必须能动态调整,而不是死板执行原计划。
不过ReAct每一步都重新规划,开销比较大。实际工程中我见过另一种做法,就是Plan-and-Execute架构,一次性先生成完整计划,比如“搜索资料、总结、翻译”,然后逐条执行。这种适合确定性高的任务,比如定时报表生成。但有个前提,就是任务环境不能太动态,否则计划生成后条件变了,执行就会失败。所以我会根据场景选架构,高动态场景用ReAct,稳定场景用Plan-and-Execute。
这里有个坑:规划开销。规划层每步都要调大模型,Token消耗和延迟都很可观。上线前我会设一个规划深度阈值,比如最多规划5步,超过就简化或者报错。另外,执行失败时,我倾向加一个反思机制,让Agent分析失败原因再重规划,而不是简单重试。比如调天气API超时,反思后决定换一个数据源,而不是再试一次同一个API。
所以我会把规划和执行看成一对共生关系:规划负责应对不确定性,执行负责稳定落地。两者通过观察结果形成闭环,但工程上必须控制规划成本,不能让Agent无限思考。
说到执行,其实工具调用设计也很关键,比如怎么注册工具、怎么校验参数、怎么做安全控制。这些细节如果没处理好,Agent很容易乱调工具或者泄露数据。
关键一句:工具调用的工程细节,比如注册、校验、安全控制,是Agent执行层落地的关键
面试官还可能这样问
- 问法 1 · 场景切入
假设我们要做一个智能客服助手,用户问‘帮我查下订单’,它知道要先查用户身份再调用订单API。这个‘知道要分两步’和‘实际去调API’分别对应你理解的什么?能展开说说吗?
- 问法 2 · 层层追问
你觉得Agent系统里,‘想’和‘做’是怎么分工的?……那如果中间某一步失败了,比如调API超时了,它怎么继续?……再深入一点,你如何设计才能让它在高并发下既不‘想’太久也不‘做’错?
- 问法 3 · 直球架构
请解释智能Agent中‘规划’和‘执行’的定义、区别,以及它们在一个实际系统(比如ReAct或Plan-and-Execute)中是如何协同工作的。最好举一个带动态调整的例子。