智能体面试准备(五):规划与任务分解——从 Plan-and-Execute 到动态重规划的工程实现
智能体面试准备五规划与任务分解——从 Plan-and-Execute 到动态重规划的工程实现Agent 面试里工具调用考的是基本功规划能力考的才是深度。面试官常用的开场是你的 Agent 拿到一个复杂任务比如调研三个竞品并输出对比报告它怎么知道先做什么后做什么如果你的回答只有让模型自己想那基本就暴露了没做过复杂 Agent。这篇把任务规划的主流范式、Plan-and-Execute 的完整实现、动态重规划的触发机制讲透配一段可直接运行的 planner 代码。一、为什么需要显式规划ReAct 的天花板ReAct每步想一下→做一下→看结果是 Agent 的入门范式但它在复杂任务上有三个结构性缺陷短视每步只基于当前观察决定下一步缺乏全局视野容易在中途偏离最终目标上下文膨胀所有中间观察都塞进历史长任务后期模型忘了最初目标且 token 成本线性上涨错误累积某一步走偏后没有全局参照后续步骤在错误方向上越走越远。显式规划Planning的思路是把想清楚整体怎么做和逐步执行分离先生成任务分解plan再逐项执行execute执行中按需修订计划re-plan。这就是 Plan-and-Execute 范式LangChain 的同名实现、BabyAGI 的任务队列、OpenAI Deep Research 的多步研究流程内核都是它。二、主流规划范式对比范式核心机制优点缺点适用场景ReAct逐步交错推理与行动实现简单、灵活应变短视、上下文膨胀短链任务≤5步Plan-and-Execute先全局分解再逐项执行全局一致、可并行、省 token计划可能过时中长任务、可预估结构ReWOO计划中用变量引用未来结果#E1、#E2一次规划零中断token 最省完全无法应变步骤确定的流水线LLMCompiler生成任务 DAG无依赖任务并行执行延迟最低实现复杂多工具可并行场景Tree of Thoughts树状展开多分支回溯探索性最强成本爆炸解谜、搜索类问题面试高频追问ReWOO 的变量引用机制是什么答planner 一次性生成所有步骤用占位符#E1表示第一步的执行结果后续步骤直接引用占位符executor 按序执行并做变量替换最后 solver 汇总。全程只调用两次 LLM规划汇总token 消耗远低于 ReAct 的 N 次调用。代价是中途无法根据实际结果调整——所以它只适合结构确定的任务。任务分解的两个正交维度也值得记住分解粒度粗粒度里程碑 vs 细粒度动作和分解时机一次性全部分解 vs 递归按需分解。递归分解把大任务拆成子任务子任务执行时再拆更接近人类做法也是 Manus、Devin 这类长程 Agent 的实际策略。三、Plan-and-Execute 的工程要素一个生产可用的 planner 至少要处理四件事计划的结构化表示。不能是自然语言段落必须是结构化对象每个步骤有 id、描述、依赖depends_on、状态pending/running/done/failed、产出。有了依赖关系无依赖的步骤可以并行失败可以精确定位影响范围。执行器与规划器分离。planner 用强模型规划质量决定上限executor 可以用便宜模型或纯代码。executor 只看到当前步骤相关上下文而非全部历史——这是控制上下文膨胀的关键手段。重规划触发机制。三种标准触发条件步骤执行失败且重试无效执行结果与计划假设不符比如搜索竞品A的财报发现竞品A已被收购用户中途修改需求。重规划时把原计划已完成步骤失败原因喂给 planner生成修订计划已完成的工作要保留。终止与预算控制。最大步数、最大 token 预算、最大重规划次数三道保险防止 Agent 无限循环烧钱——这是面试官特别爱听的工程意识。四、可运行代码带依赖管理与重规划的迷你 Planner下面用纯 Python 标准库实现一个可运行的 Plan-Execute 框架DAG 依赖调度 失败重试 重规划钩子。真实项目里把fake_llm_plan和execute_step换成 LLM 调用即可骨架完全一致。import json from dataclasses import dataclass, field from enum import Enum class Status(Enum): PENDING pending DONE done FAILED failed dataclass class Step: id: str desc: str depends_on: list field(default_factorylist) status: Status Status.PENDING result: str retries: int 0 def fake_llm_plan(goal: str) - list: 模拟 planner LLM返回结构化计划真实场景换成 LLMJSON 输出。 return [ Step(s1, 搜索竞品A的公开资料), Step(s2, 搜索竞品B的公开资料), Step(s3, 提取两家竞品的定价与功能, depends_on[s1, s2]), Step(s4, 生成对比报告, depends_on[s3]), ] def execute_step(step: Step, context: dict) - str: 模拟 executors2 第一次执行会失败用于演示重试与重规划。 if step.id s2 and step.retries 0: raise RuntimeError(竞品B官网无法访问) return f[{step.desc}] 的执行结果 def replan(goal: str, steps: list, failed: Step) - list: 模拟重规划把失败步骤换成替代方案保留已完成的工作。 print(f 触发重规划{failed.desc} 失败原因已提交 planner) failed.desc 改用第三方数据库查询竞品B信息 failed.status Status.PENDING return steps def run(goal: str, max_rounds: int 10, max_retries: int 1): steps fake_llm_plan(goal) context {} for round_i in range(max_rounds): # 找出所有依赖已满足的待执行步骤真实场景可并行 ready [s for s in steps if s.status Status.PENDING and all(next(x for x in steps if x.id d).status Status.DONE for d in s.depends_on)] if not ready: break for step in ready: try: step.result execute_step(step, context) step.status Status.DONE context[step.id] step.result print(f [OK] {step.id}: {step.desc}) except Exception as e: step.retries 1 print(f [FAIL] {step.id}: {e} (第{step.retries}次)) if step.retries max_retries: step.status Status.FAILED steps replan(goal, steps, step) done all(s.status Status.DONE for s in steps) print(f任务{完成 if done else 未完成}共 {round_i1} 轮调度) return context if __name__ __main__: result run(调研竞品A和B并输出对比报告) print(json.dumps(result, ensure_asciiFalse, indent2))运行后可以看到完整过程s1/s2 并发就绪 → s2 失败重试 → 重试再失败触发重规划 → 替代方案执行成功 → 依赖满足后 s3、s4 顺序完成。这段代码覆盖了面试手撕 planner 的全部得分点DAG 依赖调度、失败重试、重规划、预算控制。五、规划质量的评估与提升评估规划是中间产物直接评估的常用维度是——计划可执行率每步是否对应可用工具、步骤冗余率、依赖正确率端到端则看任务成功率与平均步数。学术界有 PlanBench 等基准工业界更多用人工抽检 端到端 A/B。提升手段按性价比排序Few-shot 计划示例在 planner prompt 里放 2~3 个高质量计划范例是最便宜有效的手段结构化输出约束JSON Schema 强制输出步骤对象杜绝自然语言计划的解析失败工具清单注入规划时把可用工具及其能力描述给 planner避免规划出无法执行的步骤——计划与工具脱节是新手 Agent 最常见的失败模式计划评审plan critique让另一个 LLM 调用审查计划的完整性与可行性再执行成本换质量微调专用 planner积累了足够的任务优质计划数据后微调小模型做规划降本增效。六、面试答题框架与高频题设计一个能完成订机票订酒店生成行程单的 Agent推荐作答结构范式选择结构较确定Plan-and-Execute 优于纯 ReAct机票和酒店查询无依赖可并行行程单依赖前两者计划表示JSON 步骤对象 depends_on 字段DAG 调度异常路径航班无票→重规划改时间酒店与航班日期冲突→触发一致性校验步骤人机交互点支付前必须人工确认高风险动作卡点预算控制最大步数与重规划次数上限。其他高频题速答要点ReAct 和 Plan-and-Execute 怎么选——任务步数少、探索性强用 ReAct步骤可预估、要控成本用 PE实践常用混合全局 PE单步内部 ReAct。计划过时怎么办——答重规划三触发条件失败、假设不符、需求变更 保留已完成工作。怎么防止 Agent 死循环——步数/token/重规划次数三重预算 重复动作检测同一工具同参数连续调用 N 次强制终止。自检清单能说清 ReAct 的三个结构性缺陷吗能手写带依赖的任务调度吗知道 ReWOO 的变量引用机制吗能列出重规划的三个触发条件吗这四点齐了规划环节就能答出区分度。下一篇讲记忆系统短期记忆、长期记忆、向量化检索记忆的设计与代码实现。

相关新闻

Jellium Desktop界面动画性能测试:测量动画性能

Jellium Desktop界面动画性能测试:测量动画性能

Jellium Desktop界面动画性能测试:测量动画性能 【免费下载链接】jellium-desktop An unofficial desktop client for Jellyfin 项目地址: https://gitcode.com/GitHub_Trending/je/jellium-desktop Jellium Desktop作为一款非官方的Jellyfin桌面客户端&…

2026/10/5 12:01:02 阅读更多 →
合规可控、查重无忧:5 款 AI 论文辅助工具深度测评,解锁学术写作效率与质量双提升

合规可控、查重无忧:5 款 AI 论文辅助工具深度测评,解锁学术写作效率与质量双提升

当下高校对学术诚信、AI 内容溯源、重复率管控日趋严格,不少毕业生和科研人员陷入两难:纯手动撰写耗时耗力,普通 AI 工具又存在查重飘红、AI 痕迹过重、内容逻辑生硬、稿件泄露等风险,极易被导师质疑学术规范性。真正靠谱的论文 A…

2026/10/10 23:07:37 阅读更多 →
AI写论文,如何做到合规、查重安全、导师不质疑?这5款工具给出了答案

AI写论文,如何做到合规、查重安全、导师不质疑?这5款工具给出了答案

毕业季的“论文急诊室”年年开张,只是今年的“急诊项目”换了新花样。传统“查重率”的焦虑还没消散,“AIGC疑似率”这枚新核弹,直接把无数学子的毕业梦炸得外焦里嫩。好不容易用各种AI工具把查重率压到15%以内,结果打开检测报告&…

2026/10/13 15:47:03 阅读更多 →

最新新闻

参数估计实战:从数学公式到工程落地的七道关卡

参数估计实战:从数学公式到工程落地的七道关卡

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:40:10 阅读更多 →
CSS边框内圆角实现方案:解决高保真UI的像素级痛点

CSS边框内圆角实现方案:解决高保真UI的像素级痛点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:40:10 阅读更多 →
多媒体实验报告:图像音频视频处理与参数避坑指南

多媒体实验报告:图像音频视频处理与参数避坑指南

简介:本资源是一份面向计算机及相关专业本科生的Authorware多媒体实验报告,记录“文字的滚动效果”的完整实现过程,重点讲解显示、等待、运动、擦除等图标在动态文字展示中的组合应用。报告按实验步骤展开,包含背景与文字导入、移…

2026/10/14 1:40:10 阅读更多 →
3天从85%降到20%!这3个AI智能降重工具让我顺利通过盲审

3天从85%降到20%!这3个AI智能降重工具让我顺利通过盲审

还记得上周三凌晨两点,当我第三次收到知网AIGC检测报告时,手心都在冒汗——85%的AI相似度,40%的查重率,这意味着我的毕业论文根本达不到盲审要求。导师直接在我的初稿上批注“学术合规性存疑,建议重写”。距离最终答辩…

2026/10/14 1:40:10 阅读更多 →
QPdfium集成指南:Qt PDF渲染内核配置与踩坑实战

QPdfium集成指南:Qt PDF渲染内核配置与踩坑实战

简介:这是一份面向Qt开发者的PDF功能集成库,基于Google pdfium开源引擎封装,专为MSVC2017 64位环境编译。它可将PDF页面渲染为QImage,便于在Qt程序中解析、显示和处理PDF文档,适合需要快速为桌面应用添加PDF阅读、打印…

2026/10/14 1:40:10 阅读更多 →
DSO编译运行实战:从环境配置到参数调优全解析

DSO编译运行实战:从环境配置到参数调优全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:39:10 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →