05-规划能力:任务分解与多步推理
规划能力:任务分解与多步推理
复杂任务不能一步做完,Agent 需要能把大目标拆成小步骤,一步步执行。这篇讲 Agent 的规划能力:任务分解的方法、Chain of Thought、Tree of Thoughts、Plan-and-Execute 模式,以及规划失败了怎么调整。
大家好,我是黒漂技术佬。
简单的问题,Agent 调用一两个工具就解决了。但复杂任务呢?比如「调研 5 个竞品,写一份对比分析报告」,涉及搜索、整理、对比、写作,好多步骤。这就需要 Agent 有规划能力:先拆解任务,再按计划执行。
这篇讲 Agent 怎么规划:任务分解、CoT、ToT、Plan-and-Execute、自我修正。
一、为什么需要规划?
简单任务 vs 复杂任务
简单任务(1-2 步):
- "北京天气怎么样?" → 调用天气工具 → 回答
- "123×456等于多少?" → 调用计算器 → 回答
ReAct 循环走一两步就搞定。
复杂任务(多步骤):
- "调研主流 RAG 框架,对比优缺点,写个选型建议"
- "帮我做一份下周去上海的行程安排,包括交通、住宿、会议"
- "分析我们产品上个月的用户留存下降原因"
涉及多个步骤、多个工具、中间还要判断调整。没有规划的话,Agent 容易走一步看一步,跑偏、遗漏、效率低。
规划的作用
- 拆解大任务:把大目标拆成可执行的小步骤
- 减少走偏:有计划就不容易跑题
- 提高效率:知道哪些可以并行、哪些有依赖
- 可追溯:有计划就能看做到哪了、为什么这么做
二、Chain of Thought(思维链)
是什么
让模型一步步思考,把推理过程说出来,而不是直接给答案。
例子
没有 CoT:
问题:一个球和一个球拍一共11元,球拍比球贵10元,球多少钱?
回答:1元。(错的)
有 CoT:
问题:一个球和一个球拍一共11元,球拍比球贵10元,球多少钱?
思考:设球x元,球拍就是x+10元。加起来x + (x+10) = 11 → 2x+10=11 → 2x=1 → x=0.5。
回答:0.5元。(对的)
把思考过程写出来,正确率大幅提升。
Zero-shot CoT
不用给示例,加一句「请一步步思考」就行:
让我们一步步来思考这个问题。
简单有效。
Few-shot CoT
给几个带思考过程的示例,效果更好:
示例1:
问题:...
思考:...
答案:...
示例2:
问题:...
思考:...
答案:...
现在回答:
问题:xxx
适用场景
- 数学推理
- 逻辑题
- 需要多步推导的问题
- 简单的任务规划
CoT 是最基础的推理增强方法,几乎所有 Agent 都在用。
三、任务分解(Task Decomposition)
是什么
把一个复杂目标拆成多个子任务,每个子任务是一个可执行的小步骤。
怎么拆?
方法 1:让模型自己拆
请把以下任务分解为具体的执行步骤:
任务:调研主流RAG框架并写选型建议
输出格式:
1. 步骤一:xxx
2. 步骤二:xxx
...
模型输出:
1. 确定主流的RAG框架有哪些(LangChain、LlamaIndex、Haystack等)
2. 分别搜索每个框架的特点、优缺点、适用场景
3. 整理对比维度(功能、性能、易用性、社区、 license)
4. 制作对比表格
5. 撰写选型建议
6. 输出完整报告
方法 2:模板化分解
特定类型的任务用固定模板,比如调研报告就是「确定范围 → 收集信息 → 整理对比 → 撰写结论」。
优点:稳定可控;缺点:不够灵活。
分解的原则
- 每个子任务要具体可执行,不能还是模糊的大目标
- 有明确的输入输出,做完一个知道结果是什么
- 考虑依赖关系,哪些要先做,哪些可以并行
- 粒度适中,太细了步骤多效率低,太粗了不好执行
四、Plan-and-Execute 模式
是什么
先做完整计划,再按计划一步步执行。跟 ReAct 的「走一步看一步」不同,Plan-and-Execute 是「先想好全部,再按顺序做」。
流程
用户任务
↓
规划阶段:生成详细的执行计划(步骤列表)
↓
执行阶段:按计划一步步执行
↓
(可选)重规划:遇到问题调整计划
↓
最终输出
两个角色
可以是一个模型干两件事,也可以拆成两个 Agent:
- Planner(规划者):负责拆解任务、制定计划
- Executor(执行者):负责执行每个步骤,调用工具
优点
- 任务结构清晰,不容易跑偏
- 可以看到整体计划,用户知道要做什么
- 复杂任务表现更好
缺点
- 计划可能不符合实际,执行到一半发现不对
- 不够灵活,遇到意外情况需要重规划
适用场景
- 任务比较明确、步骤可预测
- 调研报告、数据分析、内容创作这类结构化任务
五、Tree of Thoughts(思维树)
是什么
不只是一条线思考,而是探索多个可能性,像树一样展开,选最好的路径。
跟 CoT 的区别
- CoT:一条路走到黑,错了就错了
- ToT:生成多个候选思路,评估哪个好,选最优的继续
流程
当前问题
↓
生成3个可能的下一步思路
↓
评估每个思路的可行性(打分)
↓
选最好的1-2个继续展开
↓
... 层层深入 ...
↓
选最终最优的答案
优点
- 复杂推理问题效果更好
- 不容易钻牛角尖,能探索多种可能
缺点
- 调用次数多,慢且贵
- 实现复杂
适用场景
- 高难度推理题
- 需要创意、多种方案的问题
- 对正确率要求高的场景
一般业务 Agent 用不上这么重的,CoT + 规划就够了。
六、反思与自我修正(Reflection / Self-Correction)
是什么
做完之后自己检查一下,做得好不好、对不对,不好就改。
自我反思流程
执行任务 → 生成初步结果
↓
反思:这个结果对吗?有没有遗漏?哪里可以改进?
↓
有问题 → 修正 → 再反思 → 直到满意
↓
输出最终结果
反思 Prompt
请检查上面的回答,从以下维度评估:
1. 准确性:事实是否正确?
2. 完整性:有没有遗漏关键点?
3. 逻辑性:推理是否合理?
4. 相关性:有没有偏离问题?
如果有问题,请给出修正后的版本。
Reflexion 框架
更正式的反思框架:
- 行动 → 评估 → 反思 → 下次改进
- 把反思存起来,积累经验
适用场景
- 写作类任务:写完自己润色
- 代码生成:写完自己检查 bug
- 复杂推理:算完自己验算
- 质量要求高的输出
缺点是多了一轮(或多轮)调用,更慢更贵。
七、规划失败了怎么办?
常见的规划问题
1. 计划太粗
执行的时候发现一步里面还有好多事,做不完。
解决:动态细化,执行到那一步的时候再拆细。
2. 计划错了
方向不对,或者假设错误。
解决:重规划(Re-planning)。执行中发现不对,停下来重新做计划,继续执行。
3. 步骤有依赖没考虑到
后面的步骤需要前面的结果,但前面没做。
解决:规划时考虑依赖关系,或者动态调整顺序。
4. 工具调用失败
某个工具用不了,或者返回错误。
解决:换工具、换方式,或者跳过(如果不重要)。
动态调整机制
好的 Agent 不是按计划死执行,而是:
- 每执行一步评估一下进展
- 发现偏差就调整计划
- 遇到死路就回溯换方向
八、实际开发中的规划建议
1. 从简单开始
大多数业务场景,ReAct + CoT 就够了,不用上来就搞 ToT、多 Agent 规划。
2. 固定类型任务用模板化规划
比如客服工单处理、数据分析,流程相对固定,预设步骤模板,比让模型自由规划稳定得多。
3. 让用户可见计划
Agent 要做什么,先展示给用户看:
我将按以下步骤完成:
1. xxx
2. xxx
3. xxx
可以吗?
用户可以调整,也更放心。
4. 设置检查点
关键步骤之后检查一下方向对不对,不对及时修正。
5. 控制最大步数
防止死循环,设最大执行轮次,到了就停止并汇报进展。
6. 复杂任务才上重规划
简单任务 ReAct 就行,真的复杂任务再用 Plan-and-Execute + 重规划。
九、不同规划方法对比
| 方法 | 复杂度 | 效果 | 成本 | 适用场景 |
|---|---|---|---|---|
| 直接回答 | 最低 | 简单问题够用 | 最低 | 事实性问答 |
| CoT 思维链 | 低 | 推理题提升明显 | 低 | 数学、逻辑、简单规划 |
| ReAct | 中 | 工具调用场景好 | 中 | 大多数 Agent 场景 |
| Plan-and-Execute | 中高 | 复杂结构化任务好 | 中高 | 调研报告、数据分析 |
| Tree of Thoughts | 高 | 复杂推理最佳 | 很高 | 高难度推理、创意任务 |
| + Reflection 反思 | +1级 | 质量进一步提升 | +50%~100% | 质量要求高的输出 |
十、本篇小结
- 规划能力:把复杂任务拆成小步骤,有序执行,是 Agent 处理复杂任务的关键
- Chain of Thought(思维链):让模型一步步思考,基础且有效,几乎所有场景都能用
- 任务分解:把大目标拆成可执行的子任务,是规划的核心
- Plan-and-Execute:先做完整计划再执行,适合结构化复杂任务
- Tree of Thoughts:多路径探索选最优,效果好但成本高,一般场景用不上
- 反思/自我修正:做完自己检查改进,进一步提升质量
- 规划会失败,需要动态调整、重规划机制
- 实际开发建议:从简到繁,简单任务 ReAct + CoT 就够,复杂的再上 Plan-and-Execute
下一篇讲多 Agent 协作:多个智能体分工合作,各自扮演不同角色,怎么通信、怎么协调。
我是黒漂技术佬。

浙公网安备 33010602011771号