1. ReAct
flowchart LR
T["Thought"] --> A["Action"] --> O["Observation"] --> T
- 优点(Adv): 简单、灵活度高,逻辑透明。
- 缺点(Dis): 长流程、多步骤任务容易跑偏。
2. Plan-and-Execute
定义: 先规划,然后一步一步执行。
- 可用大模型做 Planner,小模型做 Executor,节省 Token。
- 优点(Adv): 结构清晰,进度可控,超长任务不易跑偏。
- 缺点(Dis): 灵活度不如 ReAct,实况反馈不够及时。
3. Reflection
- 在 ReAct 或 Plan-and-Execute 中加入自我检查、修正。
- 目标:提高任务质量。
- 优点(Adv): 输出质量高,发现错误可以修正,减少错误。
- 缺点(Dis): Token 消耗和延迟增加。
flowchart LR
E["执行任务"] --> C["自我检查"]
C --> D{"是否有问题?"}
D -->|有| R["修正"]
R --> E
D -->|无| F["输出结果"]
4. 进阶
4.1 动态 RePlan
- 每步执行完毕,将当前结果和剩余计划送回规划模块。
- 再由规划模块决定后续执行。
- 代价: 增加 Token 消耗。
flowchart LR
P["当前计划"] --> E["执行一步"]
E --> F["当前结果 + 剩余计划"]
F --> R["重新规划 RePlan"]
R --> P
4.2 Reflexion
- 把失败原因总结写入记忆中,供后续 LLM 使用。
flowchart LR
F["失败 / 反馈"] --> R["原因总结"]
R --> M["写入记忆"]
M --> N["后续 LLM 使用"]
4.3 Token 消耗(原笔记所记顺序)
ReAct > Plan-and-Execute + Reflection > P&E
注:这里忠实保留了原笔记中的比较顺序。实际 Token 消耗取决于任务、循环轮次、模型及 Reflection 的使用频率,并不是固定的大小关系。