26|Agent 设计模式:ReAct、Plan-and-Solve 与反射

本篇目标 :如果说工具是"手",技能是"招式",那么 Agent 设计模式 就是"大脑的思考方式"。学会这三种模式,你的 AI 就能处理从"查天气"到"写整个项目"的各种复杂度任务。


一、什么是 Agent(智能体)?

Agent = LLM(大脑) + Memory(记忆) + Tools(工具) + Planning(规划)

它不再是一个简单的问答机器,而是一个能自主行动的数字员工。

但这个员工怎么思考?这就是我们要讲的 设计模式


二、模式 1:ReAct(Reason + Act)------ 边想边做

这是最经典、最通用的模式。

它的核心逻辑是:思考(Thought) -> 行动(Action) -> 观察(Observation),如此循环。

场景:查一下马斯克现在的身价是多少?

  1. Thought: 用户想查马斯克的身价。我不知道实时数据,得去搜一下。
  2. Action : 调用 google_search("Elon Musk net worth today")
  3. Observation: 搜索结果显示 "$250 Billion (2025 estimate)"。
  4. Thought: 我拿到数据了,可以直接回答了。
  5. Final Answer: 马斯克现在的身价大约是 2500 亿美元。

优点 :灵活,能处理未知情况。
缺点:容易陷入死循环,或者跑偏。


三、模式 2:Plan-and-Solve(先计划再执行)------ 运筹帷幄

对于复杂任务(比如写一个贪吃蛇游戏),ReAct 模式容易"走一步看一步",写到一半发现架构错了。

Plan-and-Solve 模式要求 AI 先写出完整的计划,再一步步执行

场景:写一个贪吃蛇游戏

  1. Planner :
    • Step 1: 创建 index.html,包含 Canvas。
    • Step 2: 创建 game.js,实现蛇的移动逻辑。
    • Step 3: 实现食物生成逻辑。
    • Step 4: 实现碰撞检测。
  2. Executor :
    • 执行 Step 1...(完成)
    • 执行 Step 2...(完成)
    • ...

优点 :大局观强,不容易写歪。
缺点:如果第一步计划就错了,后面全错。


四、模式 3:Reflection(反思/自修正)------ 吾日三省吾身

这是让 AI 变聪明的关键。

它要求 AI 在执行完一步后,自己检查自己:"我做得对吗?有没有更好的办法?"

场景:写一段 Python 代码并修复 Bug

  1. Draft: AI 写了一段代码。
  2. Critique(批评): AI 自己看一遍代码,"哎呀,这里数组越界了,而且变量名不规范。"
  3. Refine(修正): AI 根据批评意见,重写代码。
  4. Final: 输出最终版本。

优点 :代码质量极高,Bug 少。
缺点:费 Token,慢(因为要多跑几轮)。


五、实战:如何选择模式?

任务类型 推荐模式 为什么
简单查询(查天气、查汇率) Function Calling (无模式) 直接调工具就行,不需要复杂思考。
多步探索(查某人的关系网、溯源) ReAct 因为你不知道第一步查出来什么,只能边走边看。
工程开发(写代码、写小说) Plan-and-Solve 需要严密的逻辑结构,不能想到哪写到哪。
高精度任务(写算法、翻译) Reflection 质量优先,允许慢一点。

六、代码实现(伪代码)

以 ReAct 为例,它的 Prompt 结构大概长这样:

text 复制代码
You are an intelligent agent.
To solve the user's request, you run in a loop:

1. **Thought**: Analyze what to do next.
2. **Action**: Choose a tool to use (e.g., search, calculator).
3. **Observation**: Read the tool's output.

Repeat until you have the final answer.

LangChain 中,你可以直接用 initialize_agent(agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION) 来一键启动这个模式。


本篇产出:Agent 模式选型指南

当你设计一个新的 Agent 时,问自己三个问题:

  1. 任务流程是固定的吗?
    • 是 -> 用 Workflow(工作流)(见第 22 章)。
    • 否 -> 用 Agent
  2. 需要边走边看吗?
    • 是 -> 用 ReAct
    • 否 -> 用 Plan-and-Solve
  3. 容错率低吗?
    • 是 -> 加上 Reflection 环节。

练习题:设计一个"代码重构 Agent"

任务 :你需要一个 Agent,能自动把一个乱糟糟的 Python 项目重构得整整齐齐。
请回答

  1. 它应该用什么模式?
  2. 它的 Plan 应该包含哪些步骤?
  3. 它需要什么工具?

点击查看参考答案

  1. 模式Plan-and-Solve + Reflection
    • 先计划(Plan):分析文件依赖,决定重构顺序。
    • 后反思(Reflection):重构完一个文件后,运行测试,确保没改坏。
  2. 步骤
    • Step 1: 扫描目录,生成依赖图。
    • Step 2: 提取公共函数到 utils.py
    • Step 3: 重命名变量。
    • Step 4: 运行 pytest 验证。
  3. 工具list_files, read_file, write_file, run_pytest

下一步 :我们已经掌握了 Agent 的思考方式。但如果是多 Agent 协作 呢?比如一个"产品经理 Agent"指挥一个"程序员 Agent"?

下一章我们将学习 MCP × Skills 分层------:连接能力与流程知识如何组合

相关推荐
hssfscv2 小时前
软件设计师下午题六——Java的各种设计模式
java·算法·设计模式
zhaoshuzhaoshu5 小时前
设计模式之创建型设计模式详细解析(含示例)
单例模式·设计模式·架构
倚楼盼风雨6 小时前
浅析设计模式-23种设计模式剖析
设计模式
Momentary_SixthSense1 天前
设计模式之工厂模式
java·开发语言·设计模式
Java码农也是农1 天前
Multi-Agent 系统设计模式
设计模式·agent·multi-agent
sg_knight1 天前
设计模式实战:状态模式(State)
python·ui·设计模式·状态模式·state
workflower1 天前
深度学习是通用型人工智能的基础
人工智能·深度学习·设计模式·软件工程·软件构建·制造
Meme Buoy1 天前
11.3设计模式-新
设计模式
cmpxr_1 天前
【单片机】常用设计模式
单片机·嵌入式硬件·设计模式