一、引言

首先思考一个问题为什么需要"范式"?

之前文章介绍的最简单的agent,它的思考方式其实非常朴素:"看一眼上下文 → 决定调不调工具 → 循环"。这对"查个天气+算个数"这种任务够用了,但面对下面这类任务就会露怯:

  • 需要多步推演:"帮我规划一次三天两夜的旅行,预算 3000",这需要先拆解、再逐步落实。
  • 容易出错且需要纠正:"写一个能通过所有测试的函数",第一次写错了,得看着报错改。
  • 有多条可能路径:"这道数学题有多种解法",需要探索比较后再定。

范式就是针对这些挑战总结出的思考模板。你可以把它们理解成给大脑的不同"思维操作系统"。

而这一切的起点,是一个朴素到不可思议的发现——只要让模型"把话说全、把步骤想出来",它就会变聪明。这就是 Chain-of-Thought。后面所有范式,几乎都是它的延伸:ReAct 是"CoT + 行动",Plan-and-Execute 是"把 CoT 拆成计划与执行",Tree of Thoughts 是"把 CoT 展开成树"。所以我们从它讲起。

二、Chain-of-Thought(CoT):一切的起点

在 2022 年之前,大家用模型的方式是"直接要答案"。有人发现:如果在提示里加一句"让我们一步一步地思考"(Let's think step by step),或者给几个"带推理过程的示范",模型在数学、逻辑等复杂任务上的准确率会大幅提升。这就是 Chain-of-Thought(思维链,CoT)

原理:

不要让模型一步蹦到答案,而是让它把中间推理过程显式地写出来。

❌ 直接问:                          ✅ CoT:
"食堂有23个苹果,用掉20个,           "食堂有23个苹果,用掉20个,
 又买6个,现在几个?"                  又买6个,现在几个?一步步想。"
        │                                   │
        ▼                                   ▼
    "3个"(可能算错)              "原有23个,用掉20个还剩 23-20=3 个,
                                    又买6个,所以 3+6=9 个。答案是9。"
                                         (推理透明,更易算对)

为什么"多说几句"就能变准? 前面文章讲到LLM的本质是在"预测下一个 token"。当它被要求先写推理步骤时,每一步的中间结论都成了后续 token 的上下文,相当于把一个"一步到位的难题"分解成了若干"一步一个脚印的易题"。模型不必在一次前向计算里"憋出"最终答案,而是把思考摊开在输出里,逐步逼近。推理过程本身,成了模型的"外部草稿纸"。

CoT 与 Agent 的关系:

CoT 本身还不是 Agent——它只是让模型"想得更清楚",并没有"行动"(调用工具、与环境交互)。但它是所有 Agent 范式的思想内核。你可以这样理解这条演进线:

   CoT          ReAct        Plan-and-Execute    Reflexion      Tree of Thoughts
 分步思考  ──► 思考+行动  ──►   规划+执行     ──►  反思重试   ──►   多路径探索

优缺点:

  • 优:几乎零成本、即插即用、大幅提升推理准确率。
  • 缺:不能与外部世界交互(不调工具);对简单问题属于多余开销。

CoT 解决了"怎么想",接下来的 ReAct 解决"想完之后怎么动手"。

三、ReAct:推理与行动交错

ReAct = Reasoning + Acting。如果说 CoT 让模型学会"想",ReAct 就是让模型"边想边动手"——它是把 CoT 引入 Agent 世界的关键一步

核心思想一句话:让模型在每次行动前,先显式地"想一步"(Thought),再决定行动(Action),然后观察结果(Observation),如此交错循环。

 ┌──────────────────────────────────────────────┐
   │                                                │
   ▼                                                │
 Thought(想) ──► Action(做) ──► Observation(看) ──┘
 "我需要先查      "调用搜索      "返回了北京天气:晴"
  一下天气"        工具"              │
                                      ▼
                              够了吗? ──否──► 继续想下一步
                                │
                                是
                                ▼
                          Final Answer(答)

和第一篇给的样例 Mini Agent 的关键区别在于那个显式的 思考。为什么多这一步很重要?因为它把模型的推理过程"外化"了——模型在决定调哪个工具之前,先用自然语言把"我为什么要这么做"写出来。这带来两个好处:

1. 决策质量更高。 "先想后做"本身就能提升准确率。ReAct 相当于用提示工程,让普通模型也具备一点"先想后做"的习惯。

2. 可调试性强。 当 Agent 行为异常时,你能直接读到它的 Thought,看清它"当时是怎么想的",而不是面对一个黑盒。

在实现上,ReAct 通常靠系统提示引导模型输出结构化的"思考-行动"格式

适用场景:

绝大多数需要调用工具的通用任务——问答、查询、信息整合,是默认首选。

优缺点:

  • 优:简单可靠、通用;Thought 外化让行为可调试。
  • 缺:"走一步看一步"的贪心策略,缺乏全局规划,长程任务容易走偏。

四、Plan-and-Execute(先规划,后执行)

原理:

ReAct 是"走一步想一步",长任务里容易做着做着忘了大目标。Plan-and-Execute 把 Agent 拆成两个角色:规划器(Planner) 先一次性想清楚完整的分步计划,执行器(Executor) 再照着计划逐条落实(每一步内部可以是一个小的 ReAct 循环)。这份显式的计划像一张"锚",让 Agent 全程不迷路;如果执行中发现计划不合理,可以回到规划器重新规划(Re-plan)

小例子:

用户:帮我策划北京到上海的三天出差

Planner 先出计划:
  1. 查高铁班次
  2. 订酒店
  3. 安排三天会议行程
  4. 汇总成行程表

Executor 逐条执行 → 步骤1 → 步骤2 → ... → 完成
                       (若发现"当天无高铁"→ 触发 Re-plan 改坐飞机)

适用场景:

步骤多、路径较清晰的长程任务,如数据分析流水线、多阶段项目。

优缺点:

  • 优:有全局计划做锚,不易迷路;规划用强模型、执行用快模型,可降本。
  • 缺:初始计划定错则全盘皆错,依赖 Re-plan 机制兜底。

五、Reflexion / Self-Refine(反思重试)

原理:

前面的范式解决"怎么想、怎么做",Reflexion 解决"做错了怎么办"。它给 Agent 加一个闭环:执行 → 评估结果 → 若失败则反思"哪里错了" → 带着这条教训重试。关键是"反思"要被记住、并喂给下一次尝试,这样才是"吸取教训",而不是无脑重复同一个错误。

小例子:

任务:写一个函数,返回列表中的最大值

第 1 次:写完 → 跑测试 → 空列表报错 IndexError
反思:  "没处理空列表的情况"
第 2 次:带着这条教训重写(加空列表判断)→ 跑测试 → 全部通过 ✓

适用场景:

有明确对错评估信号的任务,如代码(有测试)、数学(可验算)。

优缺点:

  • 优:能自我纠错,显著提升有标准答案任务的成功率。
  • 缺:质量完全取决于评估信号;若无可靠评估(如"写得美不美"),反思会变成自我安慰。

六、Tree / Graph of Thoughts(搜索式推理)

原理:

前面几种都是"单线程"——一条思路走到底,错了才回头。ToT 则像下棋:每一步生成多个候选想法,展开成一棵"思维树",评估每个分支的前景,选最有希望的深入,走不通就回溯换一条。GoT 更进一步,允许不同分支之间合并、复用,形成图而非树。本质是用"广撒网 + 剪枝"换取更高的解题成功率。

小例子:

问题:用 4 个数字 (4,9,10,13) 通过加减乘除凑出 24

想法A: 13-9=4 → 剩 4,4,10...  评估:难凑,前景低,剪掉
想法B: 10-4=6 → 剩 6,9,13...  评估:6×...有希望,深入
    └► 分支B下继续:(13-9)=4,6×4=24 ✓  找到解
                    (走不通的分支自动回溯,换下一个想法)

适用场景:

解空间大、需要探索和回溯的难题,如复杂谜题、数学证明、创造性规划。

优缺点:

  • 优:探索能力最强,能攻克单线程范式搞不定的难题。
  • 缺:极其昂贵,每步都要生成并评估多个分支,token 和延迟可能是 ReAct 的数倍至数十倍;生产环境慎用。

七、选型速查

范式 一句话 最适合 成本
CoT 分步推理,不行动 纯推理题 / 作内核 极低
ReAct 思考+行动交错 通用带工具任务(首选)
Plan-and-Execute 先规划后执行 长程、可拆解任务
Reflexion 执行后反思重试 有对错评估的任务 中高
Tree/Graph of Thoughts 多路径探索择优 需回溯的难题

三条选型经验:

  1. 默认从 ReAct 起步,大多数任务它就够了,别盲目上复杂范式。
  2. 范式可组合:常见做法是 Plan-and-Execute 定框架、每步内跑 ReAct、关键步加 Reflexion 自检。
  3. 按任务特征选:需长程规划→Plan-and-Execute;有对错评估→加 Reflexion;需探索多路径且值得付成本→ToT。

八、小结

五种范式沿"CoT → ReAct → Plan-and-Execute → Reflexion → ToT"演进,核心是匹配任务特征、从 ReAct 起步、按需组合。范式决定 Agent"怎么想",而工具决定它"能做什么

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐