核心理念¶
Anthropic 在其权威指南《Building Effective Agents》中指出:
最成功的 Agent 实现都使用简单、可组合的模式,而非复杂框架。
Agent 架构的演进路径:
增强型 LLM → 工作流(Workflow)→ 自主 Agent(Autonomous Agent)→ 多 Agent 系统
基础构建块:增强型 LLM¶
所有 Agent 系统的基石,LLM 增加三项关键能力:
┌─────────────────────────────────┐
│ LLM 核心 │
│ ┌───────┐ ┌───────┐ ┌───────┐ │
│ │ 检索 │ │ 工具 │ │ 记忆 │ │
│ │Retrieval│ │ Tools │ │Memory │ │
│ └───────┘ └───────┘ └───────┘ │
└─────────────────────────────────┘
- 检索(Retrieval):从外部知识库获取信息
- 工具(Tools):调用 API、执行代码、操作系统
- 记忆(Memory):保留对话上下文和长期知识
ReAct 模式 — 最经典的 Agent 架构¶
核心循环: 思考 → 行动 → 观察 → 循环
用户输入
↓
┌──────────────┐
│ 思考(Reason) │ ← LLM 推理下一步
├──────────────┤
│ 行动(Act) │ ← 调用工具执行
├──────────────┤
│ 观察(Observe)│ ← 获取工具返回
└──────────────┘
↓
任务完成?──否──→ 回到思考
│
是
↓
输出结果
示例对话:
用户:北京今天的天气怎么样?
思考:我需要查询北京今天的天气信息,可以使用天气 API 工具。
行动:call_weather_api(city="北京", date="today")
观察:北京今天晴,气温 22-30°C,东南风 3 级
思考:我已经获取到天气信息,可以回答用户了。
回答:北京今天晴天,气温 22-30°C,东南风 3 级,适合外出。
优点: 灵活,能处理开放式问题 缺点: 延迟较高,每步都需要 LLM 推理
Plan-and-Execute 模式 — 先规划后执行¶
核心思想: 先全局规划,再逐步执行。
用户输入
↓
┌──────────────┐
│ 规划(Plan) │ ← 生成完整执行计划
├──────────────┤
│ 执行(Execute) │ ← 按计划逐步执行
├──────────────┤
│ 评估(Evaluate)│ ← 检查结果是否符合预期
└──────────────┘
↓
需要调整?──是──→ 重新规划
│
否
↓
输出结果
与 ReAct 的对比:
| 维度 | ReAct | Plan-and-Execute |
|---|---|---|
| 决策方式 | 每步动态决策 | 先规划再执行 |
| 适合场景 | 简单、单步任务 | 复杂、多步骤任务 |
| 效率 | 可能有无效探索 | 更有方向性 |
| 灵活性 | 高 | 中(需重规划) |
五种工作流模式(Workflow Patterns)¶
Anthropic 总结了五种核心工作流模式,它们是构建复杂 Agent 系统的积木:
1. 提示链(Prompt Chaining)¶
任务分解为顺序步骤,每步处理上一步的输出。
输入 → [LLM 1: 摘要] → [检查] → [LLM 2: 翻译] → [检查] → 输出
适用场景: 可清晰分解为固定子任务的场景。
2. 路由(Routing)¶
对输入分类后导向专门的处理路径。
输入 → [分类器] ──技术问题──→ [技术 Agent]
──商务问题──→ [商务 Agent]
──投诉建议──→ [客服 Agent]
适用场景: 输入有明确类别、需分别处理。
3. 并行化(Parallelization)¶
多个 LLM 同时处理,或同一任务拆分并行执行。
输入 → ┌─ [LLM 1: 观点A] ─┐
├─ [LLM 2: 观点B] ─┤→ [聚合] → 输出
└─ [LLM 3: 观点C] ─┘
适用场景: 需要多视角处理或降低延迟。
4. 编排器-工作者(Orchestrator-Workers)¶
中央 LLM 动态分解任务并分配给工作者。
输入 → [编排器] ──任务1──→ [工作者 1] ──┐
──任务2──→ [工作者 2] ──┤→ [编排器] → 输出
──任务3──→ [工作者 3] ──┘
适用场景: 无法预先预测子任务的复杂任务。
5. 评估器-优化器(Evaluator-Optimizer)¶
一个 LLM 生成,另一个评估反馈,循环迭代。
输入 → [生成器] → [评估器] ──不合格──→ [生成器](迭代)
│
合格
↓
输出
适用场景: 有明确评估标准、迭代能改善结果的任务(如代码生成、文案写作)。
多 Agent 系统模式¶
当单个 Agent 不够用时,多个 Agent 协作:
层级式(Hierarchical)¶
[主 Agent]
/ | \
[Agent A] [Agent B] [Agent C]
主 Agent 负责任务分解和分配,子 Agent 负责执行。
对等式(Peer-to-Peer)¶
[Agent A] ←→ [Agent B] ←→ [Agent C]
Agent 之间平等协作,通过消息传递。
竞争式(Debate)¶
[Agent A: 方案1] ──┐
[Agent B: 方案2] ──┤→ [评审] → 最优方案
[Agent C: 方案3] ──┘
多个 Agent 提出方案,通过辩论选出最优。
设计原则总结¶
- 从简单开始 — 单次 LLM 调用 + 检索往往已够用
- 可组合性 — 小模式组合成大系统
- 避免过度抽象 — 框架可能掩盖底层逻辑
- 明确权衡 — Agent 用延迟和成本换更好的任务表现
- 设置护栏 — 自主 Agent 需要安全边界
记住:最好的 Agent 系统不是最复杂的,而是最合适的。