引言
随着大语言模型(LLM)能力的不断提升,Agent(智能体)已成为构建复杂 AI 应用的核心范式。对于产品经理和技术人员而言,理解 Agent 的设计模式至关重要,这有助于在架构层面规划系统行为、工具调用及决策逻辑。
本文将深入解析九种主流的 Agent 设计模式,包括 ReAct、Plan and Solve、REWOO、LLMCompiler、Basic Reflection、Reflexion、LATS、Self-Discover 以及 Storm。我们将结合原理图解与代码逻辑,分析每种模式的适用场景、核心优势及局限性,帮助读者建立系统的 Agent 设计思维。
1. ReAct 模式
ReAct (Reasoning + Acting) 是 LLM Agent 领域的奠基性工作之一,发表于 2022 年 10 月。在当时 ChatGPT 尚未普及的背景下,该论文提出了让 LLM 学会使用工具的关键思路,具有开创性意义。
1.1 原理详解
在 ReAct 出现之前,推理(Reasoning)和行动(Action)通常是割裂的。例如,让孩子去厨房拿胡椒粉,若仅使用思维链(CoT),孩子可能会列出所有步骤但无法根据环境反馈调整。ReAct 引入了 Observation(观察)环节,形成 Thought -> Action -> Observation 的循环。
- Thought: 模型对当前状态的思考。
- Action: 模型决定执行的具体操作(如调用 API)。
- Observation: 外部工具返回的结果,作为下一步推理的依据。
这种机制赋予了 Agent 短期记忆能力,使其能够根据执行结果动态调整后续策略。
1.2 实现逻辑
在 LangChain 等框架中,ReAct 的实现通常包含以下关键步骤:
- 提示词构建:将预设的 ReAct 模板(Question->Thought->Action->Observation)与用户问题合并。Few-shot 示例需根据具体领域定制,例如将 Action 映射为具体的 API 接口。
- 生成 Thought+Action:调用大模型生成中间思考过程和操作指令。通过设置 Stop Token(如 "Observation"),防止模型直接输出观察结果,确保流程可控。
- 工具调用:解析 Action 字段,判断是否为结束指令。若非结束,则利用 Function Calling 将自然语言转换为 API 请求参数。
- 生成 Observation:获取工具返回数据,将其转化为自然语言描述,作为新的上下文输入给模型。
- 迭代与输出:重复上述过程直至 Action 为 Finish,最终将结果转化为用户可读的自然语言。
1.3 优缺点分析
- 优点:逻辑清晰,可解释性强,适合需要多步推理和工具调用的任务。
- 缺点:每次交互都需要完整的上下文传递,Token 消耗较大;若工具响应错误,可能导致死循环。
2. Plan and Solve 模式
Plan and Solve 模式强调先规划后执行。如果说 ReAct 适合'厨房拿胡椒粉'这类简单任务,那么 Plan and Solve 更适合'西红柿炒鸡蛋'这类复杂任务,其中涉及计划变更的可能性。
2.1 核心组件
- Planner(规划器):负责生成多步计划。初始 Planner 生成主计划,Replanner 则根据任务完成情况动态调整计划。
- Solver(执行器):接受查询和计划步骤,调用工具完成具体任务。
2.2 应用场景
适用于长链条任务,如数据分析报告生成、多步骤业务流程处理。其 Zero-shot 能力提升显著,允许模型在遇到意外情况(如缺少食材)时重新规划路径。
3. REWOO (Reason without Observation)
REWOO 是对 ReAct 的优化,旨在减少上下文中的冗余信息。它去掉了显式的 Observation 字段,将上一步的执行结果隐式嵌入到下一步的输入变量中。


