高级提示技术:Chain-of-Thought与ReAct——让大模型学会“思考”和“行动”

开篇总述:从"直接回答"到"先想再做"

在上一篇文章中,我们学习了Zero-shot和Few-shot提示------它们解决的是"如何让模型准确理解问题并给出格式正确的答案"。但一个更深层的挑战很快就会出现:当任务需要多步推理、逻辑链较长,或者需要模型调用外部工具时,单纯的"提问-回答"模式就不够用了

举个例子。你问模型:"某公司2025年Q3营收为12.5亿美元,Q4为14.2亿美元,2026年Q1为13.8亿美元,Q2为15.1亿美元。请计算同比增长率并分析趋势。"------这个问题涉及多个计算步骤、需要正确的计算顺序、还需要基于结果做分析。即使你用了Few-shot,模型也可能在中间某一步算错,导致最终结论全盘崩溃。

问题出在哪里?模型在"黑盒"中直接生成答案,我们没有让它在回答之前先"展示推理过程"

这就是Chain-of-Thought(思维链) 要解决的问题------让模型在输出最终答案之前,先"说出来"它是怎么想的。而当模型不仅要推理、还要调用外部工具(搜索、计算器、数据库查询)时,我们需要更进一步------这就是ReAct(Reasoning + Acting) 模式------让模型在"思考"和"行动"之间循环迭代,像人一样解决问题。

在本文中,我们将系统性地拆解两个核心问题:第一,CoT思维链提示的原理是什么、怎么用、有哪些变体?第二,ReAct模式如何将推理与工具调用结合,构建出自主解决问题的智能体? 读完这篇文章,你将掌握让大模型从"问答工具"进化为"问题解决者"的关键技术。

分述一:Chain-of-Thought(思维链)------让模型的"思考过程"可见

什么是CoT?------从"给答案"到"给推理过程"

Chain-of-Thought(CoT,思维链) 是由Google Research在2022年提出的提示技术,核心思想极其简洁但影响深远:在提示中要求模型在给出最终答案之前,先输出一步步的推理过程

这个想法之所以有效,是因为大模型在预训练阶段学习了海量的"推理文本"------数学题解、逻辑论证、科学分析等。当你要求模型"展示推理过程"时,模型实际上是激活了它在训练数据中习得的"如何做推理"的模式,而不是仅仅靠"模式匹配"直接猜答案。

一个直观的对比:

不使用CoT(直接回答):

复制代码
问题:一个超市在上午9点开门时库存了150个面包。上午卖出了37个,下午又补货了25个,晚上关门前卖出了42个。问:关门前还剩多少个面包?

模型直接回答:96个

(模型可能蒙对了,但中间可能算错步骤)

使用CoT(展示推理过程):

复制代码
问题:一个超市在上午9点开门时库存了150个面包。上午卖出了37个,下午又补货了25个,晚上关门前卖出了42个。问:关门前还剩多少个面包?

请一步步推理:

思路:150 - 37 = 113(上午卖出后的剩余)
113 + 25 = 138(下午补货后的库存)
138 - 42 = 96(晚上卖出后的剩余)

答案:96个

模型不仅给出了正确答案,还把每一步都"说"了出来------这样我们就知道它没有"跳步骤",可以在任何一步发现错误。

CoT的核心价值:不仅仅是"准确率提升"

CoT的价值远超"让答案更准确"这一层:

1. 透明度:你可以看到模型的推理路径,判断它是"真懂"还是在"胡诌"。如果一个推理过程在中间某步逻辑断裂,最终答案大概率有问题。

2. 调试友好:当模型给出错误答案时,你可以定位到具体哪一步出了问题,而不是面对一个"黑盒"输出茫然不知所措。

3. 复杂任务解构:CoT强制模型将复杂任务拆解为多步简单子任务,每步只做一件事------这正是人类解决复杂问题的天然方式。

4. 触发模型的"系统2思维":心理学中有"系统1(快速直觉)"和"系统2(慢速推理)"的区分。直接回答往往激活模型的"直觉模式",而CoT强制模型切换到"推理模式"------处理数学、逻辑、规划类任务时,这种切换至关重要。

CoT的三种实战用法

用法一:Zero-shot CoT(零样本思维链)

不给任何示例,只是在问题后面追加一句魔法短语:"Let's think step by step"(中文版:"请一步步思考")。

复制代码
问题:一家公司有3个部门,A部门20人,B部门是A部门的1.5倍,C部门比B部门少5人。公司总共有多少人?

请一步步思考。

实验表明,仅仅加上"Let's think step by step"这一句话,就能在算术推理任务上将准确率从不到20%提升到接近60%------不做任何其他改变。

用法二:Few-shot CoT(少样本思维链)

在Few-shot的基础上,每个示例都包含完整的"推理过程 + 答案"。这是最稳定、效果最好的CoT方式。

复制代码
“请按照以下示例的格式回答问题。

示例1:
问题:小明有8支铅笔,送给朋友3支,又买了5支,现在有几支?
推理:8 - 3 = 5,5 + 5 = 10。
答案:10支。

示例2:
问题:一个班级有32名学生,其中女生比男生多6人,男生有多少人?
推理:设男生x人,女生x+6人,x + (x+6) = 32,2x + 6 = 32,2x = 26,x = 13。
答案:13人。

现在回答:一辆公交车上有45人,第一站下去12人,上来8人,第二站下去7人,上来15人,现在车上有多少人?请展示推理过程。”

用法三:自我一致性CoT(Self-Consistency)

这是CoT的一个进阶变体:让模型多次生成推理路径(比如采样5-10次),然后对最终答案进行"投票",选择出现次数最多的答案。

这种方法的逻辑是:如果模型从多条不同的推理路径都到达了同一个答案,那这个答案正确的概率就很高;如果某条路径明显走偏,它会被其他路径"纠正"。在多步推理和复杂数学问题上,Self-Consistency能进一步提升准确率5-10个百分点。

CoT的边界:什么时候不该用CoT?

CoT不是银弹。以下场景中,强行使用CoT反而会适得其反:

  • 简单事实问答:"法国的首都是哪里?"------这种问题不需要推理,强行要求CoT只会浪费Token

  • 模型能力不足:如果模型本身不够强(比如早期的GPT-3.5在某些领域),CoT也可能"推理歪了",不如直接回答

  • 上下文窗口紧张:CoT会消耗大量额外Token,如果窗口有限或成本敏感,需要权衡收益

分述二:ReAct------让模型"边想边做"

什么是ReAct?------推理与行动的交织

ReAct(Reasoning + Acting) 是2022年由普林斯顿大学和Google Brain联合提出的智能体框架。如果说CoT只是让模型"思考",那ReAct就是让模型**"思考"和"行动"交替进行**,像人一样解决复杂问题。

ReAct的核心思想是三个词:思考 → 行动 → 观察,然后重复。

  • 思考(Thought) :模型分析当前状态,决定下一步要做什么

  • 行动(Action) :模型执行一个具体操作------调用搜索API、查询数据库、运行代码等

  • 观察(Observation) :模型接收行动的结果反馈,更新自己的状态

这个过程不断循环,直到模型认为自己获得了足够的信息来给出最终答案。

举个生动的例子:假设你让模型回答"2026年NBA总冠军是谁?"------如果模型的知识截止到2025年,它无法直接回答。用ReAct模式:

复制代码
Thought 1: 我需要查找2026年NBA总决赛的结果,因为我的知识没有覆盖到2026年。
Action 1: 搜索[2026年NBA总决赛结果]
Observation 1: 搜索结果返回了多篇新闻报道,标题显示“XX队以4-2击败XX队夺冠”。

Thought 2: 搜索结果确认了冠军队伍是XX队,但我还需要确认日期和比分细节,以便给出完整回答。
Action 2: 搜索[XX队 2026年NBA总决赛 日期 比分]
Observation 2: 返回了详细数据:总决赛于2026年6月进行,XX队4-2获胜,最后一场比分108-102。

Thought 3: 我已经获得了足够信息,可以给出最终答案了。
Final Answer: 2026年NBA总冠军是XX队,他们在总决赛中以4-2战胜了XX队,最后一场比分为108-102。

ReAct vs CoT:根本区别在哪里?

维度 CoT(思维链) ReAct(推理+行动)
信息来源 仅靠模型内部知识 可调用外部工具获取新信息
推理方式 一次性完成全部推理链 推理与行动交替迭代
适用场景 逻辑推理、数学计算 需要外部信息、多步操作的任务
可纠错性 推理链固定,一旦偏离难以纠正 每步观察可反馈修正后续推理
复杂度 较低 较高,需要工具调用基础设施

一个更直白的理解:CoT让模型"把推理过程写出来";ReAct让模型"像人一样查资料、做实验、验证假设,然后得出结论"

ReAct的工程实现:工具调用的基础

在2026年的实际工程中,ReAct模式的实现主要依赖大模型的Function Calling(函数调用) 能力。

Function Calling允许模型在推理过程中"声明"它想调用什么工具、传入什么参数,而不是实际去执行。外部的应用程序接收这个声明,执行相应的操作(比如调用API、查数据库),再把结果返回给模型。

典型的工具集包括:

  • 搜索引擎:获取实时信息(新闻、股票、赛事结果等)

  • 计算器/代码执行器:精确计算,避免模型自己算错

  • 数据库查询:检索企业内部数据

  • 文件读写:读取PDF、Excel,处理大型文档

  • 第三方API:调用天气、地图、邮件等服务

ReAct的两个关键设计原则

原则一:思考要"精炼而有效"

ReAct中的"思考"不是长篇大论,而是关键的决策节点------当前知道什么、还缺什么、下一步要做什么。好的Thought通常是一两句话,而不是一段文章。

原则二:行动要"可拆解、可回溯"

每个Action应该做"最小单位的、独立的一件事"------一次只搜索一个关键词、只查询一张表、只计算一个值。这样如果某一步失败,可以精确回退,而不是让整个任务从头再来。

ReAct的常见陷阱

陷阱1:无限循环

模型可能在"思考→行动→观察"中陷入死循环------比如反复搜索同样的关键词,或者在一个失败的行动上反复尝试。需要在工程上设置最大迭代步数 (通常5-15步)和重复检测

陷阱2:过度行动

模型可能在没有充分思考的情况下就开始行动,比如"无脑搜索"。好的ReAct设计应该鼓励模型先思考清楚"缺什么信息",再决定"用什么工具去获取"

陷阱3:忽略观察结果

模型有时会在收到Observation后,忽视其中关键信息,继续走原来的思路。需要通过提示明确要求模型**"根据观察结果重新评估自己的状态"**。

分述三:CoT + ReAct的融合------2026年的最佳实践

在实际工程中,CoT和ReAct不是"二选一",而是往往结合使用

最常见的融合模式是:

  1. 先用CoT做任务规划:模型在初始阶段用思维链拆解任务,列出需要做哪些事、每一步需要什么信息

  2. 再用ReAct执行每一步:对于需要外部信息的子任务,启动ReAct循环

  3. 最后用CoT做结果汇总:收集所有执行结果后,用思维链整合成最终答案

这种"规划-执行-汇总"的模式,在2026年的Agent开发框架(如LangGraph、AutoGen)中已经成为了标准范式。

另一个重要的融合场景是ReAct过程中的"内部推理":即使在每一次Action之前,模型也可以先在内部做一次"微型CoT"------想清楚"我为什么要做这一步、我期望得到什么结果、如果结果不符合预期该怎么办"。

结尾总结:从"问答"到"问题解决"的关键一跃

让我们回顾一下本文的核心内容:

第一,CoT思维链提示让模型的推理过程"可视化"。 通过在提示中要求模型"一步步思考",我们能大幅提升模型在多步推理、算术、逻辑任务上的准确率,同时获得推理的可追溯性和可调试性。Zero-shot CoT靠一句"Let's think step by step"就能生效,Few-shot CoT更加稳定可靠,Self-Consistency进一步通过"多次采样+投票"提升准确率。

第二,ReAct模式让模型"边想边做"。 在CoT的基础上,ReAct引入了"行动"和"观察"的循环------模型不仅能推理,还能主动调用搜索、计算器、数据库等外部工具来获取新信息。这种"思考→行动→观察→再思考"的迭代过程,让模型具备了解决"知识盲区之外"问题的能力。

第三,CoT和ReAct在实际工程中往往是融合使用的。 "规划→执行→汇总"的模式已成为2026年Agent开发的标准范式------先用CoT做全局规划,再用ReAct执行具体子任务,最后用CoT整合结果。

从Zero-shot到Few-shot,从CoT到ReAct------我们走过了一条清晰的"能力升级"路径:

  • Zero-shot/Few-shot:教会模型"听懂话、答对题"

  • CoT:教会模型"展示推理过程、自我纠偏"

  • ReAct:教会模型"调用工具、迭代解决问题"

掌握了ReAct模式,你就已经触碰到了AI Agent(智能体)开发的门槛。ReAct是所有Agent框架最底层的"思考引擎"------无论是LangGraph、AutoGen还是CrewAI,它们的核心工作流程都离不开"推理-行动-观察"这个基本循环。

相关推荐
JackHCC3 小时前
快手OneRetrieval:可编辑生成式电商召回
人工智能·机器学习
前端之虎陈随易3 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
QiLinkOS3 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
武汉唯众智创3 小时前
当汉字成为心理CT:AI汉字联想投射分析的技术实现与心理评估价值
人工智能·ai心理健康·ai心理评估·本土化心理测评·校园心理健康解决方案·ai心理监测·多模态情绪模型
Longvox4 小时前
Agent为什么会死循环?
人工智能·ai编程
陈天伟教授4 小时前
FreeCAD 启动后小窗口闪现即退的解决思路
人工智能·机器人·工业设计
酒旅Agent开发实战4 小时前
AI 旅行规划助手如何接入真实酒旅数据:从自然语言到酒店预订的全流程 MCP 实战
人工智能·ai·旅游·skill·酒店api·机票api
workflower4 小时前
设备单元级(L1)实施路径
人工智能·线性代数·矩阵·机器人·开源
Dragon Wu4 小时前
ComfyUI Desktop 实例进入后一直loading的问题解决
人工智能·ai