API GET API GET学习资料 · WorkBuddy 教程库

AI 学习资料 · AI 智能体入门(精选 9 课)

第 7 课 规划设计模式

Microsoft Corporation(课程版权方,LICENSE 署名“Copyright (c) Microsoft Corporation.”);简体中文原为 Co-op Translator 机器翻译MIT出处与许可 约 5 分钟 · 1 张图

介绍

本课将涵盖:

  • 定义清晰的总体目标,把复杂任务拆成便于管理的子任务。
  • 利用结构化输出,得到更可靠、机器可读的回复。
  • 用事件驱动的方法处理动态任务和意外输入。

学习目标

学完本课,你将理解如何:

  • 为 AI 智能体识别并设定总体目标,确保它清楚要达成什么。
  • 把复杂任务拆成便于管理的子任务,并按合理的顺序组织起来。
  • 为智能体配备合适的工具(例如搜索工具或数据分析工具),决定何时、如何使用它们,并处理出现的意外情况。
  • 评估子任务的结果,衡量表现,反复调整行动,改进最终产出。

定义总体目标并拆解任务

定义目标和任务:一个最终目标拆成任务 1、2、3,各交给一个智能体

编者注:图中“结束目标”是机器翻译的误译,原意是“最终目标”。

现实中的大多数任务都太复杂,没法一步完成。AI 智能体需要一个简明的目标来指导规划和行动。比如这个目标:

“生成一份三天的旅行行程。”

这个目标说起来简单,但仍需细化。目标越清晰,智能体(以及参与协作的人)就越能集中精力得到正确的结果,比如一份完整的行程,包括航班选择、酒店推荐和活动建议。

任务拆解

把大型或复杂的任务拆成较小的、各有目标的子任务,就更容易管理。以旅行行程为例,可以把目标拆成:

  • 订机票
  • 订酒店
  • 租车
  • 个性化安排

每个子任务可以交给专门的智能体或流程处理。一个智能体专门搜索最划算的机票,另一个专注于订酒店,以此类推。再由一个负责协调的“下游”智能体,把这些结果汇总成一份连贯的行程,交给最终用户。

这种模块化的做法也便于逐步增强。比如,可以再加上专门推荐美食或本地活动的智能体,随着时间推移不断完善行程。

结构化输出

大语言模型(LLM)可以生成结构化输出(例如 JSON),让下游的智能体或服务更容易解析和处理。这在多智能体的场景中特别有用:拿到规划结果后,就可以据此执行各项任务。

原文用下面一段 Python 代码,演示一个简单的规划智能体如何把目标拆成子任务,并生成结构化的计划:

代码略:先列出可用的专职智能体(订机票、订酒店、租车、订活动、目的地介绍、默认智能体、群聊管理),定义“旅行计划”的数据结构(主任务、若干子任务及各自分配的智能体、是否只是打招呼),再用一段要求模型充当规划者并按 JSON 格式回复的系统提示词,把用户请求“为一个有两个孩子的家庭制定从新加坡到墨尔本的旅行计划”发给模型,打印解析后的结果。

用于多智能体编排的规划智能体

在这个例子里,一个语义路由智能体接收用户的请求(例如“我需要一份旅行的酒店计划”)。

然后,规划者会:

  • 接收酒店计划:规划者拿到用户的消息,根据系统提示词(其中包含可用智能体的详细信息),生成一份结构化的旅行计划。
  • 列出智能体及其工具:智能体注册表里记录着各个智能体(例如负责机票、酒店、租车和活动的智能体),以及它们各自提供的函数或工具。
  • 把计划分派给相应的智能体:视子任务的数量而定,规划者要么把消息直接发给某个专职智能体(单任务的情况),要么通过群聊管理器协调多个智能体协作。
  • 总结结果:最后,规划者把生成的计划总结一下,让结果一目了然。

原文用下面的 Python 代码示例演示了这些步骤:

代码略:与上一段代码基本相同,定义可用智能体和旅行计划的数据结构,让模型以规划者的身份处理同一个家庭旅行请求,并打印返回的 JSON。

下面是上述代码的输出。你可以根据这份结构化输出,把任务分派给 assigned_agent 字段指定的智能体,并向最终用户汇总旅行计划。

代码略:输出的 JSON 写明主任务是“规划一次从新加坡到墨尔本的家庭旅行”,并列出五个子任务:由 flight_booking 预订往返机票,由 hotel_booking 寻找适合家庭的酒店,由 car_rental 安排适合四口之家的租车,由 activities_booking 列出适合家庭的活动,由 destination_info 介绍墨尔本这个目的地。

迭代规划

有些任务需要来回调整或重新规划,一个子任务的结果会影响下一个。比如,智能体在订机票时发现数据格式出乎意料,可能需要先调整策略,再去订酒店。

另外,用户的反馈(例如用户决定改订更早的航班)也可能触发局部的重新规划。这种动态、迭代的做法,能确保最终方案符合现实约束,也跟得上用户不断变化的偏好。

代码略:示例代码沿用前面的规划者,但在请求中附带上一版旅行计划作为上下文,让规划者据此重新规划,再把任务分派给相应的智能体。

想做更全面的规划,可以看看介绍 Magentic-One 的博文,了解如何解决复杂任务。

小结

本课通过一个例子,介绍了如何创建一个能动态挑选已定义智能体的规划者。规划者的输出会拆解任务,并为每项任务指定负责的智能体,以便交给它们执行。这里假定各个智能体都能使用完成任务所需的函数或工具。除了这些智能体,你还可以加入反思、总结、轮流发言的群聊(round robin)等其他模式,做进一步定制。

补充资源

Magentic-One 是一个解决复杂任务的通用多智能体系统,在多项有难度的智能体基准测试中取得了出色成绩。参考:Magentic-One。在它的实现中,编排者会为具体任务制定计划,把任务委派给可用的智能体。除了规划之外,编排者还用一套跟踪机制监控任务进度,并在需要时重新规划。

编者注:英文原文有一处、中文机器翻译版两处把 Magentic-One 写成了“Magnetic One”,本库已按原文链接中的名称统一改正。


免责声明:本课中文最初由 AI 翻译工具 Co-op Translator 自动翻译,本库对照英文原文做了校订和删节。译文仍可能有错漏,与英文原版不一致之处,以英文原版为准。

来源与许可

《AI Agents for Beginners(AI 智能体入门)》简体中文版,© Microsoft Corporation。原文:https://github.com/microsoft/ai-agents-for-beginners(commit 7dfa75a,2026-10-24)。依 MIT 许可转载,附许可全文。本库有删改:节选第 1、3、4、6、7、11、12、13、18 课,删去视频、代码和两张含第三方商标标识的图,并对照英文原文校订译文。中文最初由 Co-op Translator 机器翻译,可能有误,以英文原版为准。本库与 Microsoft 无关联,未获其认可或背书。

本章改动:删去视频缩略图与链接、笔记本链接、Discord 段落和上下课导航;4 个代码/JSON 输出块各改为一句说明;“Magnetic One”统一改为 Magentic-One(加编者注);为目标拆解图中误译的“结束目标”加编者注;结尾免责声明改写为:中文最初由 Co-op Translator 机器翻译,本库已校订,以英文原版为准;2026-10-27 校对:术语统一(“代理”改为“智能体”);小结首两句改顺

从原课程中选取第 1、3、4、6、7、11、12、13、18 课,按原课顺序编为 9 章,章标题标出原课号;删去课程视频的缩略图和链接、全部代码块(每处改为一句说明)、代码示例与笔记本链接、Discord 社区邀请、部署冒烟测试、上下课导航和第 18 课的编程练习;两张含第三方商标标识的图未收录,改为文字说明;第 18 课的两段 Mermaid 流程图改为文字说明;去掉链接中的跟踪参数;对照同一提交的英文原文校订机器翻译,改正误译和不通顺的句子,补译中文版缺失的第 4 课“来自 MCP 服务器的工具”一节,并把第 6 课的英文提示词示例译成中文;统一用“你”称呼读者;对图中机器翻译有误的文字加编者注;每课末尾的免责声明改写为说明本库已校订、以英文原版为准。