Chain of Thought(CoT)和 ReAct 是两种用于提升人工智能模型推理能力的方法,主要区别在于:CoT 侧重于通过内部推理步骤解决问题,而 ReAct 则结合了推理(Reasoning)和外部行动(Acting),允许模型与环境交互(如搜索网络或数据库)来获取额外信息。下面我会详细解释两者的区别,并通过例子说明。
主要区别
| 特性 | Chain of Thought (CoT) | ReAct |
|---|---|---|
| 核心思想 | 通过生成连续的中间推理步骤来引导模型得出答案,无需外部交互。 | 将推理与行动结合,模型在推理过程中可以执行行动(如搜索、查询)来获取新信息。 |
| 依赖资源 | 仅依赖模型内部的预训练知识。 | 依赖外部环境或工具(如搜索引擎、API)来补充信息。 |
| 适用场景 | 适合逻辑推理、数学问题等不需要实时信息的任务。 | 适合需要最新知识或外部验证的任务,如问答、事实核查。 |
| 输出形式 | 一系列推理步骤后直接给出答案。 | 交替进行推理、行动和观察,最终给出答案。 |
Chain of Thought Prompt 举例
CoT 的核心是引导模型一步一步地展示其内部推理过程。
示例任务:逻辑推理
Prompt:
|
1 2 3 4 5 |
请一步步推理并回答这个问题: 一个房间里有一个桌子、一个猫和一只狗。 猫在桌子上。狗在桌子下。 现在,猫从桌子上跳下来,跑到了门外。 那么,狗还在桌子下吗? |
模型的典型 CoT 响应:
|
1 2 3 4 5 6 7 8 |
好的,我们一步一步来推理: 1. 初始状态:猫在桌子上,狗在桌子下。 2. 事件发生:猫从桌子上跳下来。这意味着猫离开了桌子,但猫的位置变化不影响狗的位置。 3. 事件继续:猫跑到了门外。这同样是猫的位置发生了变化,从房间内到了房间外。 4. 在整个过程中,问题只描述了猫的运动,完全没有提到狗有任何移动。 5. 因此,狗的位置自始至终没有改变,它仍然在桌子下。 所以,答案是:是的,狗还在桌子下。 |
特点分析:
-
纯推理:整个过程都在模型的“脑海”中完成,没有与外部世界交互。
-
步骤清晰:通过“第一步、第二步…”将复杂的逻辑拆解,使得最终答案更具说服力,也更容易发现推理错误。
ReAct Prompt 举例
ReAct 的核心是交织进行推理和行动。模型需要决定“何时”以及“做什么”来获取外部信息。
示例任务:需要最新信息的问答
Prompt:
|
1 2 3 4 5 6 7 8 9 |
请使用 ReAct 方法回答以下问题。你可以通过执行“搜索[关键词]”行动来获取最新信息。 请按照以下格式输出: 思考: [你的推理,说明下一步需要做什么以及为什么] 行动: [你的行动,例如:搜索 OpenAI CEO] 观察: [行动返回的结果] ...(重复思考、行动、观察的步骤)... 答案: [最终的综合答案] 问题:OpenAI 的 CEO 萨姆·奥尔特曼的大学专业是什么? |
模型的模拟 ReAct 响应
|
1 2 3 4 5 |
思考: 我知道萨姆·奥尔特曼是OpenAI的CEO,但我不确定他大学读的专业是什么。我需要搜索他的教育背景信息。 行动: 搜索 萨姆·奥尔特曼 大学专业 观察: 根据维基百科和权威传记,萨姆·奥尔特曼曾在斯坦福大学攻读计算机科学专业,但在大二时辍学以全职投入创业。 思考: 观察结果明确提到了他的专业是计算机科学,并且他选择了辍学。现在我已经得到了问题的答案。 答案: 萨姆·奥尔特曼在斯坦福大学攻读的专业是计算机科学,但他后来选择了辍学。 |
让我们再看一个更复杂的例子,展示 ReAct 如何通过交互解决模糊问题:
问题:“珠穆朗玛峰的最新测量高度是多少?它比十年前高了还是低了?”
模型的模拟 ReAct 响应:
|
1 2 3 4 5 6 7 8 |
思考: 珠穆朗玛峰的高度被重新测量过,我需要找到最新的官方数据。同时,“十年前”是一个相对概念,我需要先确定当前年份,再找到大约2014年左右的高度数据来比较。 行动: 搜索 珠穆朗玛峰 最新测量高度 2023 观察: 搜索结果:根据中国和尼泊尔2020年联合公布的测量结果,珠穆朗玛峰的岩面高度(雪盖高度减去积雪和冰层)为8848.86米。 思考: 我得到了2020年的最新高度。现在我需要找到大约2014年(即十年前相对于2024年)的公认高度是多少。 行动: 搜索 珠穆朗玛峰 2014年 高度 观察: 搜索结果:在2020年之前,国际上普遍采用的珠穆朗玛峰高度是8848米,由印度在1955年测量确立。 思考: 现在我可以进行比较了。最新高度(8848.86米)比旧的高度(8848米)高了0.86米。这主要是因为测量技术更精确,而不是山体本身剧烈增长。 答案: 根据2020年中国和尼泊尔的联合测量,珠穆朗玛峰的最新高度是8848.86米。这个数据比十年前普遍采用的8848米高了约0.86米,主要原因是测量技术的进步。 |
特点分析:
-
推理与行动交织:模型不是一次性想完所有步骤,而是根据上一步的“观察”来决定下一步的“思考”和“行动”。
-
依赖外部工具:通过“搜索”行动获取了模型训练数据之外的最新、最准确的信息。
-
处理动态和模糊问题:对于“最新”、“十年前”这类需要上下文和信息检索的问题,ReAct 方法非常有效。
总结对比
| 场景 | Chain of Thought | ReAct |
|---|---|---|
| 数学题 | 非常适合。通过一步步计算得出答案。 | 也可以用,但通常没必要行动。 |
| 常识/逻辑推理 | 非常适合。清晰地展示逻辑链。 | 也可以用,但通常依赖内部知识,无需行动。 |
| 需要最新信息的问题 | 不适用。模型的知识有截止日期,可能给出过时答案。 | 非常适合。通过搜索获取实时信息。 |
| 需要多步查询的复杂问题 | 不适用。无法与环境交互。 | 非常适合。可以像人类一样,先查A,再根据结果查B。 |
简单来说,CoT 是“动脑”,而 ReAct 是“既动脑又动手”。在实际的大模型中(如 GPT-4),ReAct 模式通常通过“函数调用”或“工具使用”的能力来实现。
Workflow vs ReAct
workflow 是一个固化执行tool的步骤,ReAct 是动态执行tool,没有固化的步骤,通过执行 “思考-行动-观察 ”loop





