HelloAgent.Task3
ReAct(动态执行)、Plan-and-Solve(先规划后执行)和Reflection(反思优化)
·
第四章 智能体经典范式构建 学习笔记

学习目标
- 掌握智能体构建的基础环境配置与核心组件封装
- 理解 ReAct、Plan-and-Solve、Reflection 三种经典范式的核心逻辑与工作流程
- 能够区分三种范式的适用场景、优势与局限性
- 具备从零实现基础智能体的实践能力
一、智能体基础认知
核心定义
- 现代智能体的核心:联结大语言模型的推理能力与外部世界,通过调用工具(代码解释器、搜索引擎、API等)自主完成任务
- 核心挑战:大模型"幻觉"问题、复杂任务推理循环、工具错误使用
为何"重复造轮子"
- 深入理解底层设计机制,而非仅依赖抽象框架
- 直面工程挑战(格式解析、重试机制、死循环防护),培养系统设计能力
- 从框架"使用者"转变为智能体应用"创造者",支持定制化开发
二、基础环境与组件准备
1. 环境配置
- 编程语言:Python 3.10+
- 核心依赖:
openai(模型交互)、python-dotenv(环境变量管理) - 安装命令:
pip install openai python-dotenv
2. 关键组件封装
(1)API 配置
-
新建
.env文件存储敏感信息,包含 LLM 模型ID、API密钥、服务地址,支持对接 OpenAI 官方或兼容接口的第三方服务 -
示例配置:
LLM_API_KEY="YOUR-API-KEY" LLM_MODEL_ID="YOUR-MODEL" LLM_BASE_URL="YOUR-URL"
(2)LLM 客户端封装
- 核心作用:统一管理模型调用逻辑,支持流式响应
- 关键功能:环境变量加载、参数校验、异常处理
- 核心方法:
think()接收消息列表,调用模型并返回响应结果
三、三种经典范式深度解析
(一)ReAct 范式:边想边做,动态调整
核心思想
- 模仿人类解决问题的方式,将"推理(Reasoning)"与"行动(Acting)"显式结合,形成"思考-行动-观察"闭环
- 解决痛点:纯思考型方案易产生幻觉,纯行动型方案缺乏规划能力
工作流程
- Thought(思考):分析当前状态、分解任务、规划下一步动作
- Action(行动):调用外部工具(如
Search['关键词']) - Observation(观察):获取工具执行结果
- 循环迭代:将观察结果追加到历史上下文,直至完成任务输出最终答案
关键实现
- 工具定义:需包含名称(唯一标识)、描述(模型判断使用时机的依据)、执行逻辑
- 工具执行器(ToolExecutor):统一注册、调度多种工具
- 提示词设计:明确角色、工具清单、输出格式(Thought/Action/Finish)
- 核心循环:格式化提示词 → 调用LLM → 解析输出 → 执行工具 → 整合结果
特点总结
- 优势:高可解释性(清晰的思考链条)、动态纠错能力、工具协同性强
- 局限性:依赖LLM综合能力、多次调用导致效率低、提示词格式脆弱、可能陷入局部最优
- 适用场景:需要外部知识(实时信息、专业知识)、精确计算、API交互的任务
(二)Plan-and-Solve 范式:先谋后动,按计划执行
核心思想
- 将任务拆分为"规划"与"执行"两个独立阶段,先生成完整行动计划,再严格按步骤执行
- 解决痛点:思维链在复杂任务中易"偏离轨道"的问题
工作流程
- 规划阶段(Planning):接收原始问题,生成结构化分步骤计划(如Python列表格式)
- 执行阶段(Solving):按计划逐一执行,每步结果作为下一步输入,直至完成所有步骤
关键实现
- 规划器(Planner):通过提示词引导模型生成结构化计划,强制输出格式便于解析
- 执行器(Executor):维护历史执行状态,专注解决当前步骤,仅返回结果不附加解释
- 提示词设计:规划阶段强调"步骤独立可执行、逻辑有序",执行阶段明确原始问题、计划及历史上下文
特点总结
- 优势:结构性强、目标一致性高、避免中间步骤迷失方向
- 局限性:计划静态化(缺乏动态调整)、依赖初始规划质量
- 适用场景:多步数学应用题、多信息源报告撰写、代码生成等结构化强的复杂任务
(三)Reflection 范式:自我反思,迭代优化
核心思想
- 引入"执行-反思-优化"的迭代循环,让智能体具备事后自我校正能力,持续提升结果质量
工作流程
- 执行(Execution):用ReAct或Plan-and-Solve生成初始解决方案(初稿)
- 反思(Reflection):扮演"评审员"角色,评估初稿的事实错误、逻辑漏洞、效率问题等,生成具体反馈
- 优化(Refinement):结合初稿与反馈,修正生成更完善的版本
- 循环收敛:重复迭代直至无改进空间或达到最大迭代次数
关键实现
- 记忆模块(Memory):存储"执行-反思"完整轨迹,支持轨迹序列化供模型参考
- 多角色提示词:执行提示词(完成任务)、反思提示词(批判性分析)、优化提示词(针对性修正)
特点总结
- 优势:显著提升解决方案质量、增强鲁棒性、形成短期记忆与经验沉淀
- 局限性:模型调用成本高、任务延迟增加、提示工程复杂度上升
- 适用场景:对结果准确性/可靠性要求极高的场景(关键代码生成、学术推演、决策支持)
四、三种范式对比总结
| 维度 | ReAct | Plan-and-Solve | Reflection |
|---|---|---|---|
| 核心策略 | 步进式"思考-行动"循环 | 两阶段"规划-执行" | 迭代式"执行-反思-优化" |
| 关键优势 | 动态调整、环境适应性强 | 结构清晰、目标一致 | 结果质量高、鲁棒性强 |
| 主要局限 | 效率低、依赖LLM能力 | 计划静态、缺乏灵活性 | 成本高、延迟大 |
| 适用场景 | 外部工具交互、实时信息 | 结构化复杂任务、多步骤推理 | 高质量要求、关键任务 |
| 核心组件 | 工具执行器、输出解析器 | 规划器、执行器 | 记忆模块、多角色提示词 |
五、学习总结与实践建议
核心收获
- 基础层面:掌握了环境配置、LLM封装、工具管理的核心流程,为智能体开发奠定工程基础
- 范式层面:理解了三种范式的设计逻辑差异,本质是"思考与行动"的组织方式不同
- 实践层面:明确了"提示词设计"与"输出解析"是智能体稳定运行的关键
实践方向
- 基础实践:复现三种范式的核心代码,替换不同LLM模型测试效果
- 工具扩展:为ReAct智能体添加计算器、数据库查询等工具,完善工具管理机制
- 范式融合:尝试设计混合架构(如Plan-and-Solve+Reflection),提升复杂任务处理能力
- 优化迭代:针对范式局限性进行改进(如ReAct的高效解析、Plan-and-Solve的动态重规划)
提示词是智能体的"操作手册",需明确角色、格式、任务边界
工具设计的核心是清晰的描述,让LLM能准确判断使用时机
实际开发中需平衡效果与成本,根据任务需求选择合适范式
更多推荐


所有评论(0)