ADPS Agent 设计模式白皮书
模式目录与选型框架
认知功能 × 执行拓扑 · 28 个核心模式 + 6 个扩展与候选模式 · 34 份模式规范。
范围:本版提供共同的架构词汇与评审框架,不对产品、实现或组织成熟度作认证。
白皮书定义模式的问题、分类、机制、适用条件、失效方式与验证标准。蓝皮书案例报告记录模式组合在具名企业约束下的实际表现。
目录用坐标组织模式。坐标同时指出承压的认知功能和承载控制流的执行拓扑,使不同系统的架构选择与失败记录可以比较。
为什么 Agent 需要一套新的设计模式
GoF 设计模式处理对象之间的协作,分布式系统模式处理服务、网络、存储和故障。Agent 系统里多了一类新主体:模型会在不完全信息下做判断,还会调用工具去影响外部世界。传统软件的控制流主要由代码决定,Agent 系统里有一部分控制流会经过模型判断。
用户说一句话,模型要判断它是闲聊、查询、分析、执行,还是需要人审。工具返回一段结果,模型要判断证据够不够。长任务跑到中途,模型要判断继续、回滚、重新取证,还是停下来请人。这些判断如果只停留在自然语言里,系统很快会失去可控性。Agent 设计模式要做的,就是把这些判断重新落回工程结构——路由、状态、证据、权限、日志、回滚和评估。
两条轴
认知功能(行)回答 Agent 在做什么类型的工作,七类:感知、记忆、推理、行动、反思、协作、治理。
执行拓扑(列)回答工作长什么形状,六类。可以记成六个动词:传、选、撒、协、转、分。
| 执行拓扑 | 速记 | 适合什么 |
|---|---|---|
| 链式 Chain | 传 | 步骤稳定,前一步的输出直接交给后一步 |
| 路由 Route | 选 | 先分类,再选择模型、工具、流程或人审路径 |
| 并行 Parallel | 撒 | 多路同时展开,用成本换质量或时长 |
| 编排 Orchestrate | 协 | 一个中心协调者维护全局目标、任务账和汇总 |
| 循环 Loop | 转 | 生成、观察、修正、再生成,直到收敛或熔断 |
| 层级 Hierarchy | 分 | 多层职责、权限、记忆或防护边界 |
两轴相交,形成 7 × 6 = 42 格的矩阵。其中 28 格落有命名模式——一部分借自已有文献(RAG、思维链、规划执行),一部分是为之前无名的格子在本框架里第一次命名(上下文分诊、失败日记、可观测性等)。剩下的 14 格是有意空白,代表工业空白和未来研究的前沿。
下面是同一张矩阵的文字版,便于检索和引用。
| 认知功能 | 链式 Chain | 路由 Route | 并行 Parallel | 编排 Orchestrate | 循环 Loop | 层级 Hierarchy |
|---|---|---|---|---|---|---|
| 感知 | P2 语义压缩 | P1 上下文分诊 | P4 多模态融合 | — | P3 渐进发现 | — |
| 记忆 | M2 RAG(naive) | — | — | M3 进度追踪 | M2 Agentic RAG · M4 失败日记 | M1 分层保留 |
| 推理 | R1 思维链 | R2 复杂度路由 | R3 并行探索 | — | R4 迭代假设验证 | — |
| 行动 | A3 提示链 | A1 工具调度 | — | A2 规划执行 | — | A4 守卫三明治 |
| 反思 | F1 生成批评 | F2 技能包 | — | — | F4 自愈循环 | F3 经验回放 |
| 协作 | C4 交接链 | — | C2 扇出聚合 | — | C3 对抗评审 | C1 层级委派 |
| 治理 | G3 渐进承诺 | G1 审批门 | — | G4 可观测性 | — | G2 爆炸半径控制 |
矩阵有意不填满。空格提醒大家不要为了形式对称去发明不成熟的模式。其中 M2 RAG 跨两格——naive RAG 是查一次给一次的线性流水线(链式),Agentic RAG 是查、评、改写、再查的迭代(循环),一个模式随工程成熟度从链式长进循环,说明这张矩阵是描述性的、而不是非此即彼。
五个工程契约
把七个功能落到生产时,建议每个 Agent 都显式设计五个契约。Agent 系统的稳定性,通常不来自更大的模型,而来自这五个契约能不能把模型判断和工程状态对齐。
- Context Contract——哪些信息进上下文、哪些只挂句柄、哪些延迟检索、哪些丢弃(对应感知)。
- Evidence Contract——一条证据必须带 source、version、scope、citation、provenance。RAG 管业务证据,SessionState 管 employee_id、amount 这类机械真值(对应记忆)。
- Decision Contract——模型输出怎样变成结构化的 RouteDecision / PlanDecision,而不是一段自然语言(对应推理)。
- Action Contract——工具元数据、参数来源、权限、审批、人审和回滚规则(对应行动与治理)。
- Trace Contract——每个 LLM call、tool call、handoff、approval、state update 串到同一个 trace id(对应治理)。
模式白皮书目录 · 28 核心 + 6 扩展与候选 = 34
双轴框架的 28 个核心模式构成已评审矩阵。另有 6 份扩展或候选规范:M5 程序性记忆、R5 双模架构、A5 最简工具集、C5 子代理隔离、G5 钩子流水线和 C6 编舞。C6 在获得跨越协作功能的更多证据前,保持候选拓扑扩展状态。扩展条目标 扩展。
每份规范采用同一评审结构:问题、分类依据、解决方案与机制、适用条件、已知失效方式、验证指标、参考实现、应用示例、相关模式和设计结论。
感知 Perception · 4 核心
Agent 与世界的接口,把异构、嘈杂、超长的原始输入变成模型能用、信噪比高的表示。管"看什么、压多小、钻多深、怎么合"。
- P1 · 上下文分诊 — 候选信息总量超出 context 窗口预算时,决定谁先进、谁等门外、谁压根不预加载。
- P2 · 语义压缩 — Agent 跑久了 context 装满,必须压缩。保留什么、丢什么、压到什么程度,决定它接下来还能不能想清楚。
- P3 · 渐进发现 — Agent 面对陌生信息空间且不知道相关信息在哪时,先看一眼再决定钻多深,通过广扫→精读→深追三阶段循环把它探明白。
- P4 · 多模态融合 — Agent 接到的输入有图、有文、有表、有日志,把每一种转换成最适合 LLM 消化的形态,再合并喂给推理层。
记忆 Memory · 4 核心 + 1 扩展
让 Agent 在单次输入之外保留与取回知识。记忆不是上下文的无限延伸,它必须带层级、版本、作用域、过期策略和取回规则。
- M1 · 分层保留 — 把 agent 的记忆按作用域切成多层,每层独立存储、独立生命周期、独立加载策略,新会话从粗到细加载。
- M2 · 检索增强生成 — 给 agent 配一个外挂图书馆,让它在每次需要超出 context 容量的知识时,能查、能筛、能迭代地查回来用。
- M3 · 进度追踪 — Agent 在长任务中显式维护一份结构化的 todo list,每一轮把状态外部化,让 agent 自己和用户都能看见做到哪了。
- M4 · 失败日记 — Agent 把每次失败结构化记录(哪一步失败、什么错、根因、怎么补救),跨任务持久化,下次类似情况主动召回。
- M5 · 程序性记忆 扩展 — 把一类任务的成功执行流程凝固成可命名、可加载、可复用的结构化资产,下次同类任务直接调用,跳过试错进入主路。
推理 Reasoning · 4 核心 + 1 扩展
从已知推出结论、做出决策。工程的关键是给判断装上控制平面:模式、预算、证据要求、可行动作、人审边界和下一步。
- R1 · 思维链 — 把模型的推理过程显性化成一段可存储、可审计、可跨模型迁移的结构化数据,让"为什么得出这个结论"有据可查。
- R2 · 复杂度路由 — 在查询进入主循环之前按复杂度信号选模型加 effort 档位,让简单查询走便宜模型、复杂查询才用贵模型,用分流换账单。
- R3 · 并行探索 — 同一个查询内故意启动 N 条独立推理链,再用聚合策略合成单一答案,用算力换准确度。
- R4 · 迭代假设验证 — Agent 形成假设、用证据验证、根据结果修正,循环到证据收敛或达到迭代上限,把科学方法搬进推理。
- R5 · 双模架构 扩展 — 把 Agent 拆成快而浅的 Talker 和慢而深的 Reasoner,通过共享 belief state 协同,让 Agent 在深度思考的同时还能即时跟用户说话。
行动 Action · 4 核心 + 1 扩展
Agent 对世界产生作用,也就是调用工具。这是从"会说"到"会做"的分水岭,也是一切副作用和风险的来源。
- A1 · 工具调度 — Agent 在每一步行动前,由工程层依据工具元数据从工具集中挑出最合适的工具,而不是让模型自己临场决定。
- A2 · 规划执行 — Agent 先生成完整 plan(含依赖结构、资源预估、审批节点),再由编排者按 plan 执行,遇到偏离时局部 replan 而非全局重写。
- A3 · 提示链 — 把一个复杂任务拆成一串小任务,每一步用一段独立的 prompt 跑,前一步的输出作为下一步的输入,串起来完成。
- A4 · 守卫三明治 — 在 agent 每个有副作用或高风险的动作前后套上 pre-check 和 post-check 夹层,把它从"自由行动"约束到"被监督的行动"。
- A5 · 最简工具集 扩展 — 把 agent 的工具集控制在合理上限(通常 10 到 30 个),砍掉低频、合并相似、把次要工具下沉到 sub-agent,给模型留下选择的专注力。
反思 Reflection · 4 核心
Agent 检查自己、修正自己、沉淀经验,是可累积智能的核心机制。它必须绑定外部反馈、失败信号或历史轨迹,不是让模型自夸式总结。
- F1 · 生成批评 — 一个 agent 内置两个角色,Generator 写、Critic 评,generate→critique→revise 的线性精修,必要时多走几轮。
- F2 · 技能包 — 把反复成功的工作流封装成可命名、可加载、可复用的结构化资产,新任务进来按 triggers 路由到命中技能直接调用。
- F3 · 经验回放 — agent 在新任务来时主动检索历史相似任务的 trajectory,把可复用部分作为上层经验注入当前 context,让学过的东西不白学。
- F4 · 自愈循环 — agent 在 deterministic 失败信号触发时自动诊断、修复、验证、循环到收敛或熔断。
协作 Collaboration · 4 核心 + 2 扩展
多个 Agent 之间分工与协同。协作是规模逼出来的,量没起来时单 Agent 往往更稳。底线是每个 Agent 都有自己的上下文、权限、产出和失败边界。
- C1 · 层级委派 — 一个 supervisor agent 动态拆分任务、派给 N 个 worker agent 执行、再把结果合并,是经典的多 agent 主管-工人协作。
- C2 · 扇出聚合 — orchestrator 把一批可独立执行的子任务并行分发给 N 个 sub-agent,每个独立完成,最后由 aggregator 用聚合策略合并成单一输出,用 N 倍算力换 1/N 时长。
- C3 · 对抗评审 — 把一个 generator agent 跟一个或多个独立 critic agent 配在一起,通过结构化对抗循环改进输出,critic 必须用不同模型、不同 family、不同 prompt 激励。
- C4 · 交接链 — 把一个长流程拆成 N 个职责清晰的 agent,前一棒处理完后通过结构化 HandoffPacket(不是裸文本)把关键状态传给下一棒,每一棒只擅长一件事。
- C5 · 子代理隔离 扩展 — 子 agent 在独立 context 中执行,返回前必须压缩成 schema 化 artifact,主 agent 只看 artifact 不看 raw trajectory。
治理 Governance · 4 核心 + 1 扩展
约束 Agent 的权限与可追溯性。治理不是上线前临时加的安全补丁,它贯穿前面六个功能,在每一个案例里都参与模式选型。
- G1 · 审批门 — 高 blast radius 或不可逆的动作执行前,按风险路由到自动放行 / 留痕 / 人审三档之一,让人在关键决策点保留最后否决权。
- G2 · 爆炸半径控制 — 给动作分级(readonly / mutating / catastrophic),用嵌套的工程边界把单次失败的最大损失硬上限锁死。
- G3 · 渐进承诺 — Agent 的权限从只读起步,按阶段顺序解锁到可写、再到不可逆,每升一档要拿证据挣,出事立即降级。
- G4 · 可观测性 — 给 Agent 全生命周期挂五维 telemetry,跨 agent 串联 trace,让事后能回放、监管能审计、产品能决策。
- G5 · 钩子流水线 扩展 — 在工具调用与 agent step 的前后挂上 deterministic 拦截层,把不该让模型思考的事从 prompt 剥离到 hook 来保证。
编舞 Choreography:编排的去中心化孪生
六种核心拓扑都有一个共同的隐含前提——存在一个可设计的控制点。链有顺序,路由有路由器,并行有 fan-out 和 gather,循环有迭代器,层级有经理,编排有指挥。编舞的定义特征,是取消这个控制点。
编舞里没有中央指挥。每个 Agent 成为一个自治单元,只订阅自己关心的事件,事件来了就反应,反应完把结果作为新事件发回共享的事件流,不向任何中心汇报。系统的整体行为不写在某一处的流程图里,而是从所有 Agent 的局部"订阅—反应—发布"规则中涌现出来。加一个新 Agent,只要让它订阅该订阅的事件,其余 Agent 一行都不用改。它和编排是一对孪生:编排由指挥协调,编舞由事件协调。
ADPS 暂时把编舞登记为新兴拓扑、不升为核心第七列。判据是:一个拓扑要配当核心列,必须能横切多个认知功能,而编舞目前几乎只在协作这一行密集成立。再加上到 2026 年绝大多数上了生产的多 Agent 系统仍是编排式的,证据还不够厚。它强依赖可观测性(G4)——没有中央 trace,涌现行为出了问题无从查起。生产里最常见的形态,是编舞为主、关键收口处留一个薄编排的混合式。完整说明见 C6 编舞白皮书。
三套起步组合
第一次做 Agent 不知从哪入手,下面三套组合覆盖了大部分场景。任何带写权限的 Agent,G1 审批门和 G4 可观测性是底线。
- 知识问答型 Agent。P1 上下文分诊 + M2 RAG + R2 复杂度路由 + G4 可观测性。边界提醒:RAG 只提供业务证据,不提供机械真值,所有引用必须可追溯。
- 执行型 SaaS Agent。P1 + M2 RAG + M3 进度追踪 + R2 复杂度路由 + A1 工具调度 + A2 规划执行 + G1 审批门 + G2 爆炸半径控制 + G4 可观测性。边界提醒:employee_id、amount、approval_id 这类机械状态必须来自工具和 SessionState,不能让模型当场合成。
- 多 Agent 研究或审查系统。P3 渐进发现 + M2 RAG + R3 并行探索 + C1 层级委派 + C2 扇出聚合 + C3 对抗评审 + G4 可观测性。边界提醒:多 Agent 的收益来自任务规模、角色边界和独立审查,不来自"看起来更先进"。
方法论
从一个业务问题到一套 Agent 架构,走一遍六步选型法,从业务收束到 3 到 7 个模式,不要一上来把所有模式都装进系统。
- 界定(Bound)——写一页范围声明,定义做什么、不做什么。
- 映射(Map)——七个功能各打 None / Light / Heavy,得到能力向量。
- 选拓扑(Select)——按主约束确定主拓扑。
- 挑模式(Pick)——在矩阵上按坐标挑 5 到 7 个模式。
- 校预算(Assess)——用准确率、延迟、成本三轴校验组合。
- 分步落地(Build)——分三阶段建设,先跑通最小闭环,再叠反思记忆,最后叠治理。
它的入口是一张 Pattern Selection Card(模式选项卡),三个面板:ASSESS(任务需要哪些认知功能)、ROUTE(约束适配哪种拓扑)、SELECT(交叉点上住着哪些模式)。这张卡把"我要做一个 X 的 Agent"在十五分钟内变成候选模式清单。
相关资产地图
每个模式组连接模式规范、深度课程、Manning 对应章节、GitHub 参考实现,以及已经通过公开评审的蓝皮书案例报告。
| 模式组 | 白皮书 | 专栏模块 | Manning 章 | 代码目录 |
|---|---|---|---|---|
| 感知 Perception | P1–P4 | 感知模块 | Ch3 Perception | perception/ |
| 记忆 Memory | M1–M4(+M5 扩展) | 记忆模块 | Ch4 Memory | memory/ |
| 推理 Reasoning | R1–R4(+R5 扩展) | 推理模块 | Ch5 Reasoning | reasoning/ |
| 行动 Action | A1–A3、A4(+A5 扩展) | 行动模块 | Ch6 Action | action/ |
| 反思 Reflection | F1–F4 | 反思模块 | Ch7 Reflection | reflection/ |
| 协作 Collaboration | C1–C4(+C5、C6 扩展) | 协作模块 | Ch8 Collaboration | collaboration/ |
| 治理 Governance | G1–G3、G4(+G5 扩展) | 治理模块 | Ch9 Governance | governance/ |
模式页只列已经存在的关联资料。未附现场记录的模式会明确标注“当前无公开评审案例”,不以示例代替证据。
关于《Agent 设计模式之美》专栏
白皮书和《Agent 设计模式之美》专栏写的是同一套框架,但服务两类需要,体例完全不同。
白皮书是收敛的、跨角色的技术参考。每个模式压成一页,回答四件事——它解决什么问题、什么时候该用、哪里容易出错、上线后看哪些指标。读者是整个团队,目标是让产品、架构、研发、合规在十分钟内对齐"我们要做的是哪个坐标的 Agent"。
专栏是展开的、面向工程师的深度教程。同一个模式,专栏会拆开主流框架的源码、横切八个框架的实现差异、给出可运行代码、复盘真实工程现场踩过的坑。白皮书告诉你"用不用、怎么不踩坑",专栏告诉你"怎么动手把它做出来、做对"。两者互为指针。
延伸阅读
- 立场论文:arXiv:2605.13850
- Manning 书:Designing AI Agents
- 可运行代码目录:agent-design-patterns(28 模式 LangGraph + LangChain 双框架)
引用建议:ADPS,《Agent 设计模式白皮书:模式目录与选型框架》,v0.3,2026-07-13。