欢迎光临
我们一直在努力

《AI Agent原理与实战》2026版 第23课 多 Agent 框架横评

在这里插入图片描述

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

本课定位:编排思想在四个框架里的不同实现:AutoGen 的 Team、MetaGPT 的 SOP 流水线、CrewAI 的角色声明、OpenAI Agents SDK 的 subagents。同一任务两框架实现对比后你会发现:框架差异小于思想差异,选型看团队口味与生态。

阶段 4|多智能体系统 | 来源:【补】+ 微软第 8 课模式语言 + AutoGen 官方架构

关键字: AutoGen、MetaGPT、CrewAI、多Agent框架横评、协作抽象、角色分工、框架对比、选型建议

本节目录

  • 23.1 横评总表
  • 23.2 各框架的协作抽象拆解
  • 23.3 AutoGen / AG2:Team 为中心的可编程协作
  • 23.4 MetaGPT:把人类 SOP 编码进流水线
  • 23.5 CrewAI:角色直觉 + 声明式配置
  • 23.6 OpenAI Agents SDK:薄层 + agents-as-tools
  • 23.7 token 与协调复杂度的账
  • 23.8 版本 A:CrewAI hierarchical(Supervisor 形态)
  • 23.9 版本 B:OpenAI Agents SDK agents-as-tools(Orchestrator-Worker 形态)

概念讲解

23.1 横评总表

先给结论级对比(版本核自 PyPI,检索日 2026-10-01;Star 数为约数,随时间漂移):

维度AutoGen (autogen-agentchat)MetaGPTCrewAIOpenAI Agents SDK
版本(PyPI) 0.7.5(2025-09-30) 0.8.2(2025-03-09) 1.15.23(2026-09-28) 0.22.3(2026-09-17,包名 openai-agents)
出品方 微软研究 → 社区 AG2 延续 FoundationAgents(DeepWisdom) CrewAI Inc. OpenAI
核心抽象 Agent + Team(RoundRobinGroupChat / SelectorGroupChat / Swarm / GraphFlow / Magentic-One) 角色 + SOP 流水线(产品经理→架构师→工程师→QA) Crew = Agents + Tasks + Process Agent + Handoff + agents-as-tools
协作模型 共享上下文的群聊/图流转 预定义流程的瀑布 流程制:sequential / hierarchical 编排者把子 Agent 包成工具调用
抽象层级 中高(两层:AgentChat 高层 / autogen-core 事件驱动底层) 高(一行需求出全套文档+代码) 中(声明式配置,角色直觉) 低(薄层,贴近裸 API)
可控性 高(Selector 可定制、core 层可完全自控) 低(SOP 固定,改流程=改框架假设) 中高(回调/钩子丰富) 高(循环在你手里)
学习曲线 陡(概念多、版本断代) 中(概念少但黑盒) 平缓(最快上手) 平缓(会工具调用就会)
独立模型 任意(OpenAI 兼容) 任意 任意 任意(LiteLLM 生态)
生态活跃度 高(微软+社区双轨,2026 活跃) 中(仓库 ~70K star,发布节奏放缓) 高(1.x 稳定线 + 商业平台) 高(OpenAI 主推,迭代快)

三点版本背景说明(检索日核实): ① AutoGen 0.2 → 0.4 是架构级重写(事件驱动、可观测、可伸缩),老代码不兼容;0.4 后微软官方节奏放缓,社区 fork AG2(ag2.ai)接棒活跃开发,两者 API 高度同源——选型时把 AG2 视为 AutoGen 的"现行主线"更符合实态。 ② MetaGPT 团队重心已转向产品 MGX(MetaGPT X),框架本身 2025-03 后无新版。 ③ CrewAI 走"开源框架 + 商业平台"双轨,框架 1.x 是稳定线。

23.2 各框架的协作抽象拆解

拆解前先立坐标: 微软第 8 课的三种参考模式(微软·8)——Group chat(共享消息流群聊)、Hand-off(预定义规则移交)、Collaborative filtering(多专家协作推荐)——是理解四家框架差异的最短路径:每家框架本质上都是把这三件事(外加编排与状态管理)封装成了自己的抽象。 下面逐个看它们各自的封装方式。 在这里插入图片描述

23.3 AutoGen / AG2:Team 为中心的可编程协作

AutoGen 的世界观:Agent 是有预设行为的对话体,Team 是多 Agent 设计模式的载体。AgentChat(高层 API)内置了第 21 课拓扑的大部分:

  • RoundRobinGroupChat:固定轮转(pipeline 式)
  • SelectorGroupChat:由一个可定制的 selector(LLM 或函数)决定下一个发言者(supervisor 式,中央集权)
  • Swarm:Agent 通过 handoff 在共享上下文里移交控制权(去中心化式)
  • GraphFlow:有向图编排(显式 DAG)
  • Magentic-One:微软的通用多 Agent 应用参考实现(含网页浏览、文件操作)

用微软第 8 课的模式语言读这份清单(微软·8):RoundRobinGroupChat/SelectorGroupChat 是 Group chat 模式的代码化(前者规则轮转、后者中央路由),Swarm 是 Hand-off 模式的代码化(Agent 间直接移交),GraphFlow 则把"多 Agent 模式选择"(微软·8 构建块五)做成显式 DAG 由你完全定义——微软课程讲的模式与微软自研框架的抽象一一对应并非巧合:AutoGen 正是这门课推荐资源里的 Microsoft Agent Framework 的姊妹项目(微软·8 Additional resources)。

需要更细控制时下到 autogen-core:事件驱动、Actor 模型,消息路由完全自控。这个"高层模式 + 底层自控"的双层设计是 AutoGen 最独特的资产。

23.4 MetaGPT:把人类 SOP 编码进流水线

MetaGPT 的核心主张(arXiv:2308.00352):让 Agent 少犯"幻觉式协作"错误的方法,是把**人类软件公司的标准作业程序(SOP)**显式编码进系统——产品经理 Agent 产出 PRD → 架构师 Agent 产出系统设计 → 工程师 Agent 写代码 → QA Agent 审查。每个角色有固定的输入/输出产物(结构化文档),流水线自动流转。 它证明了一件事:预定义的制品化流程能把多 Agent 的输出从闲聊提升到工程交付物。代价是流程刚性——SOP 假设你在做"软件开发"这件事,改流程等于改框架的骨架假设。研究/开放探索类任务不是它的主场。

23.5 CrewAI:角色直觉 + 声明式配置

CrewAI 的抽象最贴近"招一支团队"的直觉:Agent(角色+目标+背景故事)、Task(分配给 Agent 的工作单元)、Crew(编队,声明 Process 模式:sequential 顺序执行 / hierarchical 由 manager Agent 调度——即第 22 课的 Supervisor)。 三件套全部声明式配置,上手最快;钩子/回调体系完善,适合快速把业务流程原型化。注意 hierarchical 模式本质就是内置 manager 的 supervisor 模式,token 结构与第 22 课分析一致。

23.6 OpenAI Agents SDK:薄层 + agents-as-tools

SDK 的多 Agent 有两条路(官方文档明确区分): handoffs(Agent 间移交对话控制权,适合分工明确的路由,如客服转技术支持——即微软 Hand-off 模式的直译,微软·8)与 agents-as-tools(把子 Agent 包成工具给主 Agent 调用,子 Agent 拿独立上下文干活、返回结果——这正是第 22 课 Orchestrator-Worker 的官方形态,也接近微软 Collaborative filtering 模式"多专家各出一判断再合成"的结构(微软·8))。加上 guardrails(输入输出校验)和 tracing 内建,它是"框架够薄、模式自选"的代表:不会替你决定协作结构,但把 handoff/工具包装/追踪的样板都做好了。

23.7 token 与协调复杂度的账

框架不改变第 22 课的成本物理:多 Agent 系统仍要烧 ~15× token。但框架在三个地方影响成本结构:

  • 共享上下文 vs 独立上下文:AutoGen 的 GroupChat 系列让 Team 成员共享一条消息流——每个成员每轮都重读全部历史,成员越多 token 越按 O(n²) 增长;Agents SDK 的 agents-as-tools、Anthropic 式子 Agent 是独立窗口+压缩回传,token 按 O(n) 增长但损失共享视野。成员多、任务长时优先独立窗口结构。
  • 协调开销是隐性 token:Selector/manager 每轮的"谁来干"决策、SOP 流转的制品传递,都是额外推理。CrewAI sequential 模式协调开销最低(无调度决策),hierarchical/Selector 每步都付调度税。
  • 框架默认值常缺失控防控:多数框架默认无最大迭代/预算上限(LangGraph 需要 RecursionLimit、AutoGen 需要 max_turns、Agents SDK 需要自己包循环)——第 24 课会把预算守卫做成显式代码。
  • 选型口径(按场景倒推):

    你的情况首选理由
    快速原型、非工程师协作 CrewAI 上手最快、声明式
    需要完全自控协作结构、研究型系统 OpenAI Agents SDK(agents-as-tools)或裸写 薄层不挡路,第 22 课模式直接落地
    复杂图状流程、事件驱动集成 AutoGen/AG2(core 层) 双层设计的底层自由度
    一行需求出软件交付物 MetaGPT SOP 流水线无可替代(限软件开发域)
    不确定要不要多 Agent 先单 Agent + Skills(第 21 课清单) 框架不会帮你省 token

    案例实战:同一任务在两个框架下的实现对比

    • 目标:任务"调研 X 主题并写摘要"用 CrewAI(hierarchical = Supervisor 模式) 与 OpenAI Agents SDK(agents-as-tools = Orchestrator-Worker 模式) 各实现一遍,对照第 22 课两种编排模式在框架里的真实形态。两个版本均已用国产模型实测跑通(2026-10-01),LLM 全部走 DeepSeek。
    • 运行环境:Windows 10/11 / macOS / Linux;Python ≥ 3.10。依赖:版本 A pip install "crewai>=1.15"(会经 LiteLLM 生态装入大量依赖,建议独立虚拟环境);版本 B pip install "openai-agents>=0.22"(轻量)。key 设置同第 21 课。

    23.8 版本 A:CrewAI hierarchical(Supervisor 形态)

    # CrewAI hierarchical supervisor【已实测——2026-10 于 Linux (Ubuntu 22.04, Python 3.10,
    # crewai 1.15.23 + deepseek-chat) 端到端跑通, manager 完成 2 次任务分派】
    # 依赖:pip install "crewai>=1.15";LLM 经 LiteLLM 生态接 DeepSeek
    import os
    from crewai import Agent, Task, Crew, Process, LLM

    llm = LLM(
    model="deepseek/deepseek-chat", # <provider>/<model> 格式走 LiteLLM
    api_key=os.environ.get("DEEPSEEK_API_KEY", "YOUR_API_KEY"),
    base_url="https://api.deepseek.com",
    )

    researcher = Agent(
    role="研究员",
    goal="收集主题的关键事实与来源",
    backstory="资深研究员, 只回传带来源的压缩发现",
    llm=llm,
    allow_delegation=False,
    max_iter=10, # 失控防控: 单 Agent 迭代上限 (CrewAI 默认 20)
    )
    writer = Agent(
    role="撰稿人",
    goal="把研究发现写成结构化摘要",
    backstory="技术撰稿人, 拒绝无来源论断",
    llm=llm,
    allow_delegation=False,
    max_iter=10,
    )
    tasks = [
    Task(description="调研主题: {topic}, 回传要点+来源", expected_output="要点列表", agent=researcher),
    Task(description="基于要点写 300 字摘要", expected_output="摘要文本", agent=writer),
    ]
    crew = Crew(
    agents=[researcher, writer], tasks=tasks,
    process=Process.hierarchical, # 内置 manager Agent = Supervisor 模式
    manager_llm=llm,
    )
    result = crew.kickoff(inputs={"topic": "多 Agent 框架的 token 成本结构"})
    print(result.raw)

    23.9 版本 B:OpenAI Agents SDK agents-as-tools(Orchestrator-Worker 形态)

    # Agents SDK orchestrator-worker【已实测——2026-10 于 Linux (Ubuntu 22.04, Python 3.10,
    # openai-agents 0.22.0 + deepseek-chat) 端到端跑通, lead 按序调用 research/write 两个工具各一次】
    # 依赖:pip install "openai-agents>=0.22";非 OpenAI 模型用 set_default_openai_client 接入
    import os, asyncio
    from openai import AsyncOpenAI
    from agents import Agent, Runner, set_default_openai_client, set_tracing_disabled

    ds_client = AsyncOpenAI(
    api_key=os.environ.get("DEEPSEEK_API_KEY", "YOUR_API_KEY"),
    base_url="https://api.deepseek.com",
    default_headers={"Accept-Encoding": "gzip, deflate"},
    )
    set_default_openai_client(ds_client) # 全局换默认模型提供方
    set_tracing_disabled(True) # 不向 OpenAI 上传 trace(用国产模型时必关)
    MODEL = "deepseek-chat"

    researcher = Agent(
    name="researcher",
    instructions="调研给定主题, 回传要点+来源, 不超过 200 字。",
    model=MODEL,
    )
    writer = Agent(
    name="writer",
    instructions="把研究发现写成 300 字结构化摘要, 拒绝无来源论断。",
    model=MODEL,
    )
    # agents-as-tools: 子 Agent 被包成工具, 各自独立上下文窗口 —— 第22课 orchestrator-worker
    orchestrator = Agent(
    name="lead",
    instructions="你是研究主Agent: 先派 researcher 调研, 再派 writer 成文。每个子Agent只调一次。",
    tools=[researcher.as_tool(tool_name="research",
    tool_description="调研主题并回传要点"),
    writer.as_tool(tool_name="write",
    tool_description="把要点写成摘要")],
    model=MODEL,
    )

    async def main(topic: str):
    result = await Runner.run(orchestrator, f"主题: {topic}", max_turns=10) # 失控防控
    print(result.final_output)

    if __name__ == "__main__":
    asyncio.run(main("多 Agent 框架的 token 成本结构"))

    • 步骤:① 建两个独立虚拟环境分别装 crewai / openai-agents(避免依赖互相降级,实测中 crewai 会把 openai 包从 3.x 降到 2.x)→ ② 设置 DEEPSEEK_API_KEY → ③ 各跑一次同一主题 → ④ 对比日志:CrewAI 版能看到 manager 的调度消息(Supervisor 形态),SDK 版能看到 lead 对两个"工具"的调用(Worker 形态)。
    • 实测记录(2026-10-01,Linux/Ubuntu 22.04 + Python 3.10 + deepseek-chat):版本 A manager 正确把两个 Task 分派给 researcher/writer,产出约 400 字摘要(内容涵盖 token 成本七类构成、框架差异、缓存优化);版本 B lead 严格按指令先 research 后 write 各调一次,输出结构化摘要并附"以上由 researcher 调研、writer 成文"的执行说明——两家对同一主题的输出可对照。
    • 预期输出:两份摘要文本;打开两家的 tracing(CrewAI 日志 / SDK 默认 tracing)对比消息结构——共享上下文 vs 独立窗口+结果回传的差别一目了然。
    • 对比结论(结构对照,无需跑也能读):CrewAI hierarchical 把第 22 课的 Supervisor 循环内置成了 Process 选项;SDK 的 as_tool 把 Orchestrator-Worker 内置成了一行调用。失控防控参数(max_iter / max_turns)框架其实都有内置默认值(CrewAI Agent 的 max_iter 默认 20,SDK 的 Runner.run 可传 max_turns),但默认值偏宽松,生产代码应按任务显式收紧。
    • 国产模型接入要点(两家实测通用):① OpenAI 兼容端点直接换 base_url;② CrewAI 走 LiteLLM 的 provider/model 命名;③ Agents SDK 用 set_default_openai_client + set_tracing_disabled(True);④ Accept-Encoding 头与 429 重试的处理同第 21 课。

    小结

    • 四框架四种抽象:AutoGen 的 Team(模式库+底层自控)、MetaGPT 的 SOP 流水线(制品化交付)、CrewAI 的 Crew(角色直觉+声明式)、Agents SDK 的 agents-as-tools(薄层 orchestrator-worker)。
    • 选型从任务倒推:原型用 CrewAI、研究系统用 SDK/裸写、图编排用 AutoGen core、软件交付用 MetaGPT;拿不准先回第 21 课"该不该上多 Agent"清单。
    • token 账两条铁律:共享上下文群聊 O(n²) vs 独立窗口 O(n);框架默认不设预算上限,max_iter/max_turns/预算守卫必须显式写。
    • 版本快照(2026-10-01):AutoGen 0.7.5(社区 AG2 接棒活跃)/ MetaGPT 0.8.2(重心移向 MGX)/ CrewAI 1.15.23 / openai-agents 0.22.3——多 Agent 框架迭代断代频繁,用前查 PyPI。
    • 综合项目实战(把本阶段全部模式串起来)见下一课第 24 课《多 Agent 综合项目》。

    扩展阅读

    🌐 网络提示:openai.com 系需代理(协议层知识已进正文,实测均可用国产端点替代);框架文档站(GitHub Pages/Cloudflare)可达性波动,打不开时稍后重试;学术站 arxiv.org 境内多可直连(慢),其余评测/规范站需代理;pip 安装建议加清华镜像 -i https://pypi.tuna.tsinghua.edu.cn/simple。详见总纲附录《国内网络访问与国产适配指南》。

    • AutoGen 官方文档(AgentChat + core 双层,模式列表):https://microsoft.github.io/autogen/stable/user-guide/agentchat-user-guide/index.html
    • AG2(社区延续线):https://docs.ag2.ai/ ;AutoGen v0.4 重写公告:https://www.microsoft.com/en-us/research/articles/autogen-v0-4-reimagining-the-foundations-of-agentic-ai-for-scale-extensibility-and-robustness/
    • MetaGPT 文档与论文(arXiv:2308.00352):https://docs.deepwisdom.ai/main/en/ ;https://arxiv.org/abs/2308.00352
    • CrewAI Crews/Process 概念文档:https://docs.crewai.com/concepts/crews
    • OpenAI Agents SDK multi_agent 文档(handoffs vs agents-as-tools):https://openai.github.io/openai-agents-python/multi_agent/
    • MAST 多 Agent 失败研究(选型前的清醒剂):https://arxiv.org/abs/2503.13657
    • 微软课程第 8 课 Multi-agent design patterns(本课模式语言的出处,Group chat / Hand-off / Collaborative filtering 三模式原文):https://github.com/microsoft/ai-agents-for-beginners/tree/main/08-multi-agent
    • Microsoft Agent Framework 文档(微软第 8 课推荐的官方延伸资源,微软·8):https://learn.microsoft.com/azure/ai-services/agents/overview

    我的专栏

    蛋白 / 抗体 / 多肽 / 核酸分子模拟 / 动力学 / 对接药物 / 设计 / 案例AI / Agent / 大模型
    开源蛋白结构预测 分子模拟基础 小分子药物设计案例 AI Agent系列
    开源蛋白生成方法实践 分子动力学模拟-Amber 蛋白药物设计案例 化学大模型
    开源多肽设计模型 分子动力学模拟-Gromacs 多肽药物设计案例 《AI Agent原理与实战》
    开源多肽性质预测 分子动力学模拟-OpenMM 开源小分子生成设计 CADD中的机器学习模型
    DNA/RNA药物设计 結合自由能 高效计算配置 《MCP 入门实战》
    siRNA药物设计模型 UCSF DOCK系列 我胡师兄说药 《AI入门实战2026》
    ASO药物设计模型 rDock系列 LeDock系列 gnina系列 《经典机器学习实战》
    赞(0)
    未经允许不得转载:171主机测评 » 《AI Agent原理与实战》2026版 第23课 多 Agent 框架横评
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址