智能体经典范式
1. 范式概述
智能体的核心是连接 LLM 与外部世界,通过不同的"思考-行动"策略完成任务。三大经典范式代表了三种截然不同的问题解决策略:
- ReAct:边想边做,动态调整。
- Plan-and-Solve:三思后行,先规划后执行。
- Reflection:自我批判,反思迭代优化。
2. ReAct (Reason + Act)

2.1 核心机制
- 核心思想 :将推理 (Reasoning) 与行动 (Acting) 显式结合,形成 "思考-行动-观察" 循环。
- 解决痛点:弥补"纯思考 (CoT)"易幻觉/无交互,与"纯行动"缺规划/无纠错的缺陷。
- 工作流 :
- Thought (思考):内心独白(分析现状、拆解任务、规划下一步)。
- Action (行动) :调用外部工具(如
Search['query'])或输出Finish[最终答案]。 - Observation (观察):工具执行后返回的结果。
- 循环:将 Action 和 Observation 追加至历史记录,直到得出答案或触发最大步数限制。
- 适用场景:需外部知识(实时搜索)、需精确计算(计算器)、需 API 交互。
2.2 工程实现要点
- 工具三要素:名称 (Name)、描述 (Description, LLM 依赖此判断何时调用)、执行逻辑 (Function)。
- Prompt 模板 :明确角色、注入可用工具清单、强制
Thought/Action输出格式、动态拼接历史记录。 - 核心循环:格式化 Prompt → 调用 LLM → 正则解析输出 → 执行工具/结束 → 整合历史上下文。
- 安全机制 :设置
max_steps防止智能体陷入无限循环。
2.3 优劣势与调试
| 维度 | 优势 | 局限性 |
|---|---|---|
| 可解释性 | Thought 链清晰展示决策"心路历程" | - |
| 规划能力 | 走一步看一步,可根据观察结果动态纠错 | 缺乏全局观,易陷局部最优或原地打转 |
| 能力边界 | LLM 规划 + 工具执行,突破知识/计算局限 | 强依赖 LLM 逻辑推理与格式化输出能力 |
| 工程效率 | - | 串行调用多次,耗时/成本高;Prompt 格式脆弱 |
调试技巧:
- 打印完整最终 Prompt(追溯决策源头)。
- 打印 LLM 原始输出(判断是模型未遵循格式,还是解析正则有误)。
- 验证工具的输入输出格式是否匹配。
- 增加 Few-shot 示例(提供成功的 T-A-O 案例)引导模型。
- 更换更强模型或设
temperature=0保证确定性。
3. Plan-and-Solve (先谋后动)

3.1 核心机制
- 核心思想 :解决复杂多步任务易"偏离轨道"的问题,将流程解耦为规划 与执行两阶段。
- 工作流 :
- 规划阶段 (Planning):接收完整问题,输出结构化、分步骤的行动计划。
- 执行阶段 (Solving):严格按计划逐条执行,每一步依赖原始问题、完整计划与历史执行结果。
- 形式化表达 :
- 生成计划: P = π p l a n ( q ) P = \pi_{plan}(q) P=πplan(q)
- 逐步执行: s i = π s o l v e ( q , P , s < i ) s_i = \pi_{solve}(q, P, s_{<i}) si=πsolve(q,P,s<i)
- 适用场景:结构性强、可清晰分解的任务(多步数学应用题、报告撰写、代码生成)。
3.2 工程实现要点
- Planner Prompt :强制输出结构化格式(如 Python 列表
["步骤1", "步骤2"]),极大简化代码解析,提升稳定性。 - Executor 状态管理:记录每步执行结果,作为上下文传递给后续步骤,确保信息链条不断裂。
- 执行 Prompt:需包含原始问题、完整计划、历史步骤结果、当前待执行的具体步骤。
3.3 优劣势
| 维度 | 优势 | 局限性 |
|---|---|---|
| 目标一致性 | 先画蓝图再施工,避免中间步骤迷失方向 | 依赖初始计划质量,若计划有误则全盘皆错 |
| 结构性 | 任务拆解清晰,适合复杂逻辑推理 | 执行中不易动态调整,缺乏对外部反馈的灵活响应 |
| 稳定性 | 格式化输出便于解析,执行路径明确 | 不适合探索性强、需频繁试错的任务 |
4. Reflection (反思迭代)

这里做了简化,只画了存入"反思文本 (Reflective text)"。但在实际的工程实现和经典的 Reflexion 论文中,长期记忆 (Experience) 通常不仅包含反思,还会(选择性)包含以前几轮的短期记忆 (Trajectory)。
4.1 核心机制
- 核心思想 :为智能体引入事后自我校正循环,像人类一样审视初稿、发现不足、迭代优化。
- 解决痛点:初始答案可能存在谬误或效率低下,一次性执行无法保证高质量。
- 工作流 :
- 执行 (Execution):使用 ReAct/Plan-and-Solve 等方法生成初步解决方案("初稿")。
- 反思 (Reflection):调用独立 LLM 扮演"评审员",从事实性、逻辑、效率、遗漏等维度评估,生成结构化反馈。
- 优化 (Refinement):将"初稿"和"反馈"作为新上下文,生成修订稿。
- 循环:重复迭代,直到不再发现新问题或达到最大迭代次数。
- 形式化表达 :
- 生成反馈: F i = π r e f l e c t ( T a s k , O i ) F_i = \pi_{reflect}(Task, O_i) Fi=πreflect(Task,Oi)
- 优化输出: O i + 1 = π r e f i n e ( T a s k , O i , F i ) O_{i+1} = \pi_{refine}(Task, O_i, F_i) Oi+1=πrefine(Task,Oi,Fi)
- 适用场景:对质量/准确性要求极高的任务(关键代码生成、技术报告、复杂逻辑推演、决策支持)。
4.2 工程实现要点
- 短期记忆模块:存储每次"执行-反思"循环的完整轨迹,避免冗余信息传入评审员。
- 评审员 Prompt:需严格、有针对性(如"极其严格且专注于算法效率"),驱动深度优化。
- 终止条件:反思阶段判断"无需改进"或达到最大迭代次数。
4.3 成本收益分析
| 维度 | 收益 | 成本 |
|---|---|---|
| 质量 | 从"合格"到"优秀"的跃迁,修复逻辑漏洞 | 每轮迭代至少增加 2 次 LLM 调用 |
| 鲁棒性 | 内部纠错,不依赖外部工具反馈 | 串行过程,任务延迟显著提高 |
| 记忆 | 形成短期经验记录,支持多模态反思 | 提示工程复杂度上升,需为不同阶段设计 Prompt |
策略定位:典型的"以成本换质量",适合高质量要求、实时性宽松的场景。
5. 三大范式综合对比与选择策略
| 特性 | ReAct | Plan-and-Solve | Reflection |
|---|---|---|---|
| 决策模式 | 反应式:走一步看一步,动态调整 | 蓝图式:先全局规划,后严格施工 | 迭代式:执行-反思-优化,持续改进 |
| 纠错方式 | 根据外部 Observation 动态调整 | 依赖初始计划质量,执行中不易改道 | 内部自我批判,事后修正逻辑/策略错误 |
| 上下文依赖 | 历史 Action + Observation | 完整 Plan + 历史 Step Results | 初稿 + 评审反馈 + 历史迭代轨迹 |
| 核心优势 | 环境适应性强,适合探索性任务 | 结构稳定,目标一致性高 | 质量跃迁,鲁棒性强 |
| 主要局限 | 缺全局观,易陷局部最优,效率低 | 计划有误则全盘皆错,灵活性差 | 成本高,延迟大,Prompt 复杂 |
| 最佳场景 | 需外部工具交互、实时信息获取 | 逻辑严密、可清晰拆解的结构性任务 | 高质量要求、复杂代码/报告生成 |
| 成本/延迟 | 中(多次工具调用) | 中(多次步骤执行) | 高(多轮反思+优化) |
6. 核心总结
- ReAct 胜在灵活与交互,适合需要不断获取外部信息并调整策略的场景。
- Plan-and-Solve 胜在稳定与全局观,适合步骤明确、需严格逻辑传递的复杂任务。
- Reflection 胜在质量与深度,适合对结果准确性、可靠性有极高要求的关键任务。
- 智能体开发本质 :Prompt 工程 + 状态管理 + 工具调度 + 迭代策略 的闭环。
- 选择策略:根据任务的核心需求(探索性/结构性/高质量)和约束(实时性/成本)选择最合适的范式,或组合使用。