2.2 思考-行动-观察——决策循环与设计模式
小李的团队来了个新实习生小张。小李给他布置了三种任务,观察他怎么完成:
- 简单 Bug 修复:小张看代码 → 改一行 → 跑测试 → 通过 → 完成
- 新功能开发:小张先列计划 → 逐步实现 → 逐个验证 → 全部完成
- 代码审查:小张审查 → 发现问题 → 提修改 → 再审查 → 还能更好 → 再改 → 满意
三种任务,三种工作方式。Agent 也是一样——不同的任务,需要不同的决策模式。
五种设计模式
模式一:ReAct——边想边干
ReAct(Reasoning + Acting)是 Agent 最基础的决策模式:思考 → 行动 → 观察 → 再思考,循环直到完成。
小李让 Agent 查询「特斯拉 2024 年销售额」:
思考:需要搜索特斯拉 2024 年的财务数据
行动:搜索 "Tesla 2024 annual revenue"
观察:找到特斯拉 2024 年财报链接
思考:需要阅读财报获取具体数字
行动:打开财报页面
观察:2024 年总营收 977 亿美元
思考:需要区分汽车业务和其他业务
行动:搜索 "Tesla 2024 automotive revenue breakdown"
观察:汽车业务 748 亿,能源业务 104 亿,服务业务 125 亿
思考:已获得足够信息,可以回答
输出:特斯拉 2024 年总营收 977 亿美元……ReAct 的精髓:每一步都先想清楚要做什么、为什么做,然后行动,再根据观察调整方向。
| 优点 | 缺点 |
|---|---|
| 灵活,能应对意外情况 | 可能走弯路 |
| 每一步都有推理,可追溯 | 每步都思考,Token 消耗高 |
| 适合需要外部信息的任务 | 可能陷入无限循环 |
模式二:Plan-Execute——先想后干
Plan-Execute 把决策分成两阶段:先做完整计划,再按计划执行。
小李让 Agent 做投资分析:
=== 规划阶段 ===
目标:分析三家新能源汽车公司的投资价值
计划:
1. 收集比亚迪、蔚来、小鹏的 2024 财报
2. 对比营收、利润率、增长率
3. 分析各自的竞争优势
4. 给出投资建议
=== 执行阶段 ===
步骤 1:收集比亚迪财报 → 完成
步骤 2:收集蔚来财报 → 完成
步骤 3:收集小鹏财报 → 完成
步骤 4:对比财务指标 → 完成
步骤 5:分析竞争优势 → 完成
步骤 6:撰写投资建议 → 完成
=== 总结阶段 ===
输出:投资分析报告Plan-Execute 的精髓:先全局规划,避免执行中迷失方向。
| 与 ReAct 对比 | ReAct | Plan-Execute |
|---|---|---|
| 决策方式 | 每步决策 | 先规划再执行 |
| 方向控制 | 容易走偏 | 不易走偏 |
| 灵活性 | 高,可随时调整 | 低,计划可能过时 |
| 适用场景 | 探索性任务 | 结构化任务 |
模式三:Reflexion——干了再反思
Reflexion 在执行后增加反思环节:执行 → 反思 → 改进 → 再执行。
小李让 Agent 写一个排序算法:
=== 第一轮执行 ===
输出:用 Python 的 sorted() 函数
=== 反思 ===
问题:sorted() 是内置函数,没有体现算法实现
改进:应该实现一个具体的排序算法
=== 第二轮执行 ===
输出:用快速排序实现
=== 反思 ===
问题:边界条件处理不完善,空列表和单元素列表会报错
改进:需要添加边界检查
=== 第三轮执行 ===
输出:完善的快速排序,含边界处理
=== 反思 ===
检查:算法正确、边界完善、时间复杂度 O(n log n)
结论:满意,输出最终结果Reflexion 的精髓:通过自我批评来提升质量。每一次反思都是一次「质量检查」。
什么时候用 Reflexion?
- 输出质量要求高时(代码、文案、分析报告)
- 第一轮输出可能有隐藏问题时
- 你有预算支持多轮迭代时
模式四:Multi-Agent——团队协作
一个 Agent 不够用?那就多个 Agent 分工协作:
- 研究员:负责信息收集和分析
- 编码者:负责代码实现
- 审查者:负责质量检查
协调者分配任务,各 Agent 专注自己的领域。这个模式在 4.1 多 Agent 协作 会深入讨论。
模式五:Hierarchical——层级指挥
比 Multi-Agent 更结构化:管理者 Agent 指挥工作者 Agent。
管理者负责「做什么」,工作者负责「怎么做」。类似现实中的项目经理和开发人员。
三种模式怎么选?
| 任务类型 | 推荐模式 | 原因 |
|---|---|---|
| 信息查询、简单操作 | ReAct | 步骤少,无需预规划 |
| 多步骤结构化任务 | Plan-Execute | 需要全局视角,防走偏 |
| 高质量输出 | Reflexion | 需要自我检查和迭代 |
| 复杂探索 | Plan + ReAct | 先规划框架,再灵活执行 |
| 高标准交付 | Plan + Reflexion | 先规划,再执行+反思 |
模式可以组合
五种模式不是互斥的,可以灵活组合:
- Plan + ReAct:先规划大方向,执行中灵活调整
- Multi-Agent + Reflexion:每个 Agent 执行后反思,协调者整合
- Hierarchical + Plan:管理者做规划,工作者执行
核心原则
从简单开始,按需升级。 能用 ReAct 解决的,不要上 Multi-Agent。模式越复杂,调试越困难,成本越高。
本节核心要点
- ReAct:思考→行动→观察循环,适合探索性任务
- Plan-Execute:先规划再执行,适合结构化任务,防走偏
- Reflexion:执行→反思→改进,适合高质量输出
- Multi-Agent:多 Agent 分工协作;Hierarchical:层级指挥
- 模式可以组合,但要从简单开始
思考题:你最近遇到的一个复杂编程任务,用哪种模式最合适?为什么?
下一节预告:Agent 怎么记住「之前做了什么」?记忆系统是 Agent 保持连贯性的关键——从工作记忆到长期记忆,四层架构全解析。