Agent 设计模式与工作流
一句话定义:Agent 开发有可复用的"套路"——Anthropic 归纳为 5 类工作流模式 + 1 类自主 Agent;选对模式比堆复杂度更重要。
1. 先判断:Workflow 还是 Agent?
这是最容易被忽略的一步。很多"上 Agent"的需求,其实用确定性 Workflow 就够了。
| 维度 | Workflow(工作流) | Agent(智能体) |
|---|---|---|
| 控制流 | 代码/图显式固定 | LLM 动态决定下一步 |
| 可预测性 | 高,可复现 | 低,非确定 |
| 适用 | 步骤已知、追求稳定成本 | 步骤开放、需根据环境决策 |
| 成本/延迟 | 低可控 | 高且波动 |
| 调试 | 易 | 难 |
经验法则(Anthropic):
- 能写固定流程解决的,不要用 Agent。
- 只有当"无法提前预测所需步骤"且"需要与环境反复交互反馈"时,才用自主 Agent。
- 介于两者之间,用 Workflow 模式(下面 5 种)逐步提升灵活度。
2. 五种 Workflow 模式
2.1 Prompt Chaining(提示链)
把任务拆成固定步骤,每步 LLM 输出作为下一步输入。
输入 → [LLM 步骤1] → 中间结果 → [LLM 步骤2] → ... → 输出
- 适合:步骤明确、可线性分解(如 大纲→草稿→润色)。
- 关键点:可在中间加程序化检查(格式校验、断言),不通过则停止或回退。
2.2 Routing(路由)
先分类,再分派给不同专用下游(prompt / model / skill)。
输入 → [分类器 LLM] → 路由 → 分支A / 分支B / 分支C
- 适合:任务类型多样但各自处理简单(客服分流、意图分类)。
- 关键点:分类器要稳;可用小模型/规则做粗分,LLM 做兜底(见
12-补充概念/03-Skill Router)。
2.3 Parallelization(并行)
同一任务多个副本同时跑,再汇总。
- 分片(Sectioning):把大任务拆成独立子任务并行(如多文档分别摘要)。
- 投票(Voting):同一任务跑多次取多数/最优(如安全敏感判定多跑几次)。
输入 → ┬ 副本1 ┐
├ 副本2 ┼ → [聚合] → 输出
└ 副本3 ┘
- 适合:子任务无依赖、或需多角度/鲁棒性。
- 关联:
05-规划与任务分解的 Map-Reduce 扇出。
2.4 Orchestrator-Worker(编排者-工作者)
一个中枢 LLM 动态分解任务、分派给工作者、汇总结果(动态 DAG,区别于固定的 Prompt Chaining)。
[Orchestrator LLM] ←→ [Worker A]
↑ ↓ ←→ [Worker B]
└─ 汇总 ─┘ ←→ [Worker C]
- 适合:无法预知子任务集合的复杂任务(如一次改多个相关文件)。
- 关联:
06-多智能体的 Supervisor 模式。
2.5 Evaluator-Optimizer(评估-优化)
一个 LLM 生成,另一个 LLM 评估反馈,迭代直到达标。
[生成 LLM] → 产物 → [评估 LLM] → 反馈 ─┐
↑ │
└──────── 改进 ────────────────────┘ (循环)
- 适合:有明确评判标准、可迭代收敛(如代码生成+评审、翻译精修)。
- 本质:把
02-推理范式的 Reflexion 工程化为固定双角色。
3. 自主 Agent 模式
当任务开放、需与环境交互时,用 ReAct / Plan-and-Execute(见 02、05 模块)的循环。
- 当前能力的"甜点区":代码 Agent、研究 Agent、操作浏览器的 Agent。
- 风险:成本、不可控、难复现——务必配合终止条件、人在环上、预算上限。
4. 模式组合示例
真实系统常是组合:
Routing(分流) → Orchestrator-Worker(处理复杂子任务)
├─ Worker 内含 Prompt Chaining
└─ 关键产物经 Evaluator-Optimizer 校验
整体可包在自主 Agent 循环里处理意外分支
5. 选型决策表
| 你的任务特征 | 推荐模式 |
|---|---|
| 步骤固定、追求稳定 | Prompt Chaining |
| 类型多、各简单 | Routing |
| 子任务独立、要快/鲁棒 | Parallelization |
| 子任务集合无法预知 | Orchestrator-Worker |
| 有可迭代的评判标准 | Evaluator-Optimizer |
| 步骤开放、需环境反馈 | 自主 Agent(加护栏) |
6. 常见反模式
- ❌ 简单任务硬上自主 Agent(贵且不稳)。
- ❌ 用 Agent 做本可
if/else的分类。 - ❌ 并行副本无聚合/投票逻辑,结果被覆盖。
- ❌ Evaluator 与 Generator 用同一提示,互相"放水"。
7. 学习要点
- 先问"是不是 Workflow 就够了",再决定上 Agent。
- 5 种 Workflow 模式覆盖了绝大多数生产场景,且可控、便宜。
- 模式可组合;自主 Agent 应是"最后的手段"而非默认。
8. 参考资料
- Anthropic, "Building Effective Agents"(模式分类源头)
- "LLM Powered Autonomous Agents"(Weng, 综述对照)
评论
评论加载中…