本文收录于专栏《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):
- 透明(Transparency):告知用户 AI 参与、它如何运作(包括过往动作)、如何反馈与修改系统。
- 控制(Control):用户可定制、设定偏好与个性化,对系统及其属性有掌控权——包括让 Agent 遗忘的能力(与第 14 课记忆删除权呼应)。
- 一致(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 轮未达标,轮次用尽返回——评审分数不升反降)三段输出比成功案例更有教学价值:
- 路由的行为指纹:同一个用户消息经分类后走上完全不同的提示词,回复风格与内容结构立刻切换——这就是"分离关注点"的直观效果。
- 投票的失败样本:9.9 > 9.11(按数值比较),但三次独立采样有两次答"9.11",多数表决采纳了错答案。教训:投票只能消除随机采样噪声,消除不了模型的系统性偏差——模型共有的错误投多少次票都改不掉。投票适合"单次正确率中等、错误彼此独立"的场景(事实性数值比较恰恰不属于此类)。
- 评审的噪声:三轮评分 7→7→5 不升反降,说明 LLM 评审者本身不稳定,
max_rounds熔断避免了无限空转——评估-优化模式必须有明确的退出条件,否则就是烧钱循环。
9.6 动手练习
- 把投票题换成"37 × 43 等于多少",对比投票前后正确率——体会哪类错误投票修得了、哪类修不了。
- 给评估-优化模式的评审 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系列 | 《经典机器学习实战》 |