ADPS Agent 设计模式白皮书

模式目录与选型框架

认知功能 × 执行拓扑 · 28 个核心模式 + 6 个扩展与候选模式 · 34 份模式规范。

版本
v0.3
状态
公开评审稿
发布日期
2026-07-13
核心模式
28
扩展与候选
6
许可
CC BY 4.0

范围:本版提供共同的架构词汇与评审框架,不对产品、实现或组织成熟度作认证。

白皮书定义模式的问题、分类、机制、适用条件、失效方式与验证标准。蓝皮书案例报告记录模式组合在具名企业约束下的实际表现。

目录用坐标组织模式。坐标同时指出承压的认知功能和承载控制流的执行拓扑,使不同系统的架构选择与失败记录可以比较。

为什么 Agent 需要一套新的设计模式

GoF 设计模式处理对象之间的协作,分布式系统模式处理服务、网络、存储和故障。Agent 系统里多了一类新主体:模型会在不完全信息下做判断,还会调用工具去影响外部世界。传统软件的控制流主要由代码决定,Agent 系统里有一部分控制流会经过模型判断。

用户说一句话,模型要判断它是闲聊、查询、分析、执行,还是需要人审。工具返回一段结果,模型要判断证据够不够。长任务跑到中途,模型要判断继续、回滚、重新取证,还是停下来请人。这些判断如果只停留在自然语言里,系统很快会失去可控性。Agent 设计模式要做的,就是把这些判断重新落回工程结构——路由、状态、证据、权限、日志、回滚和评估。

两条轴

认知功能(行)回答 Agent 在做什么类型的工作,七类:感知、记忆、推理、行动、反思、协作、治理。

执行拓扑(列)回答工作长什么形状,六类。可以记成六个动词:传、选、撒、协、转、分。

执行拓扑速记适合什么
链式 Chain步骤稳定,前一步的输出直接交给后一步
路由 Route先分类,再选择模型、工具、流程或人审路径
并行 Parallel多路同时展开,用成本换质量或时长
编排 Orchestrate一个中心协调者维护全局目标、任务账和汇总
循环 Loop生成、观察、修正、再生成,直到收敛或熔断
层级 Hierarchy多层职责、权限、记忆或防护边界

两轴相交,形成 7 × 6 = 42 格的矩阵。其中 28 格落有命名模式——一部分借自已有文献(RAG、思维链、规划执行),一部分是为之前无名的格子在本框架里第一次命名(上下文分诊、失败日记、可观测性等)。剩下的 14 格是有意空白,代表工业空白和未来研究的前沿。

28 模式矩阵——7 个认知功能 × 6 种执行拓扑
28 模式矩阵。行为认知功能,列为执行拓扑。空白格是工业空白与未来研究的前沿。

下面是同一张矩阵的文字版,便于检索和引用。

认知功能链式 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 章代码目录
感知 PerceptionP1–P4感知模块Ch3 Perceptionperception/
记忆 MemoryM1–M4(+M5 扩展)记忆模块Ch4 Memorymemory/
推理 ReasoningR1–R4(+R5 扩展)推理模块Ch5 Reasoningreasoning/
行动 ActionA1–A3、A4(+A5 扩展)行动模块Ch6 Actionaction/
反思 ReflectionF1–F4反思模块Ch7 Reflectionreflection/
协作 CollaborationC1–C4(+C5、C6 扩展)协作模块Ch8 Collaborationcollaboration/
治理 GovernanceG1–G3、G4(+G5 扩展)治理模块Ch9 Governancegovernance/

模式页只列已经存在的关联资料。未附现场记录的模式会明确标注“当前无公开评审案例”,不以示例代替证据。

关于《Agent 设计模式之美》专栏

白皮书和《Agent 设计模式之美》专栏写的是同一套框架,但服务两类需要,体例完全不同。

白皮书是收敛的、跨角色的技术参考。每个模式压成一页,回答四件事——它解决什么问题、什么时候该用、哪里容易出错、上线后看哪些指标。读者是整个团队,目标是让产品、架构、研发、合规在十分钟内对齐"我们要做的是哪个坐标的 Agent"。

专栏是展开的、面向工程师的深度教程。同一个模式,专栏会拆开主流框架的源码、横切八个框架的实现差异、给出可运行代码、复盘真实工程现场踩过的坑。白皮书告诉你"用不用、怎么不踩坑",专栏告诉你"怎么动手把它做出来、做对"。两者互为指针。

延伸阅读

引用建议:ADPS,《Agent 设计模式白皮书:模式目录与选型框架》,v0.3,2026-07-13。

CC BY 4.0