复杂任务怎么拆:计划—执行—检查,比“一次生成完”可靠

复杂任务怎么拆:计划—执行—检查,比“一次生成完”可靠
如果你让 AI 完成一个复杂任务,最容易犯的错误是什么?
不是 Prompt 写得不够长,也不是模型“不够聪明”。
而是——你把十几件事情一次性交给它,然后只检查最终结果。
比如你对一个 Agent 说:

“读取我的课程资料,整理知识点,判断重点,制定复习计划,再检查有没有遗漏,最后生成一份完整文档。”

看起来很合理。
但真正执行的时候,只要其中一个环节出了问题,你就会立刻遇到一个麻烦:
到底是哪一步错了?
是文件没读完整?
是知识点提取漏了?
是重点判断错了?
还是复习计划本身存在时间冲突?
如果整个任务从输入到输出只有一次“大生成”,你通常只能看到最终答案,却很难判断问题究竟发生在哪里。
所以这一期,我们继续把 Agent 从“能做事”推进到“能比较可靠地做复杂事情”。
核心方法其实只有三个词:
计划 → 执行 → 检查。

一、复杂任务真正的问题,不是“步骤多”

很多人第一次做 Agent,会本能地认为:
模型能力越强,就应该一次让它完成越多事情。
于是 Prompt 越写越长:
“先分析……然后搜索……接着判断……最后生成……”
这实际上把大量不同性质的任务塞进了一次模型调用里。
问题在于,复杂任务往往存在依赖关系。
比如“整理一份期末复习资料”至少可能包含:
读取课程目录
→ 识别章节
→ 提取知识点
→ 判断重点
→ 按重要度分类
→ 根据剩余时间安排复习
→ 检查是否遗漏章节。
后一步依赖前一步。
如果第一步读取资料时就漏掉了第五章,那么后面即使模型写得再漂亮,整个复习计划也可能从根上就是错的。
这也是为什么,真正比较可靠的 Agent 系统,不应该只关心:
“最终生成了什么?”
还应该关心:
“它是怎么一步一步得到这个结果的?”

二、第一步:Plan——先计划,不要急着执行

Plan,也就是计划阶段。
这一阶段不是马上解决问题,而是先回答四件事:
我要完成什么?
需要经过哪些步骤?
每一步依赖什么信息或工具?
什么情况下应该停止?
比如任务是:
“根据课程资料生成一份 7 天复习计划。”
不要直接开始写计划。
先拆成:
① 读取课程目录
② 提取所有章节
③ 提取每章知识点
④ 根据考试范围判断优先级
⑤ 读取每天可用时间
⑥ 生成 7 天计划
⑦ 检查章节是否全部覆盖
⑧ 检查每天学习时间是否超限
这样一拆,系统突然就变得容易检查了。
甚至在真正执行之前,你就可能发现问题:
如果没有考试范围,第四步怎么判断重点?
如果没有用户每天的可用时间,第六步怎么安排?
这就是计划阶段的价值。
它不是为了让 AI“多想一会儿”,而是提前暴露缺失信息和任务依赖。

三、第二步:Execute——一次只做一个可验证动作

计划完成以后,才进入执行阶段。
这里有一个非常重要的原则:
一次尽量只执行一个能够验证的小动作。
例如第一步是:
“读取课程目录。”
那么这一步的输出就应该明确:
读取了几个文件?
识别出多少章节?
有没有文件读取失败?
输出结果是什么?
确认这些信息后,再进入下一步“提取知识点”。
而不是:
文件还没确认读完整,就直接开始生成最终复习表。

四、第三步:Check——不要让“生成完成”等于“任务完成”

这是整个流程里最容易被忽略的一步。
很多 AI 系统的结束条件实际上是:
模型输出了一段文字。
但模型输出完成,不代表任务完成。
真正的完成条件应该来自任务本身。
比如刚才的复习计划,我们至少可以检查:
所有考试章节是否覆盖?
每天总学习时间有没有超过用户的可用时间?
高优先级章节有没有被安排?
有没有重复任务?
有没有章节完全遗漏?
有没有使用不存在的课程资料?
只有这些条件满足,任务才应该被标记为完成。
这里还要注意:
让同一个模型再问自己一句“你检查一下有没有问题”,不能直接等同于独立验证。
更好的方式,是尽可能把检查条件写成明确规则。
例如:
每日计划 ≤ 2 小时;
考试范围中的所有章节必须出现;
所有章节编号必须来自实际课程目录;
读取失败的文件必须标记;
缺失信息不能自行编造。
规则越具体,Agent 就越容易判断:
到底是真的完成了,还是只是“看起来完成了”。

五、用一个完整案例看懂这套方法

假设现在有一个学习 Agent。
用户给出的任务是:
“这是我的课程资料,两周后考试,帮我整理资料并制定复习计划。”
错误做法是:
把所有资料和一句要求直接扔给 AI,然后等待一份几千字的最终答案。
更合理的 Agent 流程应该是:
复杂任务怎么拆:计划—执行—检查,比“一次生成完”可靠

六、为什么这种方式比“一次生成完”更适合 Agent?

因为真实任务几乎不可能永远一次成功。
文件可能打不开。
API 可能超时。
用户可能少给一个参数。
模型可能理解错误。
工具返回的数据也可能为空。
所以一个 Agent 真正需要解决的,并不是:
“怎样让模型永远不犯错?”
而是:
“发生错误以后,我能不能知道哪里错了,并且只修复错误的部分?”
计划,让任务结构可见。
执行,让每一步结果可追踪。
检查,让系统知道什么时候才算真正完成。
三者合起来以后,Agent 才开始从“生成答案的模型”变成“执行任务的系统”。

七、你可以直接保存的 Agent 任务拆解检查表

以后遇到复杂任务,可以先检查下面这些问题:Plan → Execute → Check

01 PLAN 计划

  • □ 目标是否明确
  • □ 步骤是否拆分
  • □ 依赖是否明确
  • □ 需要哪些工具
  • □ 停止条件是什么

02 EXECUTE 执行

  • □ 每一步输入是什么
  • □ 输出是什么
  • □ 结果能否验证
  • □ 失败有没有记录
  • □ 能否只重做失败步骤

03 CHECK 检查

  • □ 完成标准是什么
  • □ 有没有遗漏
  • □ 结果是否来自真实输入
  • □ 有没有把不确定写成完成
  • □ 失败后返工还是人工处理
写在最后
做 Agent 的关键,从来不是把 Prompt 写得越来越长。
真正应该增加的,是任务结构和验证机制。
一个复杂任务,可以先拆成:
Plan:我要怎么做。
Execute:我现在具体做哪一步。
Check:我怎么证明这一步真的完成了。
当每一步都能看到真实输入、真实输出和失败状态以后,Agent 才真正开始具备工程系统应该有的可控性。
而且你很快会发现:
任务拆得再清楚,也不可能保证每个工具永远成功。
网络会断。
接口会超时。
文件可能不存在。
数据库可能返回异常。

 

分享到: 文章二维码
© 版权声明

暂无评论

您必须登录才能参与评论!
暂无评论...