智能体面试准备(十七):HTN 任务分解与规划——让 Agent 面对复杂目标会自己拆计划
智能体面试准备十七HTN 任务分解与规划——让 Agent 面对复杂目标会自己拆计划前面几篇讲了单 AgentReAct、多 AgentB15、安全B16、工具调用B18 待发。但有一个核心能力一直没讲当目标很复杂、步骤很长时Agent 怎么知道先做什么、再做什么、怎么拆这就是任务规划Planning。这一篇聚焦最工程化的规划范式——HTNHierarchical Task Network分层任务网络对比 ReAct 式边走边看讲清楚先计划后执行的价值、实现与自我纠错。每节给原理 → 图解 → 代码 → 面试速答 高频追问。一、为什么 ReAct 不够规划能力的缺失ReAct 是thought → action → observation循环属于反应式reactive每步只基于当前观察决定下一步。面对多步长程任务有两个痛点ReAct 的困境: 目标: 调研竞品并出一份对比报告 问题1: 没有全局计划容易走一步看一步、东一榔头西一棒 问题2: 中途失败不知道回到哪一步重来只能从头再来规划式deliberativeAgent 的答案先生成一份结构化计划再按步执行失败可回滚到计划节点。反应式 规划式 ┌────────────────┐ ┌──────────────────────┐ │ 想一步做一步 │ │ 先 Plan 出任务树 │ │ 易迷路/难回滚 │ │ 再按节点执行可回滚 │ └────────────────┘ └──────────────────────┘二、HTN 是什么用任务网络描述怎么拆HTN 的核心概念原始任务Primitive Task不可再分、可直接执行如打开浏览器调用 search_api。复合任务Compound Task需进一步拆解如调研竞品。方法Method把复合任务拆成子任务序列的规则。任务网络复合任务 方法 约束构成一棵可展开的任务树。复合任务: 写竞品报告 └─ 方法 M1: [调研竞品, 整理数据, 撰写报告, 排版导出] ├─ 调研竞品(复合) │ └─ M1a: [搜索, 筛选Top5, 抓官网] ├─ 整理数据(复合) → [清洗, 建表] ├─ 撰写报告(原始) → 调用 write_agent └─ 排版导出(原始) → 调用 export_tool可以看成自顶向下的递归分解直到所有叶子都是原始任务。三、HTN vs ReAct一张表说清维度ReActHTN 规划决策时机边执行边决策先计划再执行全局观弱只看当前 observation强有完整任务树可回滚难易回退到某计划节点适合任务单步/短程/探索性多步/长程/可分解可控性低高计划可人工审阅LLM 用量每步一次计划一次 每步一次面试速答什么时候用 HTN 而不是 ReAct当任务可预先分解、步骤长、要求可控可回滚如订机票酒店行程用 HTN当任务探索性强、无法预先计划如在网页里找某个隐藏信息ReAct 更合适。工程上常两者结合HTN 出高层计划叶子节点用 ReAct 执行。四、最小可运行一个 LLM 驱动的 HTN 规划器思路让 LLM 充当分解器把复合任务递归拆成计划 JSON执行器逐节点跑失败时触发重规划。importjson,openaidefdecompose(task,depth0,max_depth4):让 LLM 把复合任务拆成子任务列表(原始任务直接返回)ifdepthmax_depth:return[{type:primitive,name:task}]promptf把任务拆成有序子任务JSON。若是不可再分的具体动作返回 typeprimitive否则返回 typecompound 及其子任务列表。任务:{task}respopenai.chat.completions.create(modelgpt-4o,messages[{role:user,content:prompt}])planjson.loads(resp.choices[0].message.content)out[]forsubinplan[steps]:ifsub[type]compound:outdecompose(sub[name],depth1,max_depth)else:out.append({type:primitive,name:sub[name]})returnoutdefexecute(plan):results[]forstepinplan:try:rrun_tool(step[name])# 叶子节点调用具体工具/Agentresults.append((step[name],OK,r))exceptExceptionase:return{failed_at:step[name],done:results,error:str(e)}return{done:results}plandecompose(调研竞品并出对比报告)resultexecute(plan)五、自我纠错失败如何重规划HTN 的真正威力在计划是可执行的树所以失败可定位到节点并重规划而非全盘重来执行: [搜索] OK → [抓官网] 失败(网站 403) ↓ 重规划: 把抓官网替换为 [换源搜索]→[抓镜像]→[摘要] ↓ 继续: 从失败节点往后执行前面 OK 的不重做实现上给执行器加一个重规划钩子defexecute_with_replan(plan,max_retry2):i0whileilen(plan):try:run_tool(plan[i][name]);i1exceptExceptionase:ifmax_retry0:raise# 从失败节点重新分解该子目标plan[i:]decompose(plan[i][name]f(避免:{e}))max_retry-1returndone面试速答HTN 的自我纠错比 ReAct 强在哪ReAct 失败往往只能从头或靠模型回忆HTN 有显式任务树能精准定位失败节点、只对该子树重规划已完成的兄弟节点不浪费效率和可控性都更高。五之二、HTN 与现有框架的混合落地纯 HTN 适合可预先分解的任务但真实业务常是部分可知、部分要探索。工程上的主流折中是分层混合架构高层: HTN 规划器LLM 出任务树可人工审阅 │ ├─ 节点A(复合) → 派给 ReAct Agent 执行探索性子任务 ├─ 节点B(原始) → 直接调工具 └─ 节点C(复合) → 派给多 Agent 协作见 B15这种计划在上、执行在下的结构兼顾了可控性和灵活性计划层保证不跑偏、可回滚执行层用 ReAct/多 Agent 处理不确定性。一个把 HTN 和 ReAct 拼起来的伪代码defrun_agent(goal):plandecompose(goal)# HTN: 先出计划fornodeinplan:ifnode.needs_explore:# 探索性子任务交给 ReActnode.resultreact_loop(node.desc)else:# 确定性子任务直接执行node.resultdispatch(node.tool,node.args)returnsummarize(plan)面试速答为什么工业级 Agent 多用 HTNReAct 混合而非纯 HTN 或纯 ReAct纯 HTN 难处理未知分支纯 ReAct 难控长程混合让已知的提前规划、未知的现场反应兼顾可控与灵活。六、面试速答 高频追问清单汇总速答 TOP 81. HTN 分层任务网络复合任务按方法递归拆成原始任务树。2. 三类要素复合任务 / 原始任务 / 方法拆解规则。3. ReAct 反应式、HTN 规划式长程可控任务选 HTN。4. HTN 优势全局计划、可回滚、可人工审阅。5. 工程上常 HTN 出高层计划 叶子用 ReAct 执行。6. 自我纠错靠失败定位到节点 子树下重规划。7. max_depth 防止无限递归分解。8. LLM 在这里当分解器也可换成规则引擎。追问清单- HTN 的计划质量问题怎么保证LLM 拆错了怎么办- 和经典规划如 PDDL/STRIPS比LLM-HTN 的优劣势- 多 Agent 下HTN 的计划如何分配给不同 Agent结合 B15- 计划里的约束先后顺序/互斥怎么表达- 怎么让计划可解释、可被人工编辑七、下一篇预告规划讲完怎么拆下一篇B18讲Function Calling 全链路——Agent 真正动手的最后一公里从工具 schema 定义、模型如何决定调用、参数解析、并行调用到错误处理。评论区告诉我你想先听哪个。

相关新闻

27届大模型面试准备(十八):LoRA 与 PEFT 全攻略——低秩适配、QLoRA、省显存微调全家桶

27届大模型面试准备(十八):LoRA 与 PEFT 全攻略——低秩适配、QLoRA、省显存微调全家桶

27届大模型面试准备(十八):LoRA 与 PEFT 全攻略——低秩适配、QLoRA、省显存微调全家桶上一篇《分布式训练全攻略》讲了"怎么把大模型训起来",但那是实验室/大厂的事——普通人没有几百张卡。这一篇讲"普通人怎么低…

2026/8/7 16:30:08 阅读更多 →
Windows隐私守护神:Boss-Key老板键一键隐藏敏感窗口

Windows隐私守护神:Boss-Key老板键一键隐藏敏感窗口

Windows隐私守护神:Boss-Key老板键一键隐藏敏感窗口 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公环境中&#…

2026/8/7 16:29:08 阅读更多 →
IIC通信协议详解:从两线制原理到嵌入式实战调试

IIC通信协议详解:从两线制原理到嵌入式实战调试

1. IIC通信协议:嵌入式开发中的“老管家” 在嵌入式系统的世界里,各种传感器、存储芯片、显示屏等外设就像一个个性格各异的“房客”,而微控制器(MCU)则是这座“智能公寓”的“房东”。要让房东和房客之间高效、有序地…

2026/8/7 16:29:08 阅读更多 →

最新新闻

破局最厉害的三种绝招

破局最厉害的三种绝招

“破局”没有放之四海而皆准的“绝招”,但综合思维模型与实践智慧,以下三种方法被广泛认为是突破困境的关键: 1. 逆向思维:反向思考,规避陷阱 当正向努力无效时,从目标终点或问题反面切入。例如&#xff0c…

2026/8/7 17:16:27 阅读更多 →
WorkshopDL终极指南:3步轻松获取Steam创意工坊模组,告别平台限制烦恼

WorkshopDL终极指南:3步轻松获取Steam创意工坊模组,告别平台限制烦恼

WorkshopDL终极指南:3步轻松获取Steam创意工坊模组,告别平台限制烦恼 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在Epic Games Store购买了《…

2026/8/7 17:16:27 阅读更多 →
X-VLA-WidowX论文精读:软提示Transformer如何突破跨机器人学习瓶颈

X-VLA-WidowX论文精读:软提示Transformer如何突破跨机器人学习瓶颈

X-VLA-WidowX论文精读:软提示Transformer如何突破跨机器人学习瓶颈 【免费下载链接】X-VLA-WidowX 项目地址: https://ai.gitcode.com/hf_mirrors/2toINF/X-VLA-WidowX X-VLA-WidowX是一款基于软提示Transformer的跨机器人学习模型,它通过创新的…

2026/8/7 17:16:27 阅读更多 →
基层、中层、高层,打的根本是不同的仗

基层、中层、高层,打的根本是不同的仗

我讲一个自己的故事。 进国企的上半年,我是出纳。每天跟凭证、发票、银行回单打交道。那时候我以为,只要我把活干好,领导总会看见的。 第三年,我成了子公司最年轻的部长助理。领导告诉我,当初注意到我,是…

2026/8/7 17:16:27 阅读更多 →
汽车控制器核心原理与开发实战:从VCU、BMS到MCU算法详解

汽车控制器核心原理与开发实战:从VCU、BMS到MCU算法详解

1. 汽车控制器:智能汽车的“神经中枢”与“决策大脑” 当你坐进一辆现代汽车,按下启动按钮,仪表盘亮起,空调自动调节到舒适温度,车辆平稳驶出——这一系列看似简单的动作背后,是一套复杂而精密的电子系统在…

2026/8/7 17:16:27 阅读更多 →
Switch引导程序hekate完全指南:从入门到精通的5个核心技巧

Switch引导程序hekate完全指南:从入门到精通的5个核心技巧

Switch引导程序hekate完全指南:从入门到精通的5个核心技巧 【免费下载链接】hekate hekate - A GUI based Nintendo Switch Bootloader 项目地址: https://gitcode.com/gh_mirrors/he/hekate hekate是一款功能强大的Nintendo Switch自定义图形化引导程序&…

2026/8/7 17:15:26 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →