Skip to main content
Version: 1.0

Agent 设计模式

设计模式是介于"裸循环"与"完整框架"之间的复用层:每种模式解决一类结构性问题。先掌握 workflow 层的组合模式,再进入 Agent 层的反思与协作模式——很多"多 Agent 需求"其实是 workflow 组合没做对。

Workflow 层:确定性的组合​

流程可预先确定时,不需要 Agent。常用组合模式:

提示链(Prompt Chaining)​

任务拆成固定串行的 LLM 节点,每个节点专注一件事,中间可加校验门(不通过就早退或重试)。

提取要点 ──校验──→ 按要点写作 ──校验──→ 润色输出

适用:任务可清晰分解、质量可通过中间校验兜住。分步调用通常比一次大调用更准也更便宜。

路由(Routing)​

入口先分类,再分发到不同分支处理。分类可用小模型或规则。

请求 ──→ 分类器 ─┬── 技术类 ──→ 走技术模板
├── 投诉类 ──→ 走安抚 + 工单
└── 闲聊类 ──→ 轻量直答

适用:输入异质、各分支最优策略差异大。价值同时体现在效果与成本(简单分支不必用重配置)。

并行化(Parallelization)​

多个 LLM 调用同时执行:分段(各处理一部分后拼接,如多文档摘要)或多投票(同一问题多次采样,投票取优,提升可靠性)。

文档集 ──┬── LLM 摘要 A ──┐
├── LLM 摘要 B ──┼──→ 合并
└── LLM 摘要 C ──┘

适用:可切分可独立处理、或需要以延迟换可靠性。

编排者-工人(Orchestrator-Workers)​

由一个 LLM 动态决定"拆成哪些子任务、派给谁",工人完成后由编排者合成。注意:只有拆分决策交给 LLM,子任务的执行结构仍是确定的,所以它仍偏 workflow 一侧。

适用:子任务形态无法预先穷举,但总体流程收敛(拆分 → 执行 → 合并)。

评估者-优化者(Evaluator-Optimizer)​

一个 LLM 生成,另一个 LLM 评估并给出修改意见,循环至达标。

生成器 ──→ 评估器(打分 + 修改意见)──┬─ 不达标 ──→ 回生成器
└─ 达标 ──→ 输出

适用:有明确的可迭代质量标准(如翻译的信达雅、代码过测试)。

Agent 层:动态决策的模式​

ReAct:推理与行动交替​

最基本的 Agent 模式:每轮先显式推理(Thought)再行动(Action)再观察(Observation)。推理过程外置到文本中,使决策可追溯、可调试。

Thought: 用户问的是制度原文,需要先检索知识库
Action: search_knowledge_base("教师 考勤 制度")
Observation: 找到 3 条相关条款……
Thought: 条款不完整,缺少请假部分,再查一次
Action: search_knowledge_base("教师 请假 流程")
Observation: ……
Thought: 信息已足够,开始组织答案

反思(Reflection)​

在行动之外插入自我批评环节:生成初稿 → 自评(对照目标找缺陷)→ 修订。可以每轮反思,也可以在任务完成后整体反思。

适用:质量优先且容得下额外轮次。注意反思依赖模型自我评估能力,弱模型的自评可能流于表面。

计划-执行(Plan-and-Execute)​

先产出完整计划,再逐步执行;执行中遇到计划外情况,触发重规划(replan)。

目标 ──→ 规划器(生成步骤清单)──→ 逐步执行 ──┬─ 顺利 ──→ 下一步
└─ 受挫 ──→ 重规划

适用:长任务。计划给了执行一个"全局视角",避免 ReAct 式走一步看一步的短视。

多 Agent 协作​

把任务交给多个角色化的 Agent,典型结构:

结构形态适用
监督者模式一个协调者分解并分派,汇总结果复杂任务的分工
辩论模式多 Agent 对同一问题持不同立场互驳开放性判断、减少单一偏见
流水线模式按专业接力(研究员 → 写手 → 审校)阶段能力差异明显

多 Agent 的真实收益来自上下文隔离:每个 Agent 只看自己负责的上下文,避免单一上下文被多目标稀释;同时每个角色可以有独立的最优模型配置(便宜的干粗活,贵的做决策)。代价是通信成本与协调失败模式,先证明单 Agent 上下文管理已是瓶颈,再上多 Agent。

模式选择速查​

流程能预先写死吗?
├── 能 ──→ 需要中间校验/分类/并行吗?
│ ├── 串行可解 ──→ 提示链
│ ├── 输入异质 ──→ 路由
│ ├── 可并行/需投票 ──→ 并行化
│ └── 需动态拆分 ──→ 编排者-工人
└── 不能 ──→ 需要自我修正吗?
├── 需要边走边纠 ──→ ReAct + 反思
├── 任务长且怕跑偏 ──→ 计划-执行
└── 上下文/角色确实需要隔离 ──→ 多 Agent

模式之间是组合关系:一个生产系统往往"外层路由、中层 workflow、内层局部 Agent"。模式的落地工具(工具协议、记忆、状态管理)继续见后续文章。