前言
前面学习了 Agent 中的三种常见的设计范式:
- ReAct
- Plan and Execute
- Self-Ask
今天继续探索几个其他的高级范式。
Thinking and Self-Refection
思考并自我反思(Thinking and Self-Refection) 范式要用于模拟和实现复杂决策过程,通过不断自我评估和调整,使系统能够学习并改进决策过程,从而在面对复杂问题作出更加有效的决策。简单地说,就是在 ReAct 范式上增加了 “批判”和“修正”。
-
将之前整个“思考-行动-观察”的轨迹(称为轨迹, Trajectory)作为输入,提交给LLM(可以是同一个,也可以是另一个专门调优的模型)。
-
要求LLM扮演“审查者”,分析轨迹中存在的错误、低效的步骤或逻辑漏洞。
-
将反思总结出的教训、修正建议或新的计划,注入到新一轮的任务执行循环中,从而指导模型在下一次尝试中避免同样错误。
Tree of Thoughts (ToT)
Tree of Thoughts (ToT) 是一种复杂问题解决与推理能力的结构化搜索框架。
- 目标:让大模型突破传统“单一路径、一步到位”的生成模式,能够像人类一样进行多步骤的、可回溯的、有策略的深度思考,从而显著提升在需要规划、探索或决策的任务上的表现。
- 核心流程:
- 思维分解:将一个大问题分解成多个连贯的思考步骤(Thought),每个步骤都是语言模型生成的一个中间推理或假设。
- 树形探索:这些思考步骤不是线性的,而是构成一棵树。树的每个节点代表一个中间状态,从每个节点可以扩展出多个可能的后续思考(即子节点),形成多条潜在的解决路径。
- 启发式搜索与评估:使用搜索算法(如广度优先BFS或深度优先DFS)在树中导航。关键的是,需要一个“评估器”(通常由另一个大模型调用或简单规则担任)对每个节点状态进行评分或排序,以决定优先探索哪条路径,并在发现死胡同时进行回溯。
Graph of Thoughts (GoT)
和 TOT 一样,Graph of Thoughts (GoT) 是一种更复杂进一步的结构化搜索框架。
-
目标:突破传统“链式思考”的线性限制,让AI的思维过程可以非线性地前进、回溯、合并与优化,从而处理更艰巨的任务。
-
本质:用“图”来组织和操作“思维”。
-
基本单元:每一个具体的思考步骤(例如:“分析用户问题的关键词”、“评估方案A的可行性”)被定义为一个“思考”节点。
-
组织方式:这些节点不再像 Chain-of-Thought (CoT) 那样排成一条直线,也不像 Tree-of-Thought (ToT) 那样只是简单地分叉。它们被组织在一个图结构中,节点之间通过有向边连接,表示思维的流向。
-
核心流程:
-
生成:创建新的思考节点。
-
聚合:将多个节点的信息融合,形成一个更高阶、更综合的思考节点(例如,总结多个方案的优缺点)。
-
精炼:对一个已有节点进行修改和优化(例如,修正之前推理中的错误)。
-
回溯:跳回到图中任意一个先前的节点,并开启新的推理分支。
-
-
比较:
-
CoT(链式) :模拟的是“按部就班”的逻辑推导,就像一份严谨的说明书。
-
ToT(树状) :模拟的是“探索多种可能”的头脑风暴,就像一棵决策树。
-
GoT(图状) :模拟的是“反复琢磨、整合灵感”的创造性思考过程。
-
分层任务分解(HITL)
Hierarchical Task Decomposition(HITL) 通常指 Agent 将复杂目标拆解为层级化、可执行子任务的核心规划能力。
-
本质:“分而治之”
-
核心流程:“规划-执行-观测”循环
-
目标接收与顶层规划:Agent 接收到一个抽象指令(如“开发一个网站”),LLM 作为“规划器”,生成一个初步的高层任务树。
-
递归分解:对于每个非叶子节点任务(如“设计前端页面”),LLM 会再次被调用,将其进一步分解为更具体、可操作的子任务(如“编写HTML骨架”、“添加CSS样式”、“集成交互逻辑”),形成一棵不断生长的任务树。
-
叶子节点执行与状态跟踪:分解直到产生可直接调用工具(如代码解释器、浏览器、API)执行的“叶子任务”。Agent 执行后,将结果(成功、失败、返回数据)反馈给系统,并更新整个任务树的状态。
4 动态调整与回溯:当某个子任务执行失败或环境变化时,Agent 能回溯到上层节点,重新规划替代路径,体现了应对不确定性的能力。
-
总结
正是这些范式让 Agent 能更高效更准确地处理问题。当然也有其他范式,一一列举就很难穷尽。日后在实际开发中遇到具体问题再具体分析。
| 范式 | 核心 | 典型应用场景 |
|---|---|---|
| ReAct | 思考与行动循环交替,实时根据环境反馈调整推理路径。 | 需要与环境动态交互的任务,如问答系统(需调用搜索或计算工具)、机器人控制、交互式调试。 |
| Plan and Execute | 严格的“规划-执行”两阶段分离,先制定完整计划再逐步执行。 | 结构清晰、可预定义的复杂工作流,如数据ETL管道、多步骤内容生成、自动化运维脚本。 |
| Self-Ask | 通过自问自答的方式,将复杂问题分解为可调用工具解决的子问题。 | 知识密集型问答,特别是需要混合内部知识和外部工具(如搜索、API、计算器)的场景;以及需要深入分析或提供创意性解决方案的case |
| Thinking and Self-Reflection | 在ReAct基础上,增加了对自身输出质量的“反思”步骤,以检查和修正错误。 | 对输出准确性、逻辑性或安全性要求极高的任务,如代码审查、数学证明、安全关键报告生成。 |
| TOT (Tree of Thoughts) | 将推理过程构建为树状结构进行搜索,在每个节点评估并选择最有希望的路径。 | 需要系统性地探索多种可能性的开放式问题,如策略游戏、复杂规划、创意写作(探索不同情节分支)。 |
| GOT (Graph of Thoughts) | 将推理过程构建为有向图,允许更灵活、非线性的思维连接与信息融合。 | 解决具有复杂依赖、交叉关联或需信息融合的问题,如复杂系统设计、多源信息整合分析、高级研究规划。 |
| 分层任务分解 (HITL) | 核心在于 “人在回路” ,将复杂任务分层,关键决策点引入人工判断或干预。 | 高风险、高价值或高度不确定的任务,如金融风控决策、临床辅助诊断、内容安全审核、复杂业务流程审批。 |
那么,你还知道 Agent 中的哪些高级范式?我们评论区见。