☰
《AI Agent原理与实战》2026版 第9课 Agent 设计模式总论
2026/10/14 3:21:40 网站建设 项目流程

本文收录于专栏《AI Agent原理与实战》2026版—— 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战,点击订阅可跟踪后续更新。

本课定位:工具就绪,Agent 怎么组织自己的行为?本课纵向拉开模式阶梯:从增强型 LLM 到五大 Workflow 模式(链式/路由/并行/编排者-工人/评估者-优化者)再到自主 Agent。判断"够不够用、要不要加复杂度"的直觉从这里建立——第 21 课的多 Agent 拓扑是这套阶梯的顶层延伸。

阶段 2|单 Agent 核心机制 | 来源:【微·3】(微软 AI Agents for Beginners 第 3 课)+ Anthropic 补充

关键字:Agent设计模式、工作流模式、提示链、路由分发、编排者-工人、评估者-优化者、Anthropic实践、模式选型

本节目录

  • 9.1 基本构建单元:增强型 LLM
  • 9.2 从简单组合到自主系统:模式阶梯
  • 9.2b 微软第 3 课的核心贡献:Agentic 设计原则
  • 9.3 Anthropic 五大 Workflow 模式
  • 9.4 模式的组合律
  • 9.5 实测输出与行为指纹(节选)
  • 9.6 动手练习

概念讲解

9.1 基本构建单元:增强型 LLM

一切 Agent 系统的原点是一个增强型 LLM(augmented LLM)——Anthropic《Building Effective Agents》开篇的第一个建筑块,在裸模型上挂三件套:

┌──────────────┐ retrieval ──→│ │←── tools(第 7-8 课) (检索外部知识)│ 增强型 LLM │ │ (基本构建单元)│←── memory(第 14 课) └──────┬───────┘ ↓ 生成 / 决策 / 调用
  • 检索(Retrieval):把外部知识(文档、数据库)按需注入上下文,弥补训练数据的时效与私域缺口——第 11 课 Agentic RAG 专门展开。
  • 工具(Tools):执行动作、改变世界——第 7、8 课已覆盖。
  • 记忆(Memory):跨轮次、跨会话保留信息——第 14 课展开。

这个单元本身就是"最小可用的智能",第 6 课的最小 Agent Loop 就是把增强型 LLM 放进"调用→观察→再调用"的循环里。后面所有模式都是这个单元的组合方式变化。

9.2 从简单组合到自主系统:模式阶梯

设计的第一决策不是"用哪个框架",而是把控制权交给谁。Anthropic 给出的口径(第 1 课引用过,这里落到结构上):

阶梯控制权结构适用
单次调用全在代码一次 LLM 请求翻译、摘要、抽取
Workflow全在代码(路径预定义)LLM 调用按固定图编排子步骤可枚举的任务
Agent在模型(动态决定路径)LLM 在循环里自主选工具、定步骤步骤无法预知的开放任务

关键分界线:workflow 里 LLM 是节点,代码是边;Agent 里 LLM 自己决定下一条边。Anthropic 的工程建议:先穷尽 workflow,不够再上 Agent——每往上一级,延迟、成本、不可预测性都非线性上升(第 4 课的决策框架展开过量化判断)。

微软第 3 课的核心贡献:Agentic 设计原则

微软第 3 课(现行版本名为AI Agentic Design Principles)不讲解代码,而是给出一份以人为中心的设计原则——它是后面所有"模式"的产品哲学底座。原课开宗明义:生成式 AI 设计中"模糊性是特性不是缺陷",工程师常常不知道从哪下手,这套原则就是起点(而非规定性架构)。先看总目标,Agent 应该:

  • 放大而非取代人的能力(brainstorming、问题求解、自动化)
  • 填补知识缺口(快速进入陌生领域、翻译、科普)
  • 以人偏好的协作方式辅助协作
  • 让我们成为更好的自己(生活教练/任务管家、情绪调节、韧性)

原则本体按三个视角组织(Space / Time / Core):

视角一:Agent(Space,空间)——Agent 运行的环境,回答"Agent 如何存在于物理与数字世界":

  • 连接而非坍缩(connecting, not collapsing):帮人连接其他人、事件与可行动的知识;Agent 拉近人与人的距离,不是设计来取代或贬低人的。
  • 易于可达、偶尔隐形(easily accessible yet occasionally invisible):大部分时候在后台运行,只在相关且合适的时机轻推(nudge)用户一下。具体要求:授权用户在任何设备/平台都能发现并访问它;支持多模态输入输出(语音、文字等);在前台/后台、主动/被动之间按感知到的用户需求无缝切换;即使以隐形形态运行,其后台处理路径与其他 Agent 的协作对用户透明且可控。

视角二:Agent(Time,时间)——Agent 如何跨过去、现在、未来运作:

  • 过去(Past):反思包含状态与上下文的历史。基于比"事件/人/状态"更丰富的历史数据给出更相关的结果;从过去事件中建立连接、主动反思记忆以应对当前情境。(与第 12 课反思、第 14 课记忆直接呼应)
  • 现在(Now):轻推而非通知(nudging more than notifying)。事件发生时超越静态通知——简化流程或动态生成提示,在对的时刻引导用户注意力;信息交付要按上下文环境、社会文化变化与用户意图定制;交互可以渐进演化、随时间提升用户能力,而不是一步到位。
  • 未来(Future):适应与演化。适配不同设备、平台与模态;适应用户行为与无障碍需求、可自由定制;通过与用户的持续互动被塑造并演化。

视角三:Agent(Core,核心)——Agent 设计内核的三条要素:

  • 拥抱不确定性,但建立信任:一定程度的 Agent 不确定性是预期内的、是设计要素;信任与透明是设计的根基层;人类掌控 Agent 的开关,且 Agent 状态始终清晰可见。

落地为三条实施准则(guidelines):

  1. 透明(Transparency):告知用户 AI 参与、它如何运作(包括过往动作)、如何反馈与修改系统。
  2. 控制(Control):用户可定制、设定偏好与个性化,对系统及其属性有掌控权——包括让 Agent 遗忘的能力(与第 14 课记忆删除权呼应)。
  3. 一致(Consistency):跨设备与端点的一致多模态体验;用用户熟悉的 UI/UX 元素(如麦克风图标代表语音交互);尽量降低认知负担(简洁回复、视觉辅助、"了解更多"式分层内容)。

原课用一个旅行 Agent 走查演示了三准则怎么落地:透明——产品页明确告知这是 AI Agent、提供示例 prompt 与历史提问列表、点赞/点踩反馈入口、说清使用与话题限制;控制——用户可改 System Prompt、可选回复详略与文风、可查看和删除关联文件/数据/历史对话;一致——分享 prompt、上传文件(回形针图标)、传图(图片图标)等用标准可识别的图标。

9.3 Anthropic 五大 Workflow 模式

《Building Effective Agents》(2024-12 发布,持续更新)给出了五种可组合的编排蓝图,按复杂度递增:

1. Prompt chaining(提示链):任务拆成固定串行步骤,每步的输出是下步的输入,中间可插程序化 gate(格式校验、关键词检查)。适用:任务能干净地顺序分解,愿意用延迟换准确率。例:先提纲后正文、先抽取后翻译。

2. Routing(路由):入口先分类,把输入导向专门优化过的下游提示。适用:输入有明显类别差异(客服分流、prompt 注入检测、大小模型分级)。价值:每类输入用各自的专属 prompt,互不拖累。

3. Parallelization(并行化):两个变体——**分段(sectioning)**把任务拆成独立子任务并行跑(如一个查风险一个写文案);**投票(voting)**同一任务跑多次取多数。适用:子任务可并行提速、或需要多视角交叉验证。成本注意:token 是串行的 N 倍。

4. Orchestrator-workers(编排者-工人):中心 LLM 动态拆解任务、分派工人、汇总结果。与并行化的本质区别:子任务不是预先定义的,而是编排者按输入现场决定的。适用:无法预测子任务形状的复杂工作(代码改动涉及哪些文件因任务而异)。这是第 22 课多 Agent 编排的种子形态。

5. Evaluator-optimizer(评估-优化):一个 LLM 生成,另一个评审打分给反馈,循环到达标。适用:有明确评审标准、且迭代确有收益的任务(翻译润色、复杂搜索的轮次细化)。前提是"LLM 能提供有效反馈"——否则循环只是空转烧钱。

9.4 模式的组合律

五个模式是积木不是菜单:一个真实系统常常是"路由入口 → 每条分支内部是提示链 → 关键产出过一道评估-优化"。第 22 课会看到 orchestrator-workers 长成完整的多 Agent 研究系统。从最简单的模式开始,遇到具体瓶颈再加复杂度——这是 Anthropic 全文的头号工程建议(原文口径:“在多数场景里,找最简单的可行方案就够,只在确有需要时才增加复杂度”)。而判断"够不够、要不要升级"时,正好用 9.2b 微软原则里的三问检验:透明吗(用户知道发生了什么)?可控吗(不满意能调能关)?一致吗(体验是否跨端稳定)——微软的原则管"该不该、好不好",Anthropic 的模式管"怎么搭",两套思想在这里合流。

案例实战:五大模式各一个最小实现

目标
用裸 openai SDK(无框架)把五个模式各实现成一个可运行函数,一次跑通,观察各模式的行为指纹。

环境

  • Windows(推荐):Windows 10/11 + Python 3.9+,pip install openai==3.6.0,setx DEEPSEEK_API_KEY "sk-..."后新开终端运行python 09_five_patterns.py——脚本无操作系统相关依赖
  • Linux(本课实测环境):Ubuntu 22.04,Python 3.10.12,openai 3.6.0,deepseek-chat,2026-10-01 实测;其中投票模式用了concurrent.futures.ThreadPoolExecutor(标准库,Windows/Linux 行为一致)
  • 五个模式一次跑完约 2-3 分钟
  • 换国内模型(GLM/MiniMax/MiMo):接入参数与实测行为见第 7 课"国内模型适配"节,代码改base_url与model两行
# 09_five_patterns.py(骨架节选,完整版见 code/ 目录)importos,jsonfromopenaiimportOpenAI client=OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"],base_url="https://api.deepseek.com/v1")defchat(system:str,user:str)->str:"""单次调用:所有模式的基本积木。"""r=client.chat.completions.create(model="deepseek-chat",messages=[{"role":"system","content":system},{"role":"user","content":user}])returnr.choices[0].message.content# 模式 1 提示链:提纲 -> JSON gate -> 正文defpattern_chaining(topic):outline=chat("你是内容策划,只输出 JSON 数组,每项一段的小标题。",topic)json.loads(outline)# gate:非法 JSON 直接抛异常终止returnchat("你是技术作者,按给定小标题逐段写成短文。",f"提纲:{outline}")# 模式 2 路由:分类 -> 专属 promptdefpattern_routing(user_msg):route=chat("你是分类器,只输出一个词:tech / billing / other。",user_msg)prompts={"tech":"你是技术支持专家,给出排查步骤…","billing":"你是账务专员,解释费用构成…","other":"你是通用客服…"}returnchat(prompts.get(route.strip().lower(),prompts["other"]),user_msg)# 模式 3 投票:ThreadPoolExecutor 真并行,多数表决defpattern_voting(question,n=3):fromconcurrent.futuresimportThreadPoolExecutorwithThreadPoolExecutor(max_workers=n)asex:answers=list(ex.map(lambda_:chat("只给最终答案。",question),range(n)))votes={}forainanswers:votes[a.strip()]=votes.get(a.strip(),0)+1returnmax(votes.items(),key=lambdakv:kv[1])# 模式 4 编排-工人:LLM 动态拆解(子任务数量由它决定)-> 并行执行 -> 汇总defpattern_orchestrator(task):plan=json.loads(chat("把任务拆成 2-3 个独立子任务,只输出 JSON:"'{"subtasks": [...]}',task))# …ThreadPoolExecutor 并行执行每个 subtask,再让中心 LLM 汇总(完整版见 code/)# 模式 5 评估-优化:生成 -> JSON 打分 -> 反馈修改,score>=9 退出defpattern_evaluator(task,max_rounds=3):draft=chat("你是写手,完成用户任务。",task)forrndinrange(max_rounds):info=json.loads(chat('你是苛刻审稿人。只输出 JSON:''{"score": 0-10, "feedback": "..."}',f"稿件:\n{draft}"))ifinfo["score"]>=9:returndraft draft=chat("按审稿意见修改,只输出修改后全文。",f"审稿意见:{info['feedback']}\n原稿:\n{draft}")returndraft

【已实测】2026-10,deepseek-chat。

9.5 实测输出与行为指纹(节选)

=== 2. Routing:输入"这个月账单多扣了我 30 块钱" === [路由到 billing] 您好,我理解您对本月账单多出 30 元的疑问……(走账务专属 prompt,给出费用构成+退款流程) === 3. Voting:问"9.11 和 9.9 哪个大?" === 三次答案 [1, 2] 票分布 -> 采纳:9.11(2/3 票) ← 多数表决出了错答案! === 4. Orchestrator-Workers:任务"为水培植物店设计开业推广方案" === (LLM 现场拆出 3 个子任务并行执行,汇总成"核心策略/线上/线下"三段方案) === 5. Evaluator-Optimizer:写一句学 Agent 的标语 === 第1轮评审: score=7 … 第2轮评审: score=7 … 第3轮评审: score=5 … (3 轮未达标,轮次用尽返回——评审分数不升反降)

三段输出比成功案例更有教学价值:

  1. 路由的行为指纹:同一个用户消息经分类后走上完全不同的提示词,回复风格与内容结构立刻切换——这就是"分离关注点"的直观效果。
  2. 投票的失败样本:9.9 > 9.11(按数值比较),但三次独立采样有两次答"9.11",多数表决采纳了错答案。教训:投票只能消除随机采样噪声,消除不了模型的系统性偏差——模型共有的错误投多少次票都改不掉。投票适合"单次正确率中等、错误彼此独立"的场景(事实性数值比较恰恰不属于此类)。
  3. 评审的噪声:三轮评分 7→7→5 不升反降,说明 LLM 评审者本身不稳定,max_rounds熔断避免了无限空转——评估-优化模式必须有明确的退出条件,否则就是烧钱循环。

9.6 动手练习

  1. 把投票题换成"37 × 43 等于多少",对比投票前后正确率——体会哪类错误投票修得了、哪类修不了。
  2. 给评估-优化模式的评审 prompt 加"先逐条列出稿件缺陷再打分",观察打分稳定性是否改善。

小结

  • 基本构建单元 = 裸 LLM + retrieval + tools + memory;一切模式都是它的组合方式。
  • 模式阶梯的核心是控制权归属:workflow(代码定路径)→ Agent(模型定路径);先穷尽 workflow 再上 Agent。
  • 微软第 3 课的 Agentic 设计原则:Space(连接而非坍缩、可达而偶尔隐形)/ Time(反思过去、轻推现在、适应未来)/ Core(拥抱不确定性但建立信任),落地三准则 = 透明、控制、一致——所有模式之上的产品哲学。
  • 五大 workflow 模式:提示链(顺序+gate)、路由(分类+分支)、并行化(分段/投票)、编排者-工人(动态拆解)、评估-优化(循环打磨)——它们是积木,组合使用。
  • 实测警示:投票修不了系统性错误;LLM 评审有噪声,循环必须有退出条件。

骨架定了,接下来三课填充 Agent 的三大内功:先讲怎么拆任务(参见第 10 课《规划与任务分解》),再讲怎么自主检索(参见第 11 课《Agentic RAG》),最后讲怎么自我检查(参见第 12 课《元认知与反思》)。多 Agent 形态的编排在第 22 课展开。

扩展阅读

🌐 网络提示:github.com 需代理(clone 可走 ghproxy 加速、push 优先 SSH);anthropic.com 需代理(核心结论已摘进本课正文);pip 安装建议加清华镜像-i https://pypi.tuna.tsinghua.edu.cn/simple。详见总纲附录《国内网络访问与国产适配指南》。

  • Anthropic《Building Effective Agents》(五模式原文):https://www.anthropic.com/engineering/building-effective-agents
  • 微软原课第 3 课(Agentic Design Principles,本课 9.2b 节的来源):https://github.com/microsoft/ai-agents-for-beginners/tree/main/03-agentic-design-patterns (含 zh-CN 翻译)
  • 微软 HAX Toolkit(人机交互设计工具箱,原课 Additional Resources 推荐):https://www.microsoft.com/en-us/research/project/hax-toolkit/
  • OpenAI《Practices for Governing Agentic AI Systems》(原课同节推荐;openai.com 对部分网络环境返回 403,需代理访问):https://openai.com/index/practices-for-governing-agentic-ai-systems/
  • Spring AI 对五模式的框架化实现参考:https://docs.spring.io/spring-ai/reference/api/effective-agents.html

我的专栏

蛋白 / 抗体 / 多肽 / 核酸分子模拟 / 动力学 / 对接药物 / 设计 / 案例AI / Agent / 大模型
开源蛋白结构预测分子模拟基础小分子药物设计案例AI Agent系列
开源蛋白生成方法实践分子动力学模拟-Amber蛋白药物设计案例化学大模型
开源多肽设计模型分子动力学模拟-Gromacs多肽药物设计案例《AI Agent原理与实战》
开源多肽性质预测分子动力学模拟-OpenMM开源小分子生成设计CADD中的机器学习模型
DNA/RNA药物设计結合自由能高效计算配置《MCP 入门实战》
siRNA药物设计模型UCSF DOCK系列我胡师兄说药《AI入门实战2026》
ASO药物设计模型rDock系列 LeDock系列 gnina系列《经典机器学习实战》

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询