本文首发于同名公众号,欢迎点赞收藏转发

你有没有见过这种AI:

让它做点事,它一顿操作猛如虎,结果发现把事情搞砸了。该查的资料没查,该用的工具没用,顺序乱七八糟,最后还振振有词:“我已经完成了任务。”

这就是缺乏规划能力的典型表现。

我之前踩过这个坑。

让一个Agent帮我做市场调研,我以为它会自动去查数据、整理分析、生成报告。结果它直接给我编了一份"看起来很专业"的假报告。

从那以后我就明白了一个道理:没有规划能力的Agent,比没有Agent更危险。

因为它会给你一个错误的信心,让你以为事情做好了。


先说个真实的痛点

没有规划的Agent,表现出来的样子其实很有迷惑性。

你以为它在思考,其实它只是在"接话"。你给一个指令,它立刻给一个回应,看起来反应很快、很积极。但仔细一看,它根本没有想过:这个任务分几步,每一步需要什么信息,如果中间出错了怎么办。

它只是看起来在干活,实际上在瞎做。

更糟糕的是,没有规划的Agent特别擅长"一本正经地胡说八道"。你让它查数据,它可能直接编一个。你让它分析问题,它可能给出一个听起来很有道理但完全站不住脚的结论。因为它没有"检查自己"的机制,给出第一个答案就当最终答案了。

为什么会这样?因为它没有规划能力。

规划的本质是在行动之前先想清楚。这件事要分成几步,每一步需要什么信息,如果走不下去了怎么办。这些问题没有在脑子里过一遍,就直接动手做,结果必然是漏洞百出。

人做事也是这样。不经过思考就动手的人,永远做不好事情。AI Agent同理。


为什么规划很重要

先看一个没有规划的Agent会怎么完成任务。

任务:帮用户安排一周的健身计划

无规划Agent的做法

它看到任务,立刻开始生成计划。它不问用户的健身基础,不考虑用户的时间安排,不检查动作难度,不提供备选方案。反正用户让做计划,它就做一份计划出来,做完就算完成任务。它甚至不知道自己做的计划有没有用,因为根本没有"评估"这个环节。

有规划Agent的做法

它看到任务,第一反应不是动手,而是思考。它会想:这是一个健身计划,需要了解用户的情况才能制定。那就先问几个关键问题——用户的健身目标是什么,身体状况如何,每周能抽出多少时间锻炼。问清楚之后,它才会开始制定计划。它会想:计划制定好了,但这个强度对用户来说合不合适?需要设置一些检查点,比如"如果用户反馈某个动作太难,就自动降低强度"。它还会想:万一用户这周要加班,计划被打乱了怎么办?那就准备一个简化版的备选计划。

区别在哪里?

无规划Agent的逻辑是"输入→生成→输出",中间没有任何缓冲和检查。有规划Agent的逻辑是"理解目标→收集信息→制定计划→评估风险→制定备选→输出执行"。前者看起来快,实际上做了大量无用功,因为做出来的东西根本不能用。后者多花了几秒钟思考,但产出的东西是真的靠谱的。

这背后的本质区别是:无规划Agent在执行,有规划Agent在决策。

执行和决策是两码事。执行是把事情做完,决策是判断这件事值不值得做、应该怎么做、做成什么样算成功。没有决策的执行,就是瞎干。


规划的三个核心问题

想让Agent真正具备规划能力,需要解决三个核心问题:

问题一:目标理解。

Agent要能准确理解你想做什么。这听起来简单,其实很难。

用户的指令往往是模糊的。“帮我做一份健身计划”,这句话信息量巨大——什么类型的健身,增肌还是减脂,用户有没有运动基础,每周能练几天,每次能练多久,在家练还是去健身房。这些信息不明确,出来的计划大概率是废的。

所以规划的第一步,往往是追问和澄清。Agent要学会在信息不足的时候停下来问问题,而不是硬着头皮瞎猜。

问题二:步骤拆解。

明确了目标之后,要把大任务拆成小步骤。

"写一份市场调研报告"这个任务,拆开来是:确定调研范围,收集行业数据,收集竞品信息,分析数据,发现问题,提出建议。每个步骤还可以继续拆。收集行业数据又可以拆成:查什么数据,用什么工具查,查到什么程度算够用。

这一步考验的是Agent对任务的理解深度。拆得越细,执行越准确;拆得越粗,执行越容易走偏。

问题三:自我检查。

计划执行过程中,要能发现问题和错误,并及时调整。

Agent执行任务的时候,很容易陷入"隧道视野"——埋头干活,不抬头看路。明明走错了方向,还在继续往前冲。所以规划系统里必须有"检查点",让Agent定期停下来想一想:我走的这条路对吗?有没有更好的走法?如果发现错了,能不能回退重来?


三种主流规划框架

解决上面三个问题,业界已经沉淀出三种主流方法:

CoT(Chain of Thought):思维链
ReAct(Reasoning + Acting):推理+行动
ToT(Tree of Thought):思维树

从简单到复杂,一个一个说。


CoT:思维链

什么是思维链

思维链的核心思想很简单:让Agent在回答之前,先把思考过程说出来。

普通模式下,你问AI一个问题,它直接给答案。思维链模式下,你问AI一个问题,它先输出推理过程,再给答案。这个推理过程就是"思维链"。

举个例子。普通模式问AI:“2x + 5 = 15,求x等于多少?” AI直接输出:“x = 5”。你不知道它怎么算出来的,也不知道这个答案对不对。

思维链模式问同样的问题,AI会输出:

首先,这是一个一元一次方程。
然后,把常数项移到等号另一边:2x = 15 - 5 = 10。
接着,两边同时除以2:x = 10 ÷ 2 = 5。
最后,验证:把x = 5代入原方程,2×5 + 5 = 10 + 5 = 15,等式成立。
所以,x = 5。

每一步怎么来的,清清楚楚。

为什么有效

说出来,会让思考更清晰。人在解释推理过程的时候,往往会发现自己的漏洞。AI也一样。当它需要"说清楚为什么",就会减少瞎猜。

思维链之所以有效,背后的原理是:语言是思维的载体,让AI解释推理过程,某种程度上是在强迫它"认真想"。 不解释的时候,它可以用概率最高的词来糊弄。解释了之后,每一个逻辑步骤都必须自洽,漏洞就藏不住了。

还有一个原因是,思维链把一个复杂问题拆成了多个简单步骤。每一步都是简单的推理,比直接跳到最终答案容易得多。就像做数学题,把大题拆成小题,每小题单独做对,大题自然就对了。

适用场景

思维链最适合两类任务。

第一类是数学问题。数学推理有清晰的逻辑链条,最适合用思维链来展示。Agent做数学题的时候,如果先把推理步骤写出来,往往能避免粗心导致的计算错误。

第二类是逻辑推理。比如"如果A,则B;B成立,所以A一定成立吗?"这类问题。思维链能帮助Agent看清楚推理的结构,避免跳步和循环论证。

但思维链有局限。它适合"一步接一步"的问题,不适合"这一步有很多种走法"的问题。数学推导是一条路走到底的,但很多实际问题有分叉口——这一步往左还是往右,效果完全不同。

遇到分叉路口的问题,思维链就不够用了,需要更高级的框架。


ReAct:推理+行动

什么是ReAct

ReAct比思维链更进一步。它不仅让AI说出思考过程,还让AI把思考变成行动

不是一次性想完再执行,而是边想边做,边做边想

思维链的循环是"思考→思考→思考",想清楚了再行动。ReAct的循环是"思考→行动→观察→思考→行动→观察",每一步行动之后,都停下来观察结果,根据结果调整下一步的行动。

打个比方。思维链像是一个人先把路线在脑子里想清楚,然后出发,一路不换方向走到终点。ReAct像是一个人出发了,但每隔一段路就抬头看看:我走对了吗?前面有没有堵车?需不需要换条路?

核心循环

ReAct的循环由三个节点构成:Thought(思考)、Action(行动)、Observation(观察)。

Thought是Agent的推理环节,它在分析当前情况、判断下一步该做什么。Action是Agent调用工具执行具体的操作,比如搜索、计算、查询数据库。Observation是行动的结果,Agent看到了结果,会更新自己的认知,然后进入下一轮循环。

循环会一直持续,直到Agent认为任务完成了。

一个例子

任务:查特斯拉最近的新闻,写一份简报

如果不用ReAct,Agent会怎么干?它可能直接搜"特斯拉",拿到一堆结果,然后立刻开始写报告。这种做法的问题是什么?没结构、没重点、不知道哪些信息重要。

用ReAct的做法:

第一轮,Agent先想:用户需要特斯拉的简报,但我需要先确定要查哪些方面。财报最重要,新产品发布也很关键,还有市场反应不能忽视。那就先从财报入手。所以第一轮的行动是调用搜索工具,关键词"特斯拉 最新 财报"。

第二轮,Agent观察第一轮的结果:搜到了财报数据,营收多少、利润多少、同比变化。数据有了,但光有财报不够,还需要市场反应。第二轮的行动是调用搜索工具,关键词"特斯拉 股价 分析"。

第三轮,Agent观察第二轮的结果:股价下跌了,可能跟财报不及预期有关。市场情绪偏悲观。那再查一下分析师怎么说。第三轮的行动是调用搜索工具,关键词"特斯拉 分析师评级"。

第四轮,Agent观察第三轮的结果:主流分析师维持中性评级,但下调了目标价。信息差不多了,可以开始写了。第四轮的行动是生成报告。

为什么有效

复杂任务不能一步到位,必须分阶段推进。

ReAct的核心价值是把一个大问题分解成多个小问题,每个小问题通过一次"思考-行动-观察"循环来解决。每解决一个小问题,就向最终目标前进一点,同时积累新的信息,为下一步做准备。

还有一个关键点:ReAct有"自我纠错"的能力。Agent在观察环节能看到上一步的结果,如果发现结果不对,可以立刻调整方向。思维链没有观察环节,想错了就一路错到底。ReAct加入了观察,就像给AI装了一个"回头检查"的开关。

ReAct是目前Agent开发中最常用的规划框架。 大部分Agent任务都涉及工具调用,而ReAct天然适合"调用工具-获取结果-判断下一步"这种模式。它的"思考-行动-观察"循环,和Agent调用工具的工作流高度吻合。


ToT:思维树

什么是思维树

ToT比ReAct更激进。

思维链是一条路走到底,ReAct是走一段检查一段,思维树是同时探索多条路,每条路都试试看哪个更好

思维树的核心思想是:遇到问题时,先生成多个可能的方案,然后对每个方案进行评估,淘汰差的,保留好的,对好的方案继续分叉探索,最后从多条路径中找到最优解。

为什么需要多路探索

有些问题,一个方向想不通,需要"换条路试试"。

比如"给创业项目起名字"这个任务。一个方向是走科技感路线——星辰、曙光、凌霄;另一个方向是走温暖感路线——归途、暖阳、知还;再一个方向是走国际感路线——Wedo、Onek、Ovant。三个方向各有优劣,不试怎么知道哪个最好?

用思维链,只能走一条路,走到死胡同才发现走不通。用ReAct,可以走一段检查一段,但如果第一步就选错了方向,检查也救不了你。用ToT,三条路同时探索,哪个方向走得通就用哪个,最后从多条路里选出最优解。

ToT的工作流程

第一步,面对问题时,先生成多个候选方案。比如创业项目起名字这件事,先生成三个方向:科技感、温暖感、国际感,每个方向下面再想几个具体名字。

第二步,对每个方案进行初步评估。科技感的名字有没有歧义?听起来会不会太冷?温暖感的名字会不会太文艺不够商业?国际感的名字翻译成英文好不好听?

第三步,淘汰明显不行的,保留有潜力的。比如评估发现科技感方向最稳妥,温暖感方向太文艺,那就重点发展科技感方向。

第四步,对保留的方案继续分叉。科技感方向继续探索:星辰、曙光、凌霄、穹顶、玄霄……每个名字再想想对应的域名、商标注册难度。

第五步,综合评估,选出最优解。综合考虑名字的好记程度、域名可用性、商标注册难度,选出最合适的那一个。

ToT的资源消耗

ToT是三种框架里资源消耗最大的。思维链只需要跑一次推理,ReAct需要跑多次循环,ToT需要同时跑多个分支的推理。每个分支都要消耗token和计算资源,最终还要在多个结果里做选择。

所以ToT不是万能的。它适合开放性问题——没有标准答案,需要多方案比较,比如起名字、写文案、做创意策划。不适合封闭性问题——有标准答案,做对了就行,不需要多路探索。


三种框架怎么选

三种框架各有各的场景,选错了就会浪费资源。

CoT适合:数学推导、逻辑推理、有标准答案的分类问题。特点是问题有清晰的推理链条,一步接一步,不需要回头。

ReAct适合:需要调用工具的复杂任务、实时信息查询、多步骤操作流程。特点是任务分多步完成,每一步可能依赖上一步的结果,需要边做边调整。

ToT适合:开放性任务、创意类任务、多方案比较的决策。特点是问题没有唯一解,需要探索多种可能性,从中选择最优。

从使用频率来看,ReAct是最常用的,因为大部分Agent任务都涉及工具调用,ReAct的"思考-行动-观察"循环天然适配这种场景。CoT用得也不少,特别是在需要AI解释推理过程的场景。ToT用得相对少,因为资源消耗大,一般只有当问题确实需要多路探索时才用它。

实际开发中,三种框架经常组合使用。比如一个复杂任务,可以外层用ToT探索大的方向,内层用ReAct执行具体的步骤,步骤内的简单推理用CoT。三层嵌套,灵活应对不同层级的规划需求。


规划的常见问题

问题一:规划太长,上下文不够

复杂任务可能需要几十步,但上下文窗口有限。Agent不是无限聪明的,它能同时处理的信息量是有物理极限的。

解决这个问题的思路有几个方向:

压缩中间步骤。不记录每一步的完整推理过程,只保留关键决策点。比如"第一轮查到财报数据,关键信息是营收增长15%",而不是把完整的搜索过程和结果都存下来。

使用外部记忆。把中间结果写到外部存储(比如向量数据库或普通数据库),需要的时候再读出来。这样上下文窗口就不用存所有信息,只存"索引"就够了。

分层规划。把大规划拆成小阶段,每个阶段单独执行。第一阶段完成后,清理上下文,进入第二阶段。这样每次规划都控制在合理长度内。

问题二:规划错了,一条路走到黑

Agent有时候会"迷之自信",明知道走错了还继续。这在心理学上叫"确认偏误"——一旦形成判断,就倾向于寻找支持这个判断的证据,忽略反驳的证据。

Agent也有这个问题。如果它的初始判断是错的,它会倾向于选择性地关注支持这个判断的信息,忽略否定的信息。

解决方案:

增加检查环节。每隔几步,就让Agent停下来问自己:这个方向是对的吗?有没有什么信号说明我可能错了?如果有,给自己拉响警报。

设定回退机制。如果Agent发现走了几步之后方向不对,允许回到之前的某个检查点,换个方向重新来。不要硬撑着把错误的路走完。

限制单步尝试次数。Agent做某个决策时,如果试了N次还不成功,就说明这个方向可能有根本性问题,强制换方向。

问题三:工具调用失败,规划卡住

规划是纸上的,工具是真实的。纸上写得再漂亮,工具不配合也白搭。

网络超时、API限流、权限不足、数据格式不对——这些都可能导致工具调用失败。一个好的规划系统,要为可能的失败提前做准备。

解决方案:

准备备选工具。Plan A是调用Google搜索,Plan B是调用DuckDuckGo,Plan C是调用Wikipedia API。三个工具功能相近,一个不行换另一个,规划不依赖某一个特定工具。

提前规划失败处理。比如调用搜索工具失败,Agent要能判断:是因为网络问题还是因为关键词不对?如果是关键词不对,就调整关键词重试;如果是网络问题,就等几秒再试或者换工具。

允许动态调整计划。规划不是一成不变的。工具调用失败后,Agent应该能调整计划:原来的路线走不通,那就换条路;原来的工具用不了,那就找替代工具。


我的观点

规划能力是Agent从"能用"到"好用"的关键。

没有规划的Agent,就像一个不会做事的实习生——交代什么做什么,但不会主动思考。你说一步,它做一步,多一步都不会。你没考虑到的情况,它也不会帮你考虑。这种Agent用起来很累,你需要事无巨细地把每个环节都想清楚,Agent只是帮你执行。

有规划的Agent,才能真正理解你的目标,然后找到路径。你只需要说"帮我做一份市场调研",Agent会自动拆解任务、调用工具、收集信息、生成报告。它知道这件事应该分几步,每步做什么,遇到问题怎么调整。你不需要想那么细,Agent帮你想。

但规划也有边界。

规划的前提是Agent知道有什么工具可以用、有什么限制要遵守。如果Agent根本不知道某个工具存在,它就不可能规划出"调用这个工具"这一步。如果Agent不知道某个领域的知识,它规划出来的方案就可能在专业问题上出错。

所以规划能力不是孤立的,它需要配合其他能力才能发挥作用。丰富的工具生态决定Agent能做什么,准确的知识储备决定Agent的规划有没有专业性,灵活的回退机制决定Agent错了能不能改。这三者配合,才能做出真正靠谱的规划。


下期预告

一个人能力再强,也有短板。

Agent也是一样。一个Agent专做所有事,可能每样都做不到最好。一个Agent查资料很强,但写文案一般;另一个Agent写文案很强,但查资料一般。有没有一种方式,让它们合作?

下一期,我们来看多个Agent如何协作:Multi-Agent系统是怎么工作的。一个负责查资料,一个负责写文案,一个负责审核把关——这种分工模式,能让每个Agent都做自己最擅长的事。


完整版合集、面试题库、企业实战,全网同名【图解 AI 系列】

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐