找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4056

积分

0

好友

568

主题
发表于 2 小时前 | 查看: 2| 回复: 0

1. 题目分析

这道题目考察的核心是对 Agent 关键能力——规划(Planning)的系统性理解。面试官提到了 CoT、ToT、GoT 这些关键词,他期待的并非简单地复述定义,而是希望你能将这些方法串联成一条清晰的演进脉络,阐述它们各自解决的问题、彼此间的逻辑关系,以及在工程实践中如何根据场景进行选型。

1.1 为什么规划能力是 Agent 的核心

在深入探讨具体方法之前,我们首先需要理解“规划”在 Agent 体系中的核心地位。一个功能完备的 Agent 通常整合了四大模块:感知(Perception)、规划(Planning)、记忆(Memory)和行动(Action)。其中,规划扮演着“决策大脑”的角色,它决定了 Agent 在面对复杂任务时,如何将其拆解为有序的子步骤、制定执行策略,并在遇到阻碍时灵活调整方案。

如果缺乏规划能力,Agent 就退化为了简单的“问答机器”——用户下达指令,它被动执行,完全不具备处理多步骤复杂任务的能力。可以说,规划能力是区分智能体(Agent)聊天机器人(Chatbot) 的关键分水岭:Chatbot 是被动响应,而 Agent 是主动规划与执行。

因此,赋予大型语言模型(LLM)规划能力的各种方法,本质上都在尝试回答同一个核心问题:如何有效组织 LLM 的推理过程,使其能够系统地分解并解决复杂问题? 不同方法的差异,主要体现在对“推理过程”的结构化程度上——从最简单的线性链,到分支探索的树,再到任意连接的图。复杂度依次递增,适用的任务场景也各不相同。

1.2 Chain-of-Thought(CoT):线性链式推理

CoT 是这一演进路径的起点,由 Google 在 2022 年的论文中正式提出。在 CoT 出现之前,主流方式是“标准提示(Standard Prompting)”,即让模型直接给出最终答案。例如,问题“Roger 有 5 个网球,又买了 2 罐,每罐 3 个,他现在有多少个?”,模型直接输出“11”。这种方式对简单问题有效,但面对需要多步推理的复杂问题时容易出错,因为模型被迫在一次前向计算中完成所有逻辑跳跃。

CoT 的核心思想深刻而简洁:让模型将中间推理步骤显式地输出。针对同一个问题,采用 CoT 后,模型可能会输出:“Roger 一开始有 5 个球;2 罐每罐 3 个,总共是 6 个新球;5 + 6 = 11。” 看似只是多输出几句话,但效果提升显著。因为每一步的中间结果都成为了下一步推理的“垫脚石”,极大地降低了单步推理的认知负荷。

CoT 主要有两种触发方式:

  • Few-shot CoT: 在提示词(Prompt)中提供几个带有完整推理过程的示例,引导模型模仿这种逐步推理的风格。
  • Zero-shot CoT: 更为直接,只需在问题末尾加上一句“Let‘s think step by step”,模型便能自动展开推理链。这表明大模型内部已具备逐步推理的潜力,CoT 只是通过提示词激活了它。

然而,CoT 存在一个根本性的局限:它的推理过程是单一路径、线性且不可回退的。模型从第一步开始,逐一推进,一旦某一步推理出错,后续所有步骤都会基于错误前提进行,缺乏“纠错”或“尝试其他路径”的机制。对于只有单一解法的简单任务,CoT 足够高效;但对于存在多种可能路径的复杂任务,就显得力不从心了。

CoT与标准提示对比示意图

1.3 Self-Consistency(自洽性采样):多条链路投票

在 CoT 的基础上,一个很自然的改进思路是:既然一条链可能出错,那么同时生成多条链,最后通过投票选择最可靠的答案不就行了? 这就是 Self-Consistency 方法。

它的做法是:针对同一个问题,让模型以 CoT 方式生成多条独立的推理链(通常通过调高 temperature 参数引入随机性)。每条链都会得出一个最终答案,然后对所有答案进行 多数投票,票数最多的答案作为最终输出。

这种方法借鉴了人类解题的经验——如果你用三种不同的方法解同一道数学题,且都得到了相同答案,那么这个答案的正确率就非常高。Self-Consistency 通过统计手段提升了推理的鲁棒性,在数学和常识推理任务上表现优异。

但其局限也很明显:多条推理链之间完全独立,不共享任何中间信息。也就是说,即使第一条链在某一步发现了一个关键线索,第二条链在推理过程中也无法利用这个线索。每条链都是“各自为政”,仅在最终结果层面进行聚合,这无疑是一种信息上的浪费。

1.4 Tree-of-Thought(ToT):树状分支探索

ToT 正是为了解决 CoT “一条路走到黑”和 Self-Consistency “信息不互通”的问题而提出的。它由 Yao 等人在 2023 年的论文中提出,核心思想是:将推理过程从一条链扩展为一棵树,在每一步都可以生成多个候选分支,通过评估机制选择最有希望的分支继续探索,并支持回溯

具体来说,ToT 的工作流程如下:

  1. 思维生成:在推理的每一步,模型生成多个可能的“思维节点”,每个节点代表一种推理方向。
  2. 自我评估:模型对这些候选节点进行评估,判断每个方向的可行性(如“很有希望”、“一般”、“不可行”)。
  3. 搜索与回溯:系统基于评估结果,选择最优的一个或几个节点进行深度展开。如果某个分支被证明走不通,则可以回溯到父节点,选择其他分支继续探索。

这个过程本质上将 LLM 推理变成了一个经典的 搜索问题——你可以使用广度优先搜索(BFS)来并行探索所有可能方向,也可以使用深度优先搜索(DFS)深入某个方向,遇阻后回溯。ToT 为 LLM 的推理过程引入了可控的探索策略。

以“24点游戏”为例:给定4个数字,通过加减乘除得到24。CoT 可能会沿着一条死路算到底然后失败。而 ToT 会在每一步尝试多种运算组合,评估哪些中间结果更接近24,优先探索有希望的分支,并及时回退换路,从而系统地找到解。

CoT与ToT推理结构对比图

1.5 Graph-of-Thought(GoT):图结构的自由推理

如果说 CoT 是一条线,ToT 是一棵树,那么 GoT 就是一张 任意的有向图。GoT 由 Besta 等人在 2023 年提出,它进一步突破了树状结构的层级限制,允许推理节点之间形成更自由、更复杂的连接关系。

GoT 相比 ToT 最关键的突破是引入了 思维的聚合(Aggregation) 能力。在树结构中,信息只能从父节点单向流向子节点,不同分支之间是隔离的。但在许多实际推理场景中,我们需要将多个分支的中间结论汇总、合并,形成一个新的结论——这就要求不同分支能够“连接”起来。GoT 通过聚合操作,允许多个思维节点的输出合并为一个新节点的输入,从而形成类似有向无环图(DAG)甚至包含循环的复杂图结构。

举个例子:分析一篇长文档的核心观点。你可以先用不同分支提取各段落的关键信息(这是“发散”,ToT 也能做),然后将这些分散的信息 聚合 成一个全局摘要(这是“收敛”,GoT 独有),最后基于全局摘要进行更深层的推理。这种“先发散后收敛”的模式在树状结构中难以实现。

从结构表达能力来看,CoT 是路径,ToT 是树,GoT 是图。路径是树的特例,树是图的特例。因此,GoT 在理论上拥有最强的表达能力。但能力越强,意味着搜索空间越大、控制逻辑越复杂,在实际工程中需要更精巧的调度与剪枝策略。

CoT、ToT、GoT表达能力递增示意图

1.6 其他重要的规划方法

除了上述“链→树→图”的主线演进,还有几种在工程实践中非常重要的规划方法:

  • Plan-and-Execute(规划-执行分离): 这是一种偏工程化的策略。其思路是将规划和执行拆分为两个独立阶段:首先由一个“规划器 LLM”对任务进行全局性规划,输出详细的步骤清单;然后由一个“执行器 LLM”逐步执行每个步骤。这种方法的好处是规划阶段可以通盘考虑,不受执行细节干扰,适合步骤较多但逻辑相对清晰的任务,例如“撰写一份行业分析报告”。在 LangChain 和 LangGraph 等框架中,都有对应的 Plan-and-Execute Agent 实现。

  • Reflexion(反思机制): 该方法在规划执行的基础上增加了“复盘”环节。当 Agent 执行任务失败后,它不会直接重试,而是首先回顾整个推理和执行过程,总结“哪里出错、下次如何改进”的经验教训,并将这些反思存入记忆,供下一次尝试参考。Reflexion 赋予了 Agent 从失败中学习的能力,类似于人类的“吃一堑,长一智”。

  • LLM+P(LLM + 经典规划器): 这是一种混合方法,结合了 LLM 的自然语言理解能力与经典 AI 规划算法(如基于 PDDL 的规划器)的严格逻辑推理能力。LLM 负责将用户的自然语言需求转化为结构化的规划问题描述(PDDL 格式),然后交由经典规划器求解最优行动序列,最后 LLM 再将结果翻译成自然语言返回给用户。这种方法在需要强逻辑保证的场景(如机器人路径规划、自动化流程)中具有独特优势。

Agent规划方法全景思维导图

1.7 工程选型的思考

在实际的 Agent 开发项目中,选择哪种规划方法需根据具体场景权衡。对于大多数常规任务,CoT 配合 ReAct 框架就已足够,它简单、高效、延迟低。当任务涉及复杂的多步推理,且存在多种可能的解决方案时,ToT 可以通过系统的搜索和评估找到更优的路径。GoT 目前更多应用于研究领域,但其聚合思想在处理需要“先分后合”的任务(如多文档摘要、多源信息融合)时极具启发性。

Plan-and-Execute 在企业级应用中非常实用,因为解耦了规划与执行,便于分别进行优化和调试。Reflexion 适合那些需要 Agent 长期运行、持续从错误中学习并改进的场景。而 LLM+P 则在机器人、工业自动化等对逻辑严谨性要求极高的领域价值显著。

一个实用的选型原则是:先用最简单可行的方法(如 CoT)跑通流程,再根据实际遇到的效果瓶颈,有针对性地升级到更复杂的方法。切忌一开始就采用最复杂的方案,因为复杂度本身会带来额外的成本——不仅是计算资源的消耗,还包括工程维护的难度和调试的复杂性。


2. 参考回答

Agent 的规划能力旨在解决“如何让 LLM 系统性地分解并执行复杂任务”这一核心问题。当前的主流方法可以沿着一条 推理结构从简单到复杂的演进脉络 来理解。

最基础的是 CoT(思维链),它通过显式输出中间步骤来激活模型的逐步推理能力,但其本质是单链线性推理,一步出错,满盘皆输。在此基础上,Self-Consistency 通过生成多条独立推理链并进行多数投票来提高鲁棒性,但链间信息不互通。ToT(思维树) 是一个关键跃升,它将推理过程从链扩展为树——每一步生成多个候选方向,通过自我评估选择最有希望的分支展开,并支持回溯,本质上是将 LLM 推理转化为一个可控的搜索问题。GoT(思维图) 进一步打破了树的层级限制,允许不同分支的思维节点进行聚合,形成任意图结构,其核心突破在于支持“先发散后收敛”的推理模式,表达能力最强,但控制复杂度也最高。

除了这条主线,工程实践中还有几种重要方法:Plan-and-Execute 将规划与执行分阶段进行,适合步骤多、逻辑确定的场景;Reflexion 引入了自我反思机制,让 Agent 能从失败中学习。在实际选型上,经验是先用最简单的方法(如 CoT+ReAct)验证可行性,再根据性能瓶颈针对性升级,因为复杂度本身就会带来额外的工程与计算成本。

如果你想深入了解这些方法的具体实现或寻找相关的实战项目,欢迎来 云栈社区 的技术论坛交流讨论,这里有丰富的开发资源和活跃的开发者社群。




上一篇:OpenClaw部署指南:八大国内厂商平台横向评测与选型清单
下一篇:短视频推荐算法如何操控注意力?解码间歇性奖励上瘾机制
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-15 07:06 , Processed in 0.462389 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表