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 分层------:连接能力与流程知识如何组合

相关推荐
nnsix12 小时前
设计模式 - 建造者模式 笔记
笔记·设计模式·建造者模式
cui178756813 小时前
矩阵拼团 + 复购拼团:新零售最稳的复购模式,规则简单
大数据·人工智能·设计模式·零售
百珏13 小时前
[灰度发布]:全链路透传组件:APM、自研方案与 Java Agent 的实现取舍
后端·设计模式·架构
likerhood15 小时前
设计模式 · 享元模式(Flyweight Pattern)java
java·设计模式·享元模式
AI大法师15 小时前
从 Adobe 焕新看品牌系统升级:Logo、主色、字体与产品体验如何重新对齐
大数据·人工智能·adobe·设计模式
贵慜_Derek16 小时前
《从零实现 Agent 系统》连载 03|控制循环:感知—决策—行动—反思
人工智能·设计模式·架构
nnsix16 小时前
设计模式 - 原型模式 笔记
笔记·设计模式·原型模式
nnsix17 小时前
设计模式 - 适配器模式 笔记
笔记·设计模式·适配器模式
asdfg125896317 小时前
一文理解软件开发中的“设计模式”
java·设计模式·软件开发
云飞云共享云桌面18 小时前
SolidWorks 服务器通过云飞云共享云桌面10人研发共享方案
运维·服务器·3d·设计模式·电脑