AutoGen 多智能体框架
用分层 API 构建可自主运行或与人协作的多智能体应用。
- Star 数
- ★ 62k
- 最近更新
- 9 天前
- License
- CC-BY-4.0
- 主语言
- Python
- FA 评分
- 52/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- Python 开发者需要快速验证双智能体聊天、群聊或专家分工工作流时,可使用 AgentChat API 和 AgentTool 组装原型。
- 不适合
- 需要长期功能更新与官方支持的新项目团队
- 希望开箱即用、无需自行实现认证与安全的生产部署团队
- 无法使用 OpenAI 等外部模型 API 的完全离线环境
这个 Agent 能做什么,适合哪些场景?
AutoGen 是一个用于创建多智能体 AI 应用的编程框架,智能体可以自主执行任务,也可以与人协作。其分层架构包括负责消息传递、事件驱动智能体及本地和分布式运行时的 Core API,面向快速原型的 AgentChat API,以及提供模型客户端、代码执行等集成的 Extensions API。Python 示例通过 AssistantAgent 调用模型并返回任务运行结果,也可借助 AgentTool 将数学、化学等专业智能体组合成由主智能体调度的工作流。配套工具包括用于无代码原型设计的 AutoGen Studio、用于评测智能体表现的 AutoGen Bench,以及可处理网页浏览、代码执行和文件操作的 Magentic-One 示例。该项目现处于维护模式,由社区管理,不再增加新功能;新项目被明确建议采用其后继者 Microsoft Agent Framework。
开发者使用 AssistantAgent 定义智能体,并通过 model_client 接入模型;示例中的 OpenAIChatCompletionClient 调用 OpenAI API。agent.run(task=...) 或 agent.run_stream(task=...) 接收任务,触发模型推理和已配置工具的迭代调用,并产生消息或流式控制台输出。AgentTool 可以把一个 AssistantAgent 包装为另一个智能体可调用的工具,从而让通用智能体把数学或化学问题交给专业智能体。Core API 提供消息传递、事件驱动智能体以及本地和分布式运行时,并支持 Python 与 .NET;AgentChat 在其上提供双智能体聊天、群聊等较高层模式。Extensions API 提供 OpenAI、AzureOpenAI 等模型客户端实现以及代码执行能力;McpWorkbench 可连接 Playwright MCP 服务器,让智能体执行网页浏览任务。AutoGen Studio 通过 autogenstudio ui 启动用于构建和运行工作流的 GUI,但文档明确说明它只是原型和界面示例,不是可直接投入生产的应用。
- Python 开发者需要快速验证双智能体聊天、群聊或专家分工工作流时,可使用 AgentChat API 和 AgentTool 组装原型。
- 需要细粒度控制的框架开发者,可使用 Core API 构建基于消息传递和事件驱动机制的本地或分布式智能体运行时。
- 需要网页研究能力的开发者,可通过 McpWorkbench 连接 Playwright MCP 服务器,为 AssistantAgent 配置浏览工具。
- 产品或研究团队需要在不先编写界面代码的情况下演示多智能体流程时,可用 AutoGen Studio 构建和运行原型。
- 智能体研究人员需要评估系统表现时,可使用项目提供的 AutoGen Bench 基准测试套件。
- 现有 AutoGen 用户需要维护已部署系统时,可继续使用当前架构处理缺陷修复、安全补丁和文档改进,并规划迁移到 Microsoft Agent Framework。
如何安装或部署这个 Agent?
运行环境要求 Python 3.10 或更高版本。安装 AgentChat 和带 OpenAI 支持的 Extensions:
pip install -U "autogen-agentchat" "autogen-ext[openai]"如需无代码 GUI,另行安装 AutoGen Studio:
pip install -U "autogenstudio"使用 OpenAI 示例前,需要创建 OpenAI 账户并设置 API 密钥:
export OPENAI_API_KEY="sk-..."如需运行 README 中的 Playwright MCP 示例,还要安装其 MCP 服务器:
npm install -g @playwright/mcp@latest如何使用这个 Agent?
设置 OPENAI_API_KEY 后,可创建并运行第一个 AssistantAgent:
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())如需通过 GUI 设计和运行多智能体工作流,可启动 AutoGen Studio:
autogenstudio ui --port 8080 --appdir ./my-app随后访问 http://localhost:8080。Studio 适合快速原型和演示;生产应用需要开发者自行实现身份验证、安全措施及其他部署功能。
这个 Agent 有哪些优点和局限?
- 分层架构覆盖不同抽象层级:Core API 提供消息传递和运行时控制,AgentChat 提供较易使用的多智能体模式,Extensions API 承载模型客户端和执行能力。
- 同时提供 Python 与 .NET 路径,并支持本地和分布式运行时,适合从原型逐步深入到底层编排。
- AgentTool 能将专业 AssistantAgent 直接暴露为其他智能体的工具,形成明确的多智能体任务委派结构。
- 工具链覆盖无代码工作流原型、基准评测以及 MCP 接入,而不仅限于核心库。
- 模型集成层可容纳第一方和第三方扩展,已明确列出 OpenAI 与 AzureOpenAI 客户端实现。
- 项目已经进入维护模式,不再获得新功能或增强,贡献范围也限于缺陷修复、安全补丁和文档改进。
- 官方建议新项目改用 Microsoft Agent Framework,因此现在采用 AutoGen 会带来后续迁移风险。
- 快速入门依赖外部 OpenAI API、账户和密钥;来源未说明 API 使用成本、离线模型配置或默认重试行为。
- AutoGen Studio 明确不是生产就绪应用,生产部署必须自行补充身份验证、安全和其他必要能力。
- MCP 服务器可能在本地环境执行命令或暴露敏感信息,只应连接可信服务器。
- 仓库内容和文档采用 CC BY 4.0,而代码另行采用 MIT License,采用者需要区分两类许可范围。
这个 Agent 与同类方案有什么区别?
Microsoft Agent Framework 是 AutoGen 的企业级后继者。AutoGen 已进入社区维护模式,不再增加功能;Microsoft Agent Framework 被描述为具有稳定 API、长期支持、多提供商模型支持,以及通过 A2A 和 MCP 实现跨运行时互操作的生产就绪方案。新项目应优先选择 Microsoft Agent Framework,现有 AutoGen 项目则可继续维护并使用官方迁移指南过渡。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| AutoGen 多智能体框架 当前 | 52 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 62k | 9 天前 | Python | OpenAI API |
| aiXplain SDK | 29 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 59 | 7 天前 | Python | — |
| AgentScope 2.0 | 70 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 35k | 2 天前 | Python | OpenAI API · Claude API |
| AgenticX 多智能体平台 | 64 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 977 | 1 天前 | Python | Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:README 警告 MCP 服务器可能执行本地命令或暴露敏感信息,提示用户仅连接可信服务器;AutoGen Studio 明确声明非生产就绪,需自行实现认证和安全。但未提供细粒度的权限控制、用户确认机制或数据流透明度的具体实现。依赖安全方面,存在 CodeQL 和依赖审查工作流,但未提供依赖漏洞扫描结果。外部影响方面,MCP 示例可能执行命令,但未提供回滚机制。来源归属方面,仓库由 Microsoft 官方组织发布,但未提供代码签名或更详细的来源验证。扣分原因:缺乏具体的安全机制文档和实现细节,回滚机制缺失。
证据显示:README 和代码示例一致,框架分层清晰,但未提供错误处理或失败消息的详细说明。依赖可用性方面,提供了安装命令和 PyPI 链接,但未提供依赖的可用性保证。扣分原因:失败消息和错误处理文档不足。
证据显示:README 面向开发者和研究者,提供了多种场景示例(Hello World、MCP、多智能体编排),并说明了能力边界(如 AutoGen Studio 非生产就绪)。但触发精度方面,未详细说明事件触发条件。环境适配方面,支持 Python 和 .NET,但未提供完整的系统要求。扣分原因:触发精度和系统要求说明不足。
证据显示:README 结构清晰,包含安装、快速入门、文档链接、FAQ 和已知限制(维护模式)。许可证明确为 CC-BY-4.0,但代码许可证为 MIT(在 README 中提及)。版本控制方面,有 releases 链接,但未提供详细的变更日志。维护责任方面,明确说明社区管理,并推荐迁移到 Microsoft Agent Framework。扣分原因:变更日志和版本历史信息不足。
证据显示:提供了多种使用示例和文档,输出格式清晰,易于集成。边际价值方面,框架提供了多智能体编排和扩展能力,但维护模式可能降低长期价值。成本效益方面,开源免费,但需要配置 API 密钥和依赖。扣分原因:维护模式可能影响长期支持。
证据显示:README 中的声明与代码示例一致,但未提供独立的验证或测试结果。跨来源佐证方面,有文档链接和社区支持,但未提供第三方验证。事实与推断分离方面,README 区分了事实(如维护模式)和建议(如推荐 MAF),但未明确标注。扣分原因:缺乏独立的验证和测试证据。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- AutoGen 已进入维护模式,不再添加新功能,新项目应使用 Microsoft Agent Framework。
- MCP 服务器可能执行本地命令或暴露敏感信息,仅连接可信服务器。
- AutoGen Studio 非生产就绪,部署前需自行实现认证和安全。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * Fix docs dotnet core typo by @lach-g in https://github.com/microsoft/autogen/pull/6950 * Fix loading streaming Bedrock response with tool usage with empty argument by @pawel-dabro in https://github.com/microsoft/autogen/pull/6979 * Support linear memory in RedisMemory by @justin-cechmanek in https://github.com/microsoft/autogen/pull/6972 * Fix message ID for correlation between streaming chunks and final mes… by @smalltalkman in https://github.com/microsoft/autogen/pull/6969 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * Update docs for 0.7.3 by @ekzhu in https://github.com/microsoft/autogen/pull/6948 * Update readme with agent-as-tool by @ekzhu in https://github.com/microsoft/autogen/pull/6949 * Fix Redis Deserialization Error by @BenConstable9 in https://github.com/microsoft/autogen/pull/6952 * Redis Doesn't Support Streaming by @BenConstable9 in https://github.com/microsoft/autogen/pull/6954 * update version to 0.7.4 by @ekzhu in https://github.com/microsoft/autogen/pull/6955 * Update doc 0.7.4 by @ekzhu in https://github.com/microsoft/autogen/pull/6956 New Contributors …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * Update website for 0.7.2 by @ekzhu in https://github.com/microsoft/autogen/pull/6902 * Typo in docs for 'NoOpTracerProvider' by @nicsuzor in https://github.com/microsoft/autogen/pull/6915 * Fix MCP example in readme by @ekzhu in https://github.com/microsoft/autogen/pull/6919 * Extend pydantic model capability for anyOf/oneOf item typing by @fiow123 in https://github.com/microsoft/autogen/pull/6925 * Update README.md with correct stable version by @Jp3132 in https://github.com/microsoft/autogen/pull/6942 …在 GitHub 查看 ↗