乐于分享
好东西不私藏

【Day 17】AI Agent设计模式速查:从微软18节课里提炼的8种核心模式

【Day 17】AI Agent设计模式速查:从微软18节课里提炼的8种核心模式

AI Agent 设计模式是指在构建智能体系统时,用于解决工具调用、任务规划、记忆管理等特定问题的标准化逻辑结构。 掌握这些模式能显著提升 Agent 的稳定性、可维护性和执行效率。本文从微软开源的 6 万星教程中提炼出 8 种核心模式,为国内开发者提供一份即查即用的实战指南,涵盖从基础的 Tool Use 到高级的 Multi-Agent 协作。

开发Agent的一大痛点,不是模型不够聪明,而是逻辑写成一团浆糊。

一旦业务稍微复杂一点,Prompt里全是“如果...就...否则..."的补丁,最后连开发者自己都看不懂Agent为什么在发疯。

微软那套18节课的教程里,最值得研究的部分其实就是这8种设计模式。它把散落在各家文档里的“野路子”整理成了工程化的“正规军”。

我把它们从教程里剥离出来,去掉了冗长的Azure配置,只留下核心逻辑。

建议你收藏这篇。下次写Agent的时候翻一翻,看看你的场景对应哪种模式,直接对号入座。

01 Tool Use 模式(工具调用)

一句话:让LLM长出“手”。

适用场景:Agent需要查天气、读写数据库、发邮件、调API。

核心逻辑

  1. 定义:把工具写成函数,定义好JSON Schema(参数类型、描述)。
  2. 注入:把 Schema 塞进System Prompt。
  3. 执行:LLM输出函数名和参数 → 你的代码拦截这个请求 → 执行函数 → 把结果塞回给LLM。

避坑指南:工具描述写得越像“给人类看的说明书”,LLM调得越准。别只写个函数名,要把 description 写清楚。

02 Context Engineering 模式(上下文工程)

一句话:决定Agent“吃什么”,吃多少。

适用场景:任务复杂,需要区分“长期指令”和“临时对话”,或者上下文超长。

核心逻辑:把上下文分层。

  • System Layer:你是谁、规则是什么(永远保留)。
  • Knowledge Layer:检索到的相关知识(按需插入)。
  • Memory Layer:用户偏好、历史摘要(按需插入)。
  • Task Layer:当前的具体指令(每次更新)。

避坑指南:别把整本说明书塞进Context里。只给Agent此刻需要的那一页。塞多了不仅费钱,模型还会“迷失”在无关信息里(Lost in the Middle)。

03 Memory 模式(记忆管理)

一句话:让Agent“记得住”你是谁。

适用场景:用户偏好存储、长期知识沉淀、跨会话连续性。

核心逻辑

  • 短期记忆:就是对话窗口(Context Window),关掉就没了。
  • 长期记忆:存入向量数据库或JSON文件。Agent每次回答前,先去库里搜一下“这哥们上次说了啥”,搜到了就塞进短期记忆。

避坑指南:别把所有聊天记录都存下来。只存“事实”和“偏好”。比如用户说“我喜欢Python",记下来;用户说“今天天气不错”,忘掉。

04 Planning 模式(任务规划)

一句话:把大任务拆成小步骤。

适用场景:用户说“帮我写个贪吃蛇游戏”,Agent 需要自己决定先干嘛后干嘛。

核心逻辑:思维链(CoT)或 ReAct 框架。

  1. Plan:LLM 生成步骤列表(1. 设计 UI -> 2. 编写逻辑 -> 3. 调试)。
  2. Act:执行步骤 1。
  3. Reflect:看执行结果,如果成功,进行步骤 2;如果失败,重新Plan。

避坑指南:给LLM设定最大步数限制(Max Steps)。不然它一旦陷入死循环,你的Token账单会教做人。

05 Metacognition 模式(元认知/自我反思)

一句话:让Agent“自己纠错”,别把锅甩给用户。

适用场景:代码执行失败、工具调用报错、输出格式不对。

核心逻辑:在执行循环中增加一个Check节点。

  • 如果报错了,把错误Traceback喂回给LLM。
  • 让 LLM 分析原因:“我刚才写错了,原因是...,我应该修正为..."。
  • LLM 自己重新生成代码。

避坑指南:限制重试次数(比如3次)。3次还搞不定,就得承认自己能力有限,向用户求助了。

06 Agentic RAG 模式(智能检索增强)

一句话:主动决定“什么时候去查资料”。

适用场景:知识库问答,但不确定用户问题是否需要检索。

核心逻辑

  • 普通 RAG:用户问啥,先检索再回答(哪怕用户只是在说“你好”)。
  • Agentic RAG:LLM先判断意图。
    • 如果是“你好”,直接回“你好”。
    • 如果是“公司报销流程是什么”,生成Query去搜向量库,结合结果回答。

避坑指南:给 Agent 一个 No_Op 工具(空操作)。如果它觉得不需要检索,就调用这个工具,直接输出。

07 Multi-Agent 模式(多智能体协作)

一句话:三个臭皮匠,顶个诸葛亮。

适用场景:超级复杂的任务,单模型上下文不够、逻辑处理不过来。

核心逻辑

  • Orchestrator(包工头):负责拆解任务,分配给专家。
  • Specialists(专家):比如一个专门写代码,一个专门写文档,一个专门做测试。
  • 大家各司其职,最后汇总。

避坑指南:Agent数量别太多(建议不超过3-4个)。节点一多,通讯延迟和成本会指数级上升,而且很难Debug到底是谁在胡说八道。

08 Computer Use 模式(计算机操作代理)

一句话:Agent变成“虚拟员工”,能看屏幕能点鼠标。

适用场景:操作GUI界面,如点击网页按钮、填写表单、操作旧系统。

核心逻辑

  1. 截图:把当前屏幕截图传给VL模型(视觉模型)。
  2. 识别:模型输出坐标(X, Y)和动作(Click, Type)。
  3. 执行:代码控制鼠标在(X, Y)处点击。
  4. 循环:再次截图,直到任务完成。

避坑指南:国内目前的VL模型在坐标识别上还有延迟。这玩意儿目前适合跑在后端做自动化任务,别轻易拿来给用户做实时演示,容易卡顿。

实战:模式组合拳

单一模式很少够用,真正的项目通常是组合拳:

  • 高级客服 Agent = Agentic RAG + Memory + Tool Use(查订单)
  • 编程助手 Agent = Planning + Metacognition + Tool Use (Code Interpreter)
  • 数据分析 Agent = Tool Use (Python) + Memory + Computer Use (操作 Excel)

FAQ 环节

Q1:新手应该先学哪种模式?A:Tool Use 和 Planning。搞定这两个,能解决 80% 的日常需求。

Q2:多智能体(Multi-Agent)是不是比单智能体更好?A:不一定。单智能体结构简单、成本低、响应快。只有在任务复杂度超出单模型处理能力(上下文不够、逻辑太乱)时,才考虑拆分。

结语

这个系列聊了三篇,从“怎么入门”,到“怎么避坑”,再到“怎么搭积木”。

希望这份速查手册能帮你少写两斤Patch

代码。

事情既然都过了。

Day 17