本篇目标 :如果说工具是"手",技能是"招式",那么 Agent 设计模式 就是"大脑的思考方式"。学会这三种模式,你的 AI 就能处理从"查天气"到"写整个项目"的各种复杂度任务。
一、什么是 Agent(智能体)?
Agent = LLM(大脑) + Memory(记忆) + Tools(工具) + Planning(规划) 。
它不再是一个简单的问答机器,而是一个能自主行动的数字员工。
但这个员工怎么思考?这就是我们要讲的 设计模式。
二、模式 1:ReAct(Reason + Act)------ 边想边做
这是最经典、最通用的模式。
它的核心逻辑是:思考(Thought) -> 行动(Action) -> 观察(Observation),如此循环。
场景:查一下马斯克现在的身价是多少?
- Thought: 用户想查马斯克的身价。我不知道实时数据,得去搜一下。
- Action : 调用
google_search("Elon Musk net worth today")。 - Observation: 搜索结果显示 "$250 Billion (2025 estimate)"。
- Thought: 我拿到数据了,可以直接回答了。
- Final Answer: 马斯克现在的身价大约是 2500 亿美元。
优点 :灵活,能处理未知情况。
缺点:容易陷入死循环,或者跑偏。
三、模式 2:Plan-and-Solve(先计划再执行)------ 运筹帷幄
对于复杂任务(比如写一个贪吃蛇游戏),ReAct 模式容易"走一步看一步",写到一半发现架构错了。
Plan-and-Solve 模式要求 AI 先写出完整的计划,再一步步执行。
场景:写一个贪吃蛇游戏
- Planner :
- Step 1: 创建
index.html,包含 Canvas。 - Step 2: 创建
game.js,实现蛇的移动逻辑。 - Step 3: 实现食物生成逻辑。
- Step 4: 实现碰撞检测。
- Step 1: 创建
- Executor :
- 执行 Step 1...(完成)
- 执行 Step 2...(完成)
- ...
优点 :大局观强,不容易写歪。
缺点:如果第一步计划就错了,后面全错。
四、模式 3:Reflection(反思/自修正)------ 吾日三省吾身
这是让 AI 变聪明的关键。
它要求 AI 在执行完一步后,自己检查自己:"我做得对吗?有没有更好的办法?"
场景:写一段 Python 代码并修复 Bug
- Draft: AI 写了一段代码。
- Critique(批评): AI 自己看一遍代码,"哎呀,这里数组越界了,而且变量名不规范。"
- Refine(修正): AI 根据批评意见,重写代码。
- 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 时,问自己三个问题:
- 任务流程是固定的吗?
- 是 -> 用 Workflow(工作流)(见第 22 章)。
- 否 -> 用 Agent。
- 需要边走边看吗?
- 是 -> 用 ReAct。
- 否 -> 用 Plan-and-Solve。
- 容错率低吗?
- 是 -> 加上 Reflection 环节。
练习题:设计一个"代码重构 Agent"
任务 :你需要一个 Agent,能自动把一个乱糟糟的 Python 项目重构得整整齐齐。
请回答:
- 它应该用什么模式?
- 它的 Plan 应该包含哪些步骤?
- 它需要什么工具?
点击查看参考答案
- 模式 :Plan-and-Solve + Reflection 。
- 先计划(Plan):分析文件依赖,决定重构顺序。
- 后反思(Reflection):重构完一个文件后,运行测试,确保没改坏。
- 步骤 :
- Step 1: 扫描目录,生成依赖图。
- Step 2: 提取公共函数到
utils.py。 - Step 3: 重命名变量。
- Step 4: 运行
pytest验证。
- 工具 :
list_files,read_file,write_file,run_pytest。
下一步 :我们已经掌握了 Agent 的思考方式。但如果是多 Agent 协作 呢?比如一个"产品经理 Agent"指挥一个"程序员 Agent"?
下一章我们将学习 MCP × Skills 分层------:连接能力与流程知识如何组合