第四章 Agent的几种经典范式

🔄 第一节 ReAct范式

1.1 核心思想

ReAct(Reasoning and Acting) 将推理与行动紧密结合,形成"思考-行动-观察"的循环机制:

  • 思考(Thought):分析当前状况,规划下一步行动

  • 行动(Action):调用工具执行具体操作

  • 观察(Observation):获取行动结果,作为下一轮思考的输入

1.2 实现关键组件

复制代码
# 核心循环结构
for step in range(max_iterations):
    thought = generate_thought(history, question)
    action = parse_action(thought)
    observation = execute_tool(action)
    history.append(f"Thought: {thought}\nAction: {action}\nObservation: {observation}")

1.3 优势与局限

优势

  • 高可解释性:思维过程完全透明

  • 动态纠错:根据观察结果调整策略

  • 工具协同:完美结合LLM推理与外部工具能力

局限

  • 可能陷入循环:需要设置最大迭代次数

  • 上下文膨胀:历史记录不断增长可能影响性能

📋 第二节 Plan-and-Solve范式

2.1 两阶段工作流

规划阶段执行阶段

  1. 规划器(Planner):将复杂任务分解为步骤清晰的计划

  2. 执行器(Executor):严格按照计划逐步执行

2.2 架构设计

复制代码
class PlanAndSolveAgent:
    def plan(self, question): 
        # 生成结构化计划
        return ["步骤1", "步骤2", "步骤3"]
    
    def solve(self, plan):
        # 按计划执行
        for step in plan:
            result = self.execute_step(step)
        return result

2.3 适用场景

  • 数学推理问题

  • 需要严格步骤的任务

  • 结构化程度高的复杂问题

🤔 第三节 Reflection范式

3.1 自我优化循环

执行 → 反思 → 优化 的迭代过程:

  1. 执行:生成初步解决方案

  2. 反思:批判性分析当前方案的不足

  3. 优化:基于反馈改进方案

3.2 记忆管理系统

复制代码
class Memory:
    def add_record(self, execution, reflection, refinement):
        # 存储完整迭代轨迹
        self.records.append({
            'execution': execution,
            'reflection': reflection, 
            'refinement': refinement
        })

3.3 核心价值

  • 质量提升:通过多轮迭代优化解决方案

  • 自我纠错:发现并修复逻辑漏洞

  • 经验积累:构建可复用的学习轨迹

🛠️ 第四节 环境准备与基础工具

4.1 技术栈配置

  • Python 3.10+:基础编程语言

  • OpenAI API:LLM服务调用

  • 环境变量管理:安全存储API密钥

4.2 LLM客户端封装

复制代码
class HelloAgentsLLM:
    def invoke(self, messages, **kwargs):
        # 统一调用接口,支持多提供商
        return response

📊 三种范式对比分析

范式 核心策略 优势 适用场景
ReAct 动态规划、边想边做 高适应性、实时调整 探索性任务、需要外部信息的场景
Plan-and-Solve 先规划后执行 结构化、目标明确 逻辑清晰、可分解的任务
Reflection 迭代优化 高质量输出、自我改进 对结果质量要求高的任务
相关推荐
云小逸4 小时前
【 VS2013 集成 Qt5.7.1 踩坑记录:moc/uic/rcc 报“系统找不到指定的路径”怎么解决?】
开发语言·windows·qt
一起逃去看海吧4 小时前
DIFY-02-ollama安装与接入大模型
python
YuanDaima20485 小时前
云计算基础与容器技术演进
java·服务器·人工智能·python·深度学习·云计算·个人开发
石山代码5 小时前
c++类型判断
开发语言·c++
froginwe115 小时前
传输对象模式
开发语言
Hello:CodeWorld5 小时前
μC/OS vs FreeRTOS:嵌入式实时操作系统深度对比
c语言·开发语言·单片机
绝世唐门三哥5 小时前
ES6 --- import/export 全解析
开发语言·前端·javascript
yqcoder5 小时前
JavaScript 异步基石:Promise 完全指南
开发语言·前端·javascript
wangl_925 小时前
初探 C# 15 的 Union Types
java·开发语言·算法·c#·.net·.net core
小小秃头怪5 小时前
径向网格构建
python