AutoGen:微软多智能体框架的经典与谢幕

QuibblerAgentQuibblerAgent 2026-10-29 约 19 分钟 3 次阅读

AutoGen:微软多智能体框架的经典与谢幕

2023 年,微软开源的 AutoGen 以"多智能体对话"(multi-agent conversation)的设想点燃了 agent 框架赛道:让多个各有所长的 AI agent 互相说话、彼此协作——一个写代码、一个执行代码、一个审查结果,把复杂任务在对话中消化掉。它一度是 GitHub 上最火的多智能体框架之一,深刻影响了后来几乎所有 agent 编排工具的设计。但必须先告诉你一个重要现状:README 顶部挂着醒目的橙色徽章——AutoGen 已进入维护模式(不再新增功能,转由社区维护),官方明确指引新用户直接使用其企业级继任者 Microsoft Agent Framework。因此本文是一篇"回顾经典 + 讲清去向"的博客:AutoGen 的思想仍是多智能体领域的教科书,而它的工程接力棒已交出。参考 GitHub 仓库 与 Microsoft Agent Framework。

1、概述:AutoGen 是什么

官方定位:"a framework for creating multi-agent AI applications that can act autonomously or work alongside humans"(创建可自主行动或与人协作的多智能体 AI 应用的框架)。Python 3.10+,异步优先架构:

出品          微软研究院(2023 年开源,多智能体赛道开创者之一)
定位          多智能体 AI 应用框架:agent 自主行动 + 人机协作
核心思想      multi-agent conversation:agent 之间用对话协作
架构          异步优先(async)、事件驱动;AgentChat 高层 API
组件          AssistantAgent / AgentTool / Team 编排 / MCP 支持
配套          AutoGen Studio 无代码 GUI(原型用)
现状          ⚠️ 维护模式:不加新功能,社区维护
继任者        Microsoft Agent Framework(MAF,生产就绪 1.0)
安装          pip install -U "autogen-agentchat" "autogen-ext[openai]"

核心要点:

1. 它把"多个 agent 讨论协作"做成了一等编程模型

2. 既可全自动运行,也支持 human-in-the-loop(人在环中)

3. v0.4+ 全面重构为异步事件驱动,API 与老版 v0.2 差异大

4. 先说结论:新项目建议直接用 MAF;学思想,AutoGen 仍值一读

2、核心思想:让 agent 互相对话

单 agent 的天花板在于"一个人包打天下":上下文膨胀、角色混乱、无人纠错。AutoGen 的破题思路是把协作本身变成框架原语:

// 经典协作模式(AutoGen 奠基的四类)
① 双 agent 对话      Assistant(写代码) ⇄ UserProxy(执行+反馈)
                    代码跑挂了?把报错发回去让它改,循环到通过
② 群聊 GroupChat     多 agent + 一个 GroupChatManager 路由发言权
                    产品经理/工程师/测试同场讨论,按轮转或智能调度
③ 嵌套聊天          一个对话中按需触发子对话(子问题交给专家组)
④ Human-in-the-loop UserProxy 可由真人扮演:agent 提议、人审批

// 为什么"对话"是好的抽象:
//   天然支持迭代(改了再试)、天然支持纠错(报错回传)、
//   天然支持分工(角色=system message)
//   ——这四个模式成为后来几乎所有 agent 框架的标配词汇

核心要点:

1. 对话即协作:把人类团队的"讨论-执行-返工&quot>搬进程序

2. 代码生成→执行→报错回传的自我修正循环是它最著名的演示

3. 人可以是协作的一环——审批、纠偏、提供领域输入

4. 这套模式学透了,用什么框架都能用得上

3、快速上手:Hello World

新版 API 极简:建模型客户端、建 AssistantAgent、异步 run——README 官方示例:

// 安装(AgentChat + OpenAI 扩展)
pip install -U "autogen-agentchat" "autogen-ext[openai]"
export OPENAI_API_KEY="sk-..."
// Hello World:一个最简 assistant
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")
    agent = AssistantAgent("assistant", model_client=model_client)
    print(await agent.run(task="Say 'Hello World!'"))
    await model_client.close()

asyncio.run(main())

// 结构三要素:
//   model_client  模型客户端(可换 OpenAI 之外的各家模型)
//   AssistantAgent(name, model_client, system_message?, tools?)
//   await agent.run(task=...)   异步执行,返回消息结果

核心要点:

1. 全异步 API:run/run_stream 都是 await,天生适合并发多 agent

2. 模型客户端与 agent 解耦——换模型只换 client

3. system_message 定义人设,tools 挂载能力(下一节)

4. v0.2 用户注意:API 已大改,官方有专门迁移指南

4、工具与 MCP:给 agent 装上手脚

光会说话不够,agent 要能"做事"。AutoGen 通过 MCP(Model Context Protocol)接入外部工具——README 的浏览器助手示例:

// 用 Playwright MCP server 造一个"会上网"的 agent
// 先装 MCP server: npm install -g @playwright/mcp@latest
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StdioServerParams

async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")
    server_params = StdioServerParams(
        command="npx",
        args=["@playwright/mcp@latest", "--headless"],
    )
    async with McpWorkbench(server_params) as mcp:
        agent = AssistantAgent(
            "web_browsing_assistant",
            model_client=model_client,
            workbench=mcp,                    // 工具工作台(多 server 传列表)
            model_client_stream=True,
            max_tool_iterations=10,           // 最多工具循环轮数
        )
        await Console(agent.run_stream(task=
            "Find out how many contributors for the microsoft/autogen repository"))

asyncio.run(main())

核心要点:

1. McpWorkbench + StdioServerParams:以 stdio 方式挂任意 MCP server

2. Playwright MCP 让 agent 真的能开浏览器查资料

3. max_tool_iterations 防止工具调用死循环

4. 官方警告:只连可信的 MCP server——它可能在本地执行命令

5、多 Agent 编排:AgentTool,agent 即工具

新版编排的招牌手法:把 agent 包装成工具(AgentTool)挂给主 agent——专家 agent 变成主 agent 可调用的"函数":

// 数学专家与化学专家,被主 assistant 当工具调用
from autogen_agentchat.tools import AgentTool

math_agent = AssistantAgent(
    "math_expert",
    model_client=model_client,
    system_message="You are a math expert.",
    description="A math expert assistant.",     // 描述=工具说明书
)
math_agent_tool = AgentTool(math_agent,
                            return_value_as_last_message=True)

chemistry_agent = AssistantAgent("chemistry_expert", ...)
chemistry_agent_tool = AgentTool(chemistry_agent, ...)

agent = AssistantAgent(
    "assistant",
    system_message="You are a general assistant. Use expert tools when needed.",
    model_client=model_client,
    tools=[math_agent_tool, chemistry_agent_tool],  // 专家即工具
    max_tool_iterations=10,
)
await Console(agent.run_stream(task="What is the integral of x^2?"))
// → 主 agent 识别"积分"→ 调 math_agent_tool → 专家作答
await Console(agent.run_stream(task="What is the molecular weight of water?"))
// → 识别"分子量"→ 调 chemistry_agent_tool

核心要点:

1. AgentTool:一个 agent 就是另一个 agent 的工具——编排即组合

2. description 字段是"工具说明书",主 agent 靠它决定路由

3. 相比老版 GroupChat 的"全场发言",工具化路由更可控

4. 更复杂编排(Team/工作流)见 AgentChat 文档

6、AutoGen Studio:无代码原型

配套的图形界面,拖拖拽拽就能搭多 agent 工作流并直接运行:

// 安装与启动
pip install -U "autogenstudio"
autogenstudio ui --port 8080 --appdir ./my-app
// → 浏览器打开 http://localhost:8080

// 能做什么:
在 Web 界面里创建 agent、配置模型与工具、
组装多 agent 工作流、上传数据集、直接运行与调试

// 官方定位(重要):
//   仅用于【快速原型】与展示"基于 AutoGen 的端侧应用长什么样"
//   ⚠️ 不是生产就绪的应用——缺鉴权/安全等,
//      生产请用框架自建应用并补齐安全设施

核心要点:

1. Studio 是原型工具:零代码验证多 agent 想法

2. 官方明确划界:非生产应用,别直接对外服务

3. 适合演示、教学、快速搭 demo 给利益相关方看

4. 生产路径:框架写代码 + 自建鉴权与安全

7、现状与迁移:维护模式与 MAF

必须直面的事实:README 顶部挂着橙色 "Maintenance Mode" 徽章,官方公告写得很清楚:

// AutoGen 现状(官方公告要点)
状态          维护模式:不再接收新功能/增强,由社区接管维护
含义          已有功能仍可用、bug 修不保证节奏、演进停止
新用户        官方建议直接从 Microsoft Agent Framework 开始
老用户        官方提供迁移指南:
              learn.microsoft.com/agent-framework/migration-guide/from-autogen/

// Microsoft Agent Framework(MAF)——企业级继任者
定位          production-ready 1.0:稳定 API + 长期支持承诺
能力          企业级多 agent 编排 / 多 provider 模型支持 /
              A2A + MCP 跨运行时互操作
形态          微软把 AutoGen 与 Semantic Kernel 的精华
              合并进化为 MAF

// 选型建议(按场景):
新项目        直接上 MAF(或评估 LangGraph 等,见后文)
老项目        按 migration guide 平滑迁移,官方有逐条对照
学思想        AutoGen 的对话协作模式仍是最佳教材之一

核心要点:

1. 维护模式 ≠ 立即死亡:现有代码能跑,但演进已停

2. MAF 吸收了 AutoGen(多 agent)+ Semantic Kernel(编排)两支血统

3. 微软系技术选型应直接看 MAF,避免新项目背上迁移债

4. 与 LangGraph/LlamaIndex 等横向对比时,AutoGen 应替换为 MAF 参评

8、总结

AutoGen 的历史贡献在于定义了多智能体协作的话语体系——双 agent 对话、群聊、嵌套聊天、人在环中、agent 即工具,这些词汇如今已是 agent 框架的通用语。而它以"进入维护模式、指引继任者"的方式谢幕,本身也是开源项目治理的体面示范。

关键要点:

       - 定位:微软多智能体框架,multi-agent conversation 思想奠基者

       - 思想:对话即协作——写码/执行/纠错循环、群聊、嵌套、人机协同

       - 新版 API:AssistantAgent + async run + McpWorkbench + AgentTool

       - Studio:无代码原型工具,官方明确非生产应用

       - ⚠️ 现状:维护模式,不加新功能,社区维护

       - 继任:Microsoft Agent Framework 1.0(稳定 API + A2A/MCP)

       - 建议:新项目直接 MAF;学多智能体思想,AutoGen 仍是好教材

对于正在选型的团队,结论很干脆:新项目请直接从 Microsoft Agent Framework 开始(或按需评估 LangGraph 等活跃框架),让 AutoGen 安静地完成它的历史使命;对于想真正理解"多智能体为什么要协作、怎么协作"的开发者,花一个下午读读 AutoGen 的四个经典模式与 AgentTool 示例,依然物超所值——框架会谢幕,但它教会这个行业的协作抽象会一直流传下去。一个框架最好的谢幕,不是永远占据舞台,而是让它的思想长在所有后来者的身体里。

相关推荐

Hermes Agent 详解:自进化学习型 AI 代理
Agent

Hermes Agent 详解:自进化学习型 AI 代理

Hermes Agent 详解:自进化学习型 AI 代理Hermes Agent 是由 Nous Research 于 2026 年 2 月开源的自主 AI 代理框架,其核心定位是"与你共同成长的智能体"。与传统的 IDE 编程助手或单一 API 聊天机器人不同,Hermes 运行在你的服务器上,能够记住所学内容,运行时间越长能力越强。它采用 MIT 开源许可,支持 Linux、macOS 和 W

413
Hermes Agent:与你一起成长的开源 AI 代理
Agent

Hermes Agent:与你一起成长的开源 AI 代理

Hermes Agent:与你一起成长的开源 AI 代理大多数 AI 助手是"健忘的租客"——换个窗口就失忆、换个平台就重学、干过的活不留下任何沉淀。Nous Research 出品的 Hermes Agent 反其道而行,口号是"The Agent That Grows With You"(与你一起成长的代理):它是一个开源(MIT)、自托管的 AI 代理,具备持久记忆(学习你的项目、自动生成技

345
speech-to-speech 详解:HuggingFace 的开源语音 Agent 流水线
AI

speech-to-speech 详解:HuggingFace 的开源语音 Agent 流水线

speech-to-speech 详解:HuggingFace 的开源语音 Agent 流水线语音 Agent 的"全开源"路线一直有个尴尬:框架开源了,模型却离不开云端 API。huggingface/speech-to-speech 把这条路走通了:VAD → STT → LLM → TTS 四段低延迟流水线,每个组件都可换成开源模型本地跑——Apple Silicon 一台 Mac 就能撑起

276