Microsoft Agent Framework(AutoGen)
2026/9/15 12:55:23 网站建设 项目流程

目录

      • 一、Microsoft Agent Framework和AutoGen
      • 二、MAF 怎么干活?
      • 三、核心概念(对应之前CrewAI的例子)
      • 四、Demo:家庭露营攻略团队
        • 前置准备
        • 步骤1:安装依赖
        • 步骤2:完整可运行代码
          • ① 导入核心组件
          • ② 配置大模型(二选一)
            • 方案A:OpenAI 云端模型
            • 方案B:本地 Ollama(离线免费)
          • ③ 定义3个专业智能体(和CrewAI角色完全对应)
          • ④ 构建顺序工作流(流水线编排)
          • ⑤ 启动执行,获取结果
        • 运行效果说明
      • 五、Magentic 动态调度模式(智能项目经理)
      • 六、MAF vs CrewAI vs AutoGen 核心对比
      • 七、MAF 核心特点

一、Microsoft Agent Framework和AutoGen

Microsoft Agent Framework(简称 MAF)是微软在2025年10月正式发布的新一代统一多智能体开发框架,它不是AutoGen,而是AutoGen + Semantic Kernel 的官方继任者——微软已经明确表示,未来AutoGen和Semantic Kernel只做安全维护,新功能全部集中在MAF上。

简单说:

  • AutoGen 是微软研究院的「实验性项目」,主打自由群聊式协作,但难管控、难上生产
  • Semantic Kernel 是微软的「企业级插件框架」,主打工具连接和工作流,但多智能体能力弱
  • MAF 把两者合二为一:既保留了多智能体协作的灵活性,又加入了图状工作流、类型安全、状态持久化、可观测性这些企业级特性,是官方钦定的下一代方案。

二、MAF 怎么干活?

用「做露营攻略」的例子类比:

如果说 CrewAI 是「老板提前画好流程图,员工按步骤流水线干活」;
AutoGen 是「拉个工作群,大家自由讨论着把活干完」;

那 MAF 就是「正规公司的项目管理系统」:

  • 你可以画严格的流程图(Workflow),规定谁先做、谁后做、结果怎么传——对标CrewAI的确定性流程
  • 你也可以设一个项目经理(Magentic模式),让他动态派活、协调大家——对标AutoGen的灵活协作
  • 所有对话、状态、中间结果自动存档,出错了能回溯,还能无缝部署到Azure云服务

它的核心设计理念是:用工作流(Workflow)做骨架,用智能体(Agent)做节点,想确定就定死流程,想灵活就用动态调度

三、核心概念(对应之前CrewAI的例子)

MAF 概念类比对应CrewAI概念
Agent(智能体)专业员工,有角色、人设、工具Agent
Workflow(工作流)项目流程图,规定执行顺序和数据流向Process + Task编排
Sequential 模式流水线作业,一个干完传给下一个Sequential 顺序流程
Concurrent 模式多人并行干活,最后汇总结果无对应(CrewAI需手动实现)
Magentic 模式项目经理动态派活,按需调度员工Hierarchical 层级模式
Executor(执行器)流程节点,可以是Agent,也可以是普通函数/工具Task

四、Demo:家庭露营攻略团队

我们完全复用之前CrewAI的需求:3个角色(行程规划师→美食策划师→总编辑),顺序流水线生成2天1夜家庭露营攻略。

前置准备
  • Python 3.10+
  • 大模型二选一:OpenAI API Key / 本地Ollama
步骤1:安装依赖
pipinstallagent-framework--pre

注意:目前还是预览版,必须加--pre安装

步骤2:完整可运行代码
① 导入核心组件
importasynciofromagent_frameworkimportChatAgentfromagent_framework.orchestrationsimportSequentialBuilderfromagent_framework.openaiimportOpenAIChatClient
② 配置大模型(二选一)
方案A:OpenAI 云端模型
# 配置OpenAI客户端,自动读取环境变量里的API Keychat_client=OpenAIChatClient(model_id="gpt-4o-mini",api_key="你的OpenAI API Key")
方案B:本地 Ollama(离线免费)
# 先确保本地Ollama已启动,且执行过 ollama pull llama3chat_client=OpenAIChatClient(model_id="llama3",base_url="http://localhost:11434/v1",api_key="ollama"# Ollama随便填,不校验)
③ 定义3个专业智能体(和CrewAI角色完全对应)
# 1号员工:资深露营行程规划师planner=ChatAgent(chat_client=chat_client,name="行程规划师",instructions="""你是资深露营行程规划师,有5年户外露营经验,熟悉各类露营场地, 特别擅长家庭亲子露营的行程安排,注重细节和安全性,会充分考虑老人和孩子的需求。 请输出详细的2天1夜露营行程表、分类物品清单、安全注意事项。 请用中文输出,条理清晰。""")# 2号员工:露营美食策划师food_specialist=ChatAgent(chat_client=chat_client,name="露营美食策划师",instructions="""你是户外美食达人,擅长用简易厨具做出好吃的露营餐食, 充分考虑食材保鲜、烹饪难度和分量,特别适配家庭出行的饮食需求。 请基于前面的行程,设计对应的三餐食谱和食材采购清单。 请用中文输出,内容实用落地。""")# 3号员工:攻略总策划编辑editor=ChatAgent(chat_client=chat_client,name="攻略总策划编辑",instructions="""你是资深生活类内容编辑,擅长梳理信息、优化结构, 能把零散内容整合成普通人一看就懂的实用攻略,会主动补充注意事项和避坑提示。 请整合前面的行程和美食内容,生成结构完整的最终露营攻略, 必须包含【行程安排】【物品清单】【美食方案】【避坑提示】四个板块。 请用中文输出,排版清晰。""")
④ 构建顺序工作流(流水线编排)
# 按执行顺序排列,前一个的输出自动作为后一个的输入上下文workflow=SequentialBuilder().participants([planner,food_specialist,editor]).build()
⑤ 启动执行,获取结果
asyncdefmain():print("🚀 启动露营攻略多智能体团队...")print("="*60)# 流式运行,实时看到每个节点的执行状态final_messages=Noneasyncforeventinworkflow.run_stream("为一家三口(夫妻+8岁孩子)制定一份周末2天1夜的家庭露营完整攻略"):# 打印每个智能体开始工作的提示ifevent.type=="executor_invoked":print(f"\n▶ 开始工作:{event.executor_id}")# 保存最终完整对话结果ifevent.type=="workflow_output":final_messages=event.data# 提取最终编辑输出的攻略内容final_result=final_messages[-1].textprint("\n"+"="*60)print("✅ 最终生成的露营攻略:")print("="*60)print(final_result)# 运行异步主函数asyncio.run(main())
运行效果说明

执行后控制台会按顺序展示:

  1. 先启动「行程规划师」,输出完整行程方案
  2. 自动把行程结果传给「露营美食策划师」,输出对应食谱
  3. 自动把前两份结果传给「攻略总策划编辑」,整合输出完整攻略
    整个数据传递完全由工作流自动完成,和CrewAI的Sequential模式逻辑完全一致。

五、Magentic 动态调度模式(智能项目经理)

如果你不想把流程定死,想让AI自己判断该谁干活,可以用MAF原生的Magentic 模式——相当于配了一个智能项目经理,根据任务进度动态派活。

fromagent_framework.orchestrationsimportMagenticBuilder# 定义项目经理(调度员)manager=ChatAgent(chat_client=chat_client,name="项目经理",instructions="""你是项目负责人,负责协调行程规划师、美食策划师和编辑三人完成露营攻略。 执行规则: 1. 先让行程规划师输出行程方案 2. 再让美食策划师基于行程设计食谱 3. 最后让编辑整合出最终攻略 确认全部完成后,宣布任务结束。""")# 构建Magentic动态工作流workflow=MagenticBuilder()\.with_standard_manager(manager,max_round_count=10)\.add_participant(planner)\.add_participant(food_specialist)\.add_participant(editor)\.build()# 运行方式和上面完全一样# async for event in workflow.run_stream("做一份家庭露营攻略"): ...

这种模式更接近AutoGen的群聊协作,但比AutoGen更可控——项目经理会严格按规则调度,不会出现无限扯皮的情况。

六、MAF vs CrewAI vs AutoGen 核心对比

维度CrewAIAutoGenMicrosoft Agent Framework
定位轻量多智能体编排工具研究型多智能体框架企业级统一智能体平台
核心驱动任务驱动对话驱动工作流+智能体双驱动
流程确定性高,预设任务链低,自由对话可自由切换:确定/灵活
生产级特性基础强(状态持久化、可观测、治理)
生态绑定中立微软生态深度绑定Azure AI全家桶
学习曲线简单中等中等偏难

七、MAF 核心特点

  1. 官方正统继任:AutoGen和Semantic Kernel合并升级而来,微软未来唯一主推的智能体框架
  2. 编排双模式:既支持确定性的图状工作流,也支持动态的智能调度,按需选择
  3. 企业级能力:原生支持状态检查点、类型安全、链路追踪、权限治理,适合生产部署
  4. 全协议兼容:原生支持MCP(模型上下文协议)、A2A(智能体间互通)、OpenAPI等标准
  5. 双语言支持:同时提供Python和.NET两套SDK,适配不同技术栈

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

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

立即咨询