跳到主要内容
Cowers://
全部文章
推理范式

从 CoT 到 Agent 推理体系

CoT 之后的推理体系分成三条路线:提高单链可靠性、把推理与行动交错,以及搜索多条候选路径。

从 CoT 到 Agent 推理体系:三条分叉,不是一条直线

阅读提示 本笔记面向已经知道 CoT 是什么、正在学 Agent 架构的读者。它不重复讲 CoT 的用法(那部分见 CoT 思维链),而是回答一个架构问题:今天 Agent 里的规划、工具、记忆这些模块,各自是从哪条研究线上长出来的?

读完应该能做到:看到一个新范式的名字,立刻判断它属于哪一支、在解决哪个层面的问题。

相关笔记:ReAct 范式(方向三的代表作,单独展开)、Agent概念(组件视角)、Agent架构设计-lang系框架(工程分层)。

⚠️ = 常见陷阱 🆚 = 对比辨析 💡 = 机制或选择建议

目录


核心概念 CoT 之后的两年,研究并没有沿一条线推进,而是从同一个起点分出三个方向,各自补一块短板:

方向 补的短板 代表
一、让单条链更可靠 链会错,且错得自信 Self-Consistency、Zero-shot CoT
二、让推理有结构 链是线性的,不能试错回退 ToT、Plan-and-Solve、GoT
三、让推理接地 链封闭在模型内部,事实没有来源 ReAct、Reflexion

Agent 不是其中某一支的延续,而是三支的合流。

⚠️ 先说清这份分类的性质:这三条分支是本笔记为了教学而做的归类,不是学术界公认的、正交且完备的谱系。它的用处是「看到一个新范式,快速判断它在补哪块短板」;它的局限是:多数工作同时落在不止一支(Reflexion 既有反馈也有记忆,ToT 也依赖评估信号),也有工作三支都不沾。拿它当思考脚手架可以,写进论文或对外文档时别说成公认分类。

一、为什么这段背景值得单独理清?

因为大部分中文资料把它讲成了一条时间直线

❌ 常见的错误叙事
CoT → Zero-shot CoT → Self-Consistency → ReAct → ToT → Agent
(暗示:后面的比前面的强,是逐代替换关系)

这个叙事有两个具体后果:

  1. 误判技术关系。 会以为 ToT "比" ReAct 新所以更好,实际上它们不在同一个层面,可以叠加使用(ReAct 的每一步 Thought 内部完全可以跑 ToT)。
  2. 误判架构选型。 会以为选了新范式就自动解决了旧问题。实际上方向二解决不了事实接地问题,方向三也解决不了搜索空间问题——它们补的是不同的洞

正确的图景是分叉,不是替换:

CoT 到 Agent 演化谱系

读图顺序:从上往下看主干(Scratchpad → CoT → 分叉 → Agent → RL 内化),横向看三个泳道各自的主张。图中最值得记住的是中层那三个虚线框——它们不是三代技术,是三个正交的改进维度

二、起点其实不是 CoT

CoT 常被当成从零开始的发明,但"把中间计算写出来"这个动作,在它之前两个月就已经被系统研究过。

Scratchpad(《Show Your Work: Scratchpads for Intermediate Computation with Language Models》,Nye 等,arXiv 2112.00114,2021-11-30)明确提出:训练 Transformer 把中间计算步骤输出到一块"草稿纸"上,在算术、多项式求值、程序执行追踪等任务上取得大幅提升。论文摘要的原话是这个方法能 "dramatically improve" 模型执行多步计算的能力。

🆚 Scratchpad 与 CoT 的关键差别不在思想,在手段

维度 Scratchpad (2021.11) CoT (2022.01)
核心思想 输出中间计算步骤 输出中间推理步骤
实现手段 训练模型这么做(微调) 提示模型这么做(few-shot,零训练)
任务范围 偏程序化计算(加法、程序执行) 算术 + 常识 + 符号推理
门槛 需要标注数据和训练资源 写 8 个示例即可

为什么是 CoT 而不是 Scratchpad 引爆了这个领域 因为门槛。Scratchpad 要求你有能力微调一个模型;CoT 只要求你会写 Prompt。当一项能力的获取成本从"训练"降到"写几个例子",使用它的人数会差几个数量级。

这个模式后面还会重演一次——见第七节,只不过方向是反的。

三、CoT 真正的转折点意义是什么?

不是"提升了推理准确率"。准确率提升只是表象。

真正的转折是:「中间推理步骤」从模型内部不可见的隐式计算,变成了输出序列里一段可操作的文本。

一旦它成为文本对象,就自动获得了四种可能性:

可以被采样   → 生成多条,比较、投票        → Self-Consistency
可以被评估   → 给中间状态打分,决定是否继续 → Tree of Thoughts
可以被中断   → 停在某一步,插入外部信息    → ReAct
可以被存储   → 写进记忆,下次任务复用      → Reflexion

后面三条分叉全部建立在这四个可能性之上。这才是 CoT 被称为 Agent 前置条件的原因——不是因为 Agent 需要模型"会推理",而是因为 Agent 需要一个能被外部程序介入的推理过程

💡 一个判断新范式的通用视角 看到任何一个新的 Agent 推理范式,先问:它在对这段中间文本做什么操作?

采样比较、打分剪枝、中途插入观察、跨轮次存取——基本逃不出这四类,以及它们的组合。这比记名字有用得多。

四、三条分叉分别在补什么短板?

方向一:让单条链更可靠(仍封闭在文本内)

短板:一条链上任何一步错了,后面全跟着错,而且模型语气毫不动摇。

  • Self-Consistency(2022-03-21,arXiv 2203.11171):采样多条链,对最终答案取最一致的那个。GSM8K +17.9%。
  • Zero-shot CoT(2022-05-24,arXiv 2205.11916):Let's think step by step,去掉写示例的成本。MultiArith 17.7% → 78.7%。

⚠️ 这两者的先后关系经常被讲反 错误说法: "Zero-shot CoT 之后,人们发现单链不可靠,于是提出了 Self-Consistency。"

实际时间: Self-Consistency 2022-03-21,Zero-shot CoT 2022-05-24。Self-Consistency 早两个月。

原因: 二者从 CoT 出发解决的是完全不同的问题——一个改解码策略(怎么选答案),一个改触发方式(怎么让它开始推理)。没有依赖关系,自然也没有先后。

正确理解: 并行分支。写技术文档时不要用"于是""进而"把它们串成因果。

这一支的天花板很明确:无论采样多少条链,所有事实仍然来自模型的训练记忆。问它今天的股价,四十条链会一致地编出同一个数字——一致性不等于正确性

方向二:让推理有结构(链 → 树 → 图)

短板:链是线性的,走错了不能退回来重选。

  • Tree of Thoughts(Yao Shunyu 等,2023-05-17,arXiv 2305.10601,NeurIPS 2023):论文指出标准 LLM 推理被困在 "token-level, left-to-right decision-making" 里。ToT 让模型对中间状态打分,支持回溯(backtracking)与前瞻(lookahead)。Game of 24 上,GPT-4 用标准提示成功率 4%,用 ToT 达到 74%
  • Plan-and-Solve(Wang Lei 等,2023-05-06,arXiv 2305.04091):先制定计划把任务拆成子任务,再按计划逐个执行。它针对的是 Zero-shot CoT 的三类具体错误:计算错误、遗漏步骤、语义误解。
  • Graph of Thoughts(Besta 等,2023-08-18,arXiv 2308.09687):把思考单元作为顶点、依赖作为边,组织成任意图。排序任务上比 ToT 质量提升 62%,同时成本降低 31% 以上。

⚠️ 别把 Self-Consistency 和 ToT 混为一谈 两者都"有多条推理路径",但机制完全不同:

维度 Self-Consistency Tree of Thoughts
路径之间 相互独立,并行采样,互不知情 共享搜索树,有父子关系
中途干预 无。跑完才比 有。对中间状态评估、剪枝
能否回退 不能 (backtracking)
选择依据 最终答案的多数票 中间状态的价值评估
本质 一种解码策略 一种搜索算法

一句话记:Self-Consistency 是投票,ToT 是搜索。 前者事后比较,后者过程干预。

方向三:让推理接地(走出模型内部)

短板:前两个方向再怎么优化,推理都封闭在模型的参数记忆里,无法获取外部真实信息,也无法验证自己。

  • ReAct(Yao Shunyu 等,2022-10,arXiv 2210.03629,ICLR 2023):交替生成推理轨迹与行动指令,Thought → Action → Observation → Thought。关键在于 Observation工具返回的真实结果,不是模型生成的。详见 ReAct 范式
  • Reflexion(Shinn Noah 等,2023-03-20,arXiv 2303.11366):智能体对任务反馈进行语言层面的反思,把反思文本存入情景记忆缓冲区,下一轮任务时读取。论文称之为 "verbal reinforcement learning"——不更新权重,用自然语言实现试错学习。HumanEval 上达到 91% pass@1(同期 GPT-4 为 80%)。

⚠️ Reflexion 放在「方向三」是本笔记的取舍,不是它的定位 严格说,Reflexion 的三要素是反馈(Evaluator)、语言反思(Self-Reflection)、跨 trial 记忆——它解决的是「上一次失败的教训怎么带到下一次」,不是「事实从哪来」。它完全可以在一个不调用任何外部工具、纯靠内部评估的任务上运行,那样就和「接地」毫无关系。

本笔记把它归到方向三,理由是它引入了跨轮次的状态,和方向一、二那种一次性封闭推理确实不同。但如果按「补了什么短板」来分,把它单列成第四支:反馈与经验积累更准确。

这正是开头提醒过的:三分支是脚手架,遇到落在缝里的工作,以工作本身的机制为准。详见 Reflexion 反思式自我纠错

五、为什么方向三才是 Agent 的分水岭?

因为前两个方向再强,做的都还是同一件事的优化:给定输入,在模型内部把答案算得更准。

方向三改变了问题的定义

方向一、二:  输入 ──[模型内部推理]──→ 输出
              (一次性的、封闭的、无状态的)
 
方向三:      输入 ──推理──→ 行动 ──→ 外部世界
                       ↑              │
                       └──── 观察 ────┘
              (循环的、开放的、有状态的)

三个质变同时发生:

  1. 事实有了来源。 结论可以追溯到某次工具调用的真实返回,而不只是模型的说辞。这直接回应了 CoT 思维链 第六节讲的不忠实性问题——CoT 的自述不可信,但工具的返回值可查。
  2. 过程有了状态。 有了 Observation,就有了"当前已知什么"这个需要维护的状态,于是才需要记忆。
  3. 执行有了不确定长度。 循环几轮由任务决定,于是才需要停止条件、步数上限、循环检测——ReAct 范式 里讲的那些工程问题,全部是从这里冒出来的。

Reflexion 补上的是另一维 ReAct 让单次任务内部有了纠错回路(观察 → 重新思考)。但任务结束、上下文清空,教训就没了——下次遇到同样的坑还会再踩。

Reflexion 把失败经验以自然语言写入情景记忆,实现跨轮次的经验积累。所以它对应的 Agent 组件不是"推理",是 Memory。这也是为什么把它归到方向三而不是方向二:它处理的是与外部(历史)的交互,不是推理的内部结构。

六、这些分支如何汇流成 Agent?

今天一个完整 Agent 的各个模块,大致可以对应回上面的分支——这里说的是「这一支贡献了它在 LLM 语境下的做法」,不是「这个概念由这篇论文发明」:

Agent 组件 对应哪一支 该支的代表工作
Reasoning(推理内核) 起点 CoT
Planning(任务规划) 方向二 Plan-and-Solve、ToT
Tool Calling(工具调用) 方向三 ReAct
Memory(记忆) 方向三 Reflexion
结果校验 / 多路裁决 方向一 Self-Consistency

⚠️ 别把这张表读成「Agent 组件起源于这些论文」 错误说法: "Agent 的规划能力来自 ToT,工具调用来自 ReAct,记忆来自 Reflexion。"

实际情况: 规划、工具使用、记忆、校验是智能体研究几十年来的基本构件,远早于这几篇 LLM 论文——自动规划(STRIPS 等)可以追到上世纪 70 年代,具身智能体与环境交互、黑板架构里的记忆同理。这些论文做的是把已有的构件搬到 LLM 这个新载体上,并找到在语言模型上可行的具体做法,不是发明了这些概念。

同理,ReAct 也不是「Agent 与环境交互」的历史起点。 它是把「推理」与「行动」交错到同一个语言序列里的代表作,这在 LLM 语境下是关键一步;但智能体感知—决策—行动的循环,在它之前早就是标准范式了。

为什么要较真: 把这张表当成起源表,会让人误以为「读完这五篇就掌握了 Agent 的全部理论基础」,从而忽略规划、控制、状态机、可靠性工程里大量早已成熟的成果——而工程上真正会踩的坑,很多恰恰在那些老问题里。

💡 它们是可叠加的,不是互斥的 常见的实际组合:

  • Plan-and-Execute 架构 = 方向二做外层规划 + 方向三做内层执行。规划器把任务拆成步骤列表,每个步骤交给一个 ReAct 循环去完成。
  • ReAct + Self-Consistency = 在关键决策步采样多条 Thought,投票决定下一个 Action。
  • ReAct + ToT = 单步 Thought 内部跑树搜索,选出最优 Action。

判断该叠哪个,看你的瓶颈在哪:答案不稳 → 方向一;任务长、容易迷路 → 方向二;事实错误、需要实时数据 → 方向三。

⚠️ Plan-and-Execute 不是论文范式,是工程命名 常见错误: 在技术文档里写"Plan-and-Execute(Wang et al., 2023)",或把它与 ToT、ReAct 并列为学术范式。

实际情况: Plan-and-Execute 是 LangChain 的架构实现命名(思路上受 BabyAGI 等自主智能体项目影响)。学术上与之对应的论文是 Plan-and-Solve(Wang Lei 等,arXiv 2305.04091)。

为什么要区分: 两者的关注点其实不同——Plan-and-Solve 是一种提示策略(在单次生成里先计划后求解),Plan-and-Execute 是一种系统架构(规划器与执行器是分离的组件,可以用不同模型、可以重新规划)。混用会让人以为论文里有现成的架构方案。

正确写法: 引用提示策略写 Plan-and-Solve 并附 arXiv 号;描述系统架构写 Plan-and-Execute 并注明是框架实现。

七、2024 年之后,前提被改写了

上面整条线索有一个共同的隐含前提:

模型的推理能力是固定的,我们能做的是在推理时(inference-time)用提示和外部结构去"释放"它。

这个前提在 2024 年后不再成立。

o1 与 DeepSeek-R1 走的是相反的路:用强化学习把长思维链直接训练进模型权重。DeepSeek-R1 的论文(发表于 Nature,2025)给出的证据很硬:

  • R1-Zero 完全跳过监督微调,在 DeepSeek-V3 基座上直接做大规模 RL(GRPO 算法),奖励是规则化的——答案是否正确 + 是否遵守 <think>...</think> 格式。注意奖励不监督推理链本身,只看最终答案和格式;正因为没人规定它怎么想,才有下一条。
  • 训练过程中,自我验证、反思、动态调整策略等复杂推理行为自发涌现,没有任何人显式教它,包括那个被反复引用的 "aha moment"——模型自己学会停下来重新评估。
  • AIME 2024 上 average pass@1 从 15.6% → 77.9%(Nature 正式版数字;流传较广的 71.0% 出自早期 arXiv 版),自洽解码下达到 86.7%。

⚠️ 这一整段说的是 R1-Zero,不是 DeepSeek-R1 纯 RL、无 SFT、涌现 aha moment,这些全部属于 R1-Zero——一个用来验证「纯 RL 能否激发推理」的研究性模型。正式发布的 DeepSeek-R1 走的是多阶段流程:先用少量高质量长 CoT 数据做冷启动 SFT,再 RL,再拒绝采样 + SFT,再第二轮 RL。原因是 R1-Zero 分数虽高,但输出可读性差、中英文混杂。

说「DeepSeek-R1 是纯 RL 训出来的」是这两年最常见的误传之一。

这件事对本篇脉络的影响 回看第二节的 Scratchpad 与 CoT:当年的走向是训练 → 提示(降低门槛,于是普及)。

2024 年后的走向是提示 → 训练(把已被验证有效的提示模式,吸收成训练目标)。

这是 LLM 发展中反复出现的模式:一种提示技巧一旦被证明稳定有效,最终会被内化进模型本身。 指令遵循(instruction following)、工具调用(function calling)都走过同样的路——先是精心设计的 Prompt 模板,后来变成模型的原生能力。CoT 是第三个。

💡 对 Agent 开发者的三条实际影响

  1. 方向一的价值在下降。 推理模型内部已经在做自我验证和多路探索,外挂 Self-Consistency 的边际收益变小、成本却翻倍。
  2. 方向二的价值在分化。 模型内部的"思考"已能完成局部搜索,但跨工具调用、跨长时程的任务规划仍需要外部显式的规划器——因为那部分不在模型的单次生成范围内。
  3. 方向三的价值不受影响,反而更重要。 RL 再怎么训练,模型也不可能知道你数据库里的实时数据。接地永远只能靠工具。这一支是 Agent 里唯一无法被模型能力提升所替代的部分。

常见说法订正

常见说法 是否准确 订正
CoT → Zero-shot CoT → Self-Consistency 逐代改进 ❌ 错误 Self-Consistency(2022-03)早于 Zero-shot CoT(2022-05),且二者是并行分支
CoT 是「把中间步骤写出来」这一思想的起源 ⚠️ 不准确 Scratchpad(2021-11,arXiv 2112.00114)更早;CoT 的贡献是把它从训练降级为提示
「Reflection」是一种 Agent 范式 ⚠️ 术语不准 论文里的范式叫 Reflexion(Shinn et al., 2303.11366),核心是言语强化学习 + 情景记忆
Plan-and-Execute 出自某篇论文 ❌ 错误 学术对应物是 Plan-and-Solve(2305.04091);Plan-and-Execute 是 LangChain 的架构命名
ToT 就是「同时探索多条推理路径」 ⚠️ 不完整 多路径是 Self-Consistency。ToT 的关键是状态评估 + 回溯 + 前瞻,本质是搜索
ToT 比 ReAct 新,所以更先进 ❌ 错误 不在同一层面,可叠加使用;ReAct(2022-10)实际上比 ToT(2023-05)更早
CoT 的价值是「无需训练即可提升推理」 ⚠️ 已过时 2022 年成立;2024 后 o1/R1 用 RL 将长 CoT 内化进权重,CoT 成为训练目标
Agent 是 CoT 的直接延续 ⚠️ 不完整 Agent 是三条分叉的合流,且只有方向三(ReAct/Reflexion)带来了范式质变
有了推理模型,Agent 框架就不需要了 ❌ 错误 模型能力提升可替代方向一、部分替代方向二,但接地永远需要工具(方向三)
本篇的「三条分支」是学术界的标准分类 ❌ 错误 是本笔记的教学归类。多数工作跨支,也有工作三支都不属于
Planning / Tool / Memory 这些组件源自这几篇 LLM 论文 ❌ 错误 它们是几十年的智能体基本构件;这些论文贡献的是在 LLM 上的具体做法
ReAct 是 Agent 与环境交互的起点 ❌ 错误 感知—决策—行动循环远早于它;ReAct 的贡献是把推理与行动交错进同一个语言序列
DeepSeek-R1 是纯 RL、无 SFT 训出来的 ❌ 错误 那是 R1-Zero;正式 R1 是冷启动 SFT → RL → 拒绝采样 SFT → 再 RL
R1-Zero 在 AIME 2024 上是 15.6% → 71.0% ⚠️ 过时 71.0% 出自早期 arXiv 版;Nature 正式版为 77.9%
有了工具轨迹就能证明模型的推理是可信的 ❌ 错误 轨迹能证明调用了什么、返回了什么,不能证明模型写出的 Thought 忠实于其内部决策

速查表

节点 时间 arXiv 一句话定位
Scratchpad 2021-11 2112.00114 前身:训练模型输出中间计算
Chain-of-Thought 2022-01 2201.11903 转折点:中间步骤成为可操作的文本对象
Self-Consistency 2022-03 2203.11171 方向一:多链投票,改解码策略
Zero-shot CoT 2022-05 2205.11916 方向一:一句触发语,改触发方式
ReAct 2022-10 2210.03629 方向三:推理 ⇄ 工具 ⇄ 真实观察(分水岭)
Reflexion 2023-03 2303.11366 方向三:失败经验写入情景记忆
Plan-and-Solve 2023-05 2305.04091 方向二:先拆计划再执行
Tree of Thoughts 2023-05 2305.10601 方向二:状态评估 + 回溯 + 前瞻
Graph of Thoughts 2023-08 2308.09687 方向二:思考单元组织成任意图
o1 / DeepSeek-R1 2024–2025 2501.12948 前提反转:RL 把长 CoT 内化进权重。纯 RL 的是 R1-Zero,正式 R1 有冷启动 SFT

复习重点

复习重点 0. 先记住这份分类的地位:三分支是本笔记的教学脚手架,不是公认谱系;表里的「来自哪一支」说的是 LLM 语境下的做法来源,不是概念的发明者

  1. 一句话说清整条脉络:CoT 把中间推理步骤变成了可操作的文本对象,此后研究分出三支——让链更可靠(投票)、让推理有结构(搜索/规划)、让推理接地(工具/记忆)——Agent 是三支的合流。
  2. 最容易记错的因果:Self-Consistency 早于 Zero-shot CoT,二者并行;ReAct 早于 ToT,二者不同层面。不要用时间顺序推导优劣关系。
  3. 最需要理解的分水岭:只有方向三改变了问题定义——从"一次性封闭求解"变成"循环开放交互"。事实来源、状态维护、不定长执行这三个质变全部源于此。
  4. 最容易混的两个概念:Self-Consistency 是投票(路径独立、事后比较),ToT 是搜索(共享树、中途评估剪枝、可回溯)。
  5. 最容易写错的引用:Reflexion 不是 Reflection;Plan-and-Execute 是框架命名,论文叫 Plan-and-Solve。
  6. 判断新范式的通用方法:问它对中间推理文本做什么操作——采样比较 / 打分剪枝 / 插入观察 / 跨轮存取,基本不出这四类及其组合。
  7. 对选型的直接指导:答案不稳 → 方向一;任务长易迷路 → 方向二;事实错误、需实时数据 → 方向三。方向三是唯一无法被模型能力提升所替代的。

动手:把自己的项目对号入座

这篇笔记的价值只有落到具体项目上才成立。下面留了一个待填区块。

判断依据是第六节末尾那条规则(看瓶颈,不看时髦程度),难点在于瓶颈往往不止一个,而叠加范式是有成本的——每加一层都会增加延迟、token 消耗和调试难度。

待填:我的 Agent 属于哪一支? 当前项目在做什么:

最主要的失败模式是什么:(答案不稳定 / 长任务中途跑偏 / 事实错误或数据过时 / 同样的错反复犯)

据此应该补哪个方向,为什么:

明确决定「不」引入哪个方向,为什么:


一句话总结 这段历史真正的教训不是"谁提出了什么",而是方向三揭示的那件事:模型能力可以靠训练不断提升,但模型永远不知道它训练数据之外的世界。所以无论推理模型进化到哪一步,Agent 的核心始终是那个把真实观察喂回推理的闭环。