大模型 Agent 本质是LLM + 循环推理 + 工具调用 / 环境交互,解决纯 LLM 静态推理短板:计算错误、知识过时、多步骤任务遗忘、复杂规划失效。

三类框架核心差异集中在思考、行动、规划三者的时序与解耦方式:

  1. CoT:仅内部思维推理,无显式行动 / 工具
  2. ReAct:思维 + 行动交替循环,边想边做
  3. Plan-and-Execute:先整体规划,再分步执行,规划与执行完全分离

模型执行方式

CoT

只做内部推理,没有工具调用和环境交互

强制LLM把复杂问题拆解为连续、递进的自然语言中间推理步骤,代替直接输出

ReAct

将内部思考和外部行动耦合为一个循环单元:

Thought:根据已有信息分析当下要做什么;

Action:调用工具执行;

Observation:输出循环单元的执行结果

将observation塞回上下文进行下一次循环,直到输出结果被判断到有最终结果。

每轮循环增量迭代,通过上一轮的输出结果调整下一步的工作方向。

Plan-and-Execute

强解耦为两个阶段:

全局前置规划(Plan):将输入的完整任务交由LLM拆解为执行计划;

执行阶段(Execute):遍历每一个子任务,并根据子任务需求调用工具执行,子任务内部采用循环模式。

模型可以看到整体的执行规划,避免任务跑偏。

三种模式并不是严格分离的,例如:

Plan-and-Execute + ReAct(最通用):Planner 生成全局任务清单,每个子任务内部使用 ReAct 循环调用工具;兼顾全局规划与灵活工具交互,数据分析、自动化办公 Agent 均采用该架构。

CoT 嵌入 ReAct/Plan 执行内部:在每一步工具调用前,用 CoT 思维链辅助精细逻辑推演,降低模型幻觉;例如计算步骤中先用 CoT 拆解算式,再调用计算器。

任务场景对比

纯推理

CoT只适合纯推理场景,不具备调用工具和与外部交互的能力,完成推理仅依赖已有知识,如数学逻辑推理题、文本写作类等基于已有规则的问题。

对于需要实时数据或者时效性高的场景不适用。

线性短流程工作

ReAct可以通过调用工具扩展自己在推理时的知识面,从而达到实时性的效果。适用于通用资讯问答、企业知识库问答等。

Eg:杭州未来一周的天气变化

Thought:调用工具查询杭州天气;

Action:search【date-date+7】的天气数据

Observation:返回7天内的天气数据;

Thought:分析天气变化;

Action:LLM;

Observation:返回天气变化分析;

Finish。

长流程工作

Q:查询杭州、宁波未来一周天气预报,对比两地平均气温,给出出行建议。

Plan:查询杭州一周天气——查询宁波一周天气——分析天气状态和气温——给出适合对应气温的穿衣推荐以及装备推荐;

Execute:逐步执行计划,内部 ReAct。

ReAct任务跑偏

以Plan-and-Execute示例的场景来看,如果没有plan直接执行:

第 1 轮

Thought:查询杭州未来一周的天气;

Action:search ("杭州未来一周天气");

Observation:杭州未来 7 天 24~32℃,多晴,周三局部阵雨,紫外线强。

第 2 轮(主线任务断裂起点)

正常目标:下一步查宁波一周天气。

但模型仅基于本轮观测局部思考,被 “紫外线、阵雨” 干扰跑偏:

Thought:杭州周三有阵雨,需要查杭州 7 月降雨历史数据判断雨量大小;

Action:search ("杭州历年 7 月每周降雨量统计");

Observation:杭州 7 月单周平均降雨 28mm,短时阵雨持续 2 小时左右。

第 3 轮(彻底偏离原始需求)

Thought:既然查到降雨均值,对比宁波往年 7 月周降雨量;

Action:search ("宁波历年 7 月每周降雨量");

Observation:宁波 7 月单周平均降雨 42mm,近海阵雨频次更高。

第 4 轮(陷入旁支循环,完全遗忘 “未来一周气温对比” 核心目标)

Thought:两地历史降雨量差距 14mm,计算差值;

Action:Calculator (42-28);

Observation:14。

第 5 轮(直接终止,输出完全无关答案)

Thought:现有降雨数据充足,可以结束任务;

Final Answer:杭州 7 月单周平均降雨 28mm,宁波 42mm,宁波周降雨量比杭州多 14 毫米。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐