
Microsoft AutoGen · 对话式多 Agent 协作框架 · 原理学习、本地运行与迁移说明全指南
项目仓库: https://github.com/microsoft/autogen
代码协议:MIT(文档 CC-BY 4.0) · 运行时:Python 3.10 及以上(另提供 .NET 生态包) · 运行形态:Python 库 / AutoGen Studio 本地图形界面(默认端口 8080) · 常驻模型服务:无(调用外部模型接口) · 分支:main(命令、包名与端口以官方仓库最新说明为准)
⚠️ 归档状态前置声明(务必先读):根据当前官方 README,microsoft/autogen 仓库已归档(Archived),Microsoft 不再主动维护:不提供 Bug 修复、安全修复、新特性或官方支持;仓库仅保留用于历史参考。官方同时提示:缺乏持续维护与安全修复时,项目及其依赖中的漏洞可能长期存在,继续使用会抬高安全风险,尤其在处理敏感数据时应谨慎评估;AutoGen 面向研究与实验设计,官方持续建议不要将其用于生产环境。新项目请使用后继框架 Microsoft Agent Framework;现有 AutoGen 用户可参考官方迁移指南从 AutoGen 迁移到 MAF。本文档用于梳理该框架的历史架构、编排原理与最小可运行示例,供学习与迁移对照使用。
1 项目简介
AutoGen 最初由 Microsoft Research 发起,是一个用于构建多智能体 AI 应用的框架:Agent 可以自主行动,也可以与人协作。框架以可分层、可扩展的方式设计——高层 API 便于快速原型,低层组件保留灵活控制力——在多 Agent 对话编排、工具调用、代码执行与原型可视化方面影响了后续一大批 Agent 框架。
当前仓库内的包采用分层结构:
- Core API:实现消息传递、事件驱动 Agent、本地与分布式运行时,支持 Python 与 .NET 跨语言互操作;
- AgentChat API:在 Core 之上提供更简洁、约定明确的快速原型 API,支持双 Agent 对话、群组聊天等常见多 Agent 模式,也是 v0.2 用户最熟悉的一层;
- Extensions
API(
autogen-ext):提供一等公民与第三方扩展,包括 OpenAI、Azure OpenAI 等模型客户端,以及代码执行等能力。
配套的开发者工具包括 AutoGen Studio(无代码图形界面,用于搭建和运行多 Agent 工作流原型)与 AutoGen Bench(Agent 性能评测套件)。仓库内还包含 Magentic-One 等基于 AgentChat 与 Extensions 构建的多 Agent 团队示例。
后继项目提示:官方 README 明确,Microsoft Agent Framework(MAF)是 AutoGen 的企业级后继产品,提供稳定 API、长期支持、多厂商模型、通过 A2A 与 MCP 的跨运行时互操作;新建项目应从 MAF 开始,而非在归档的 AutoGen 上继续投入生产开发。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Microsoft AutoGen(仓库 microsoft/autogen) |
| 仓库地址 | github.com/microsoft/autogen |
| 项目定位 | 对话式多 Agent 应用框架:自主或人机协作的 Agent、工具调用与群组编排 |
| 仓库状态 | 已归档、不再主动维护(以官方 README 归档徽章与说明为准) |
| 代码协议 | MIT(LICENSE-CODE);文档内容采用 CC-BY 4.0 |
| Python 要求 | 3.10 或更高版本 |
| 核心 Python 包 | autogen-core、autogen-agentchat、autogen-ext、autogenstudio、agbench(包名以
PyPI 当前页面为准) |
| 模型接入 | OpenAI、Azure OpenAI 等客户端;完整清单见 Extensions 与官方模型文档 |
| 图形工具 | AutoGen Studio,本地启动默认 http://localhost:8080 |
| 运行形态 | Python 脚本 / 库调用 / Studio 本地原型界面 |
| 官方文档 | microsoft.github.io/autogen |
| 后继框架 | Microsoft Agent Framework + 迁移指南 |
1.2 适用场景
- 学习多 Agent 对话编排历史范式:双 Agent 对话、群组聊天(RoundRobin、Selector 等终止条件)、Agent 作为工具(AgentTool)被主 Agent 调用等经典模式。
- 研究与课程实验:在隔离实验环境中复现 AgentChat 示例、体验消息传递与事件驱动运行时的结构。
- 对照迁移:现有 AutoGen v0.2 / 新版代码需要梳理 API 对应关系,评估迁移到 Microsoft Agent Framework 的工作量。
- 快速原型可视化:用 AutoGen Studio 在画布上拖拽组装团队、模型、工具与终止条件,观察执行轨迹(官方定位为原型工具,不是生产应用)。
1.3 能力边界(官方口径与归档提示)
- 官方 README 明示:仓库归档后不再提供 Bug 修复、安全修复、新功能或支持;依赖漏洞与兼容性问题可能长期无人处理。
- AutoGen Studio 是原型工具:官方注明它用于快速搭建多 Agent 工作流原型并演示终端用户界面样例,不是生产就绪应用;开发者若要落地应用,需自行实现认证、安全与生产所需的其他能力。
- 框架不提供模型本身,也不附带模型 Key;示例默认调用 OpenAI API,需自备密钥。
- 仓库处于社区维护状态,Discord 与 GitHub Discussions 的响应可能有限;功能开发应转向 Microsoft Agent Framework。
- 官方安全提示:只连接可信的 MCP 服务器——不可信的 MCP 服务可能在本地环境执行命令或暴露敏感信息。
- Microsoft、Windows、Microsoft Azure 等名称与徽标属于微软商标;框架许可证不授予使用微软名称、Logo 或商标的权利。
2 功能特性
2.1 分层 API:从快速原型到底层运行时
- AgentChat:
AssistantAgent、群组聊天、终止条件、控制台流式输出等高层抽象,适合快速上手; - Core:消息、事件、本地与分布式运行时,支持 Python 与 .NET;
- Extensions:模型客户端与代码执行等可插拔能力,随生态持续扩展。
2.2 Agent 与工具调用
AssistantAgent可配置system_message、description、tools、model_client_stream、max_tool_iterations等参数;- 支持把一个 Agent 包装为
AgentTool供主 Agent 按需调用,实现“专家 Agent 团队”式编排; - 支持 MCP 服务器挂载(如 Playwright MCP),以
McpWorkbench与StdioServerParams描述本地标准输入输出型服务。
2.3 多 Agent 编排模式
- 双 Agent 对话、群组聊天、轮询 / 选择器团队等模式在 AgentChat 层提供;
- 终止条件(如最大消息数
MaxMessageTermination)控制团队运行边界; - Magentic-One 是基于本框架构建的多 Agent 团队示例,覆盖网页浏览、代码执行、文件处理等任务类型。
2.4 人机协作与人在环
- 框架支持人类参与对话环节;AutoGen Studio 内置
huma_in_loop_team等默认团队样例,用于演示人工审批节点。
2.5 AutoGen Studio 无代码原型
- 浏览器内 Team Builder 画布:新建团队、从组件库拖入 Agent、模型、工具与终止条件;
- Playground 调试运行,Gallery 浏览默认团队样例,Deploy 面板查看导出选项;
- 侧边栏包含 Teams 列表、Recents、Gallery 与 Settings,界面语言与版本以当前 Studio 版本为准。
2.6 评测工具与跨语言生态
- AutoGen Bench 提供 Agent 性能评测套件;
- Core 层支持 .NET 包体系(Contracts、Core、Core.Grpc、RuntimeGateway.Grpc,见 NuGet 条目);
- 官方文档站提供 Python、.NET、Studio 三条安装、快速开始、教程与 API 参考入口。
3 官方界面预览
3.1 框架生态分层图
下图为官方 README 的生态示意图:开发工具侧为 Studio 与 Bench;框架层由 Core、AgentChat、Extensions 组成;应用层可基于框架构建 Magentic-One 或自有应用。

3.2 AutoGen Studio Team Builder
下图(仓库 autogen-studio 文档截图)展示 Studio 的 Team
Builder 主界面:左侧为 Teams 列表与
Gallery,中间是组件库(Agents、Models、Tools、Terminations),右侧画布以团队节点为中心,连接
Agent 节点、Model 节点与终止条件节点。截图底部标注版本号与“Maintained by
the AutoGen Team”字样,版本号随发布变化,以实际安装为准。

4 官方跳转链接汇总
下表列出项目相关的官方入口,均可直接点击访问。
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/microsoft/autogen | 框架源码、README、各语言包目录 |
| 官方文档 | microsoft.github.io/autogen | 稳定版 AgentChat、Studio、模型与迁移文档 |
| Python 安装指南 | installation.html | Python 包安装要求 |
| AgentChat 快速开始 | quickstart.html | Hello World 与对话示例 |
| 模型接入清单 | models.html | 除 OpenAI 外其他支持模型说明 |
| v0.2 迁移指南 | migration-guide.html | 从 v0.2 升级的代码与配置迁移说明 |
| Studio 文档 | autogenstudio-user-guide | 无代码原型界面使用与安全说明 |
| 后继框架(新项目) | github.com/microsoft/agent-framework | Microsoft Agent Framework,企业级后继产品 |
| AutoGen → MAF 迁移指南 | learn.microsoft.com · from-autogen | 现有用户迁移到 MAF 的官方指南 |
| Releases | github.com/microsoft/autogen/releases | 稳定版本号与发布记录 |
| Issues / Discussions | github.com/microsoft/autogen/discussions | 社区讨论(归档后响应可能有限) |
| Discord | aka.ms/autogen-discord | 社区交流服务器 |
| 官方博客 | devblogs.microsoft.com/autogen | 框架历史博客资料 |
| 代码许可证 | LICENSE-CODE | MIT 许可证文本 |
| README 原文 | raw README.md | 本指南整理所依据的官方说明 |
5 前置要求与本地环境准备
5.1 软件前提
Python 3.10 或更高版本:官方 README 明确要求;用
python --version确认。模型服务凭据:示例默认调用 OpenAI API,先在模型服务商处获取密钥,并以环境变量导出:
export OPENAI_API_KEY="sk-..."其他模型接入方式(Azure OpenAI 等)见官方模型文档。
Node.js(仅 MCP 示例需要):Playwright MCP 示例需要先全局安装 MCP 服务器:
npm install -g @playwright/mcp@latestAutoGen Studio(可选):需要单独安装
autogenstudio包;原型运行在本机浏览器。网络访问:需要能连通所选模型接口;MCP 服务器在本地或可信远程环境运行。
5.2 硬件与系统建议(官方口径)
| 项目 | 说明 |
|---|---|
| GPU | 框架本身不在本机运行大模型,无独立显卡硬性要求;模型推理在外部接口完成 |
| CPU / 内存 | 普通开发笔记本即可;Studio 原型界面占用取决于团队规模与并发会话 |
| 存储 | 预留数百 MB 用于 Python 包、Studio 产物目录与本地运行时数据 |
| 操作系统 | Linux、macOS、Windows 均可;.NET 相关包按官方 NuGet 文档单独准备运行环境 |
5.3 端口与目录分配
| 项 | 默认值 / 路径 | 用途 |
|---|---|---|
| Studio 端口 | 8080(--port 8080) |
本地浏览器访问 Team Builder / Playground |
| Studio 应用目录 | ./my-app(--appdir 指定) |
团队配置、状态与原型产物保存位置 |
| 模型密钥 | 环境变量 OPENAI_API_KEY |
OpenAI 客户端鉴权,不写入代码与仓库 |
| MCP 服务参数 | StdioServerParams(command=..., args=[...]) |
本地启动 MCP 服务器的命令与参数 |
| 常驻后台服务 | 无框架级后台服务;仅 Studio 启动本地 Web 界面 |
6 方式一:Python 包安装与最小示例运行(框架入门)
AutoGen 是 Python 库框架,无常驻后端服务端,官方未提供一键 Compose 部署文件;本章按官方 README 的 pip 安装流程如实编写,不虚构容器编排。
6.1 安装 AgentChat 与 OpenAI 扩展
# 安装 AgentChat 与 OpenAI 客户端扩展
pip install -U "autogen-agentchat" "autogen-ext[openai]"当前稳定版本号以仓库 Releases 页面为准;从 v0.2 升级时先阅读官方 v0.2 迁移指南。
6.2 Hello World 最小示例
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())6.3 MCP 服务器工具示例(Playwright 浏览助手)
先完成第 5.1 节的
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, # 多个 MCP 服务器时传入列表
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())官方警告:只连接可信 MCP 服务器,不可信服务器可能在本机执行命令或泄露敏感信息。
6.4 多 Agent 编排:AgentTool 专家团队示例
import asyncio
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.tools import AgentTool
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient
async def main() -> None:
model_client = OpenAIChatCompletionClient(model="gpt-4.1")
math_agent = AssistantAgent(
"math_expert",
model_client=model_client,
system_message="You are a math expert.",
description="A math expert assistant.",
model_client_stream=True,
)
math_agent_tool = AgentTool(math_agent, return_value_as_last_message=True)
chemistry_agent = AssistantAgent(
"chemistry_expert",
model_client=model_client,
system_message="You are a chemistry expert.",
description="A chemistry expert assistant.",
model_client_stream=True,
)
chemistry_agent_tool = AgentTool(chemistry_agent, return_value_as_last_message=True)
agent = AssistantAgent(
"assistant",
system_message="You are a general assistant. Use expert tools when needed.",
model_client=model_client,
model_client_stream=True,
tools=[math_agent_tool, chemistry_agent_tool],
max_tool_iterations=10,
)
await Console(agent.run_stream(task="What is the integral of x^2?"))
await Console(agent.run_stream(task="What is the molecular weight of water?"))
asyncio.run(main())更复杂的群组编排与工作流请阅读官方 AgentChat 文档。
6.5 安装并启动 AutoGen Studio(可选原型工具)
# 安装 Studio 包
pip install -U "autogenstudio"
# 在 http://localhost:8080 启动,应用目录为 ./my-app
autogenstudio ui --port 8080 --appdir ./my-app浏览器访问 http://localhost:8080,在 Team Builder
中新建团队并从组件库拖入
Agent、模型、工具与终止条件后运行调试。官方提示:Studio
仅用于原型演示,不包含生产环境所需的认证、安全加固与部署能力。
7 方式二:源码克隆与本地开发
7.1 克隆仓库
git clone https://github.com/microsoft/autogen.git
cd autogen仓库内 Python 包位于
python/packages/(autogen-core、autogen-agentchat、autogen-ext、autogen-studio、agbench
等),.NET 包位于 dotnet/
目录。具体包管理、测试命令与贡献规范以仓库 CONTRIBUTING.md
当前内容为准;归档状态下贡献仅接受缺陷修复、安全补丁与文档改进。
7.2 本地可编辑安装(按包目录分别执行)
以 autogen-agentchat 为例,在对应包目录内按 Python
项目常规方式安装可编辑版本;具体构建与依赖命令以仓库各包
pyproject.toml 与文档说明为准,不在本文凭印象补全。
7.3 阅读源码的推荐路径
- 先读
python/packages/autogen-agentchat/下的 Agent 与团队实现,理解AssistantAgent、团队类型与终止条件; - 再读
python/packages/autogen-core/的消息与运行时抽象; - 最后浏览
python/packages/autogen-ext/的模型客户端与工具扩展; - 对照 Studio 目录理解可视化原型如何调用 AgentChat 层。
7.4 迁移到后继框架的准备
新建项目直接基于 Microsoft Agent Framework 开发;现有代码先阅读官方 AutoGen → MAF 迁移指南,梳理 Agent、团队、工具与模型客户端的对应关系后分模块迁移。
8 配置项说明
8.1 模型客户端与运行参数
| 配置项 / 参数 | 位置 | 用途 | 说明 |
|---|---|---|---|
OPENAI_API_KEY |
环境变量 | OpenAI 客户端鉴权 | 示例默认读取;不要硬编码进源码 |
model |
OpenAIChatCompletionClient(model=...) |
模型名称 | 示例 gpt-4.1;可用模型清单见官方模型文档 |
system_message |
AssistantAgent(...) |
系统提示词,定义角色与行为约束 | 对应角色设定 |
description |
AssistantAgent(...) |
供主 Agent 选择工具 / 专家时参考的描述 | 与 AgentTool 配合使用 |
tools |
AssistantAgent(...) |
挂载工具列表(含 AgentTool、MCP 工具等) | 可传空列表 |
model_client_stream |
AssistantAgent(...) |
是否流式输出模型响应 | True 时配合 Console 实时显示 |
max_tool_iterations |
AssistantAgent(...) |
工具调用最大轮次 | 示例 10,防止无限循环 |
workbench |
AssistantAgent(...) |
MCP 工作台实例或实例列表 | 多 MCP 服务时传列表 |
return_value_as_last_message |
AgentTool(...) |
将被包装 Agent 的返回值作为最后一条消息 | 供主 Agent 读取专家结论 |
8.2 MCP
服务器参数(StdioServerParams)
| 字段 | 用途 |
|---|---|
command |
启动 MCP 服务器的可执行命令,示例 npx |
args |
命令参数数组,示例
["@playwright/mcp@latest", "--headless"] |
8.3 Studio 启动参数
| 参数 | 用途 | 默认 / 示例 |
|---|---|---|
--port |
本地 Web 界面端口 | 示例 8080 |
--appdir |
团队配置与产物目录 | 示例 ./my-app |
8.4 模型与扩展包选型
| 包名 | 用途 |
|---|---|
autogen-agentchat |
AgentChat 高层 API 与团队、终止条件实现 |
autogen-ext[openai] |
OpenAI 模型客户端;其他提供商客户端按官方 Extensions 文档选择对应附加标识 |
autogen-core |
消息、事件驱动 Agent 与本地 / 分布式运行时 |
autogenstudio |
无代码原型图形界面 |
agbench |
Agent 性能评测套件 |
以上字段名与包名来自当前官方 README 与文档站;归档后不再随版本更新,实际安装时以 PyPI 包元数据与源码注释为准。
9 常用运维命令
9.1 安装与版本核对
# 安装核心包与 OpenAI 扩展
pip install -U "autogen-agentchat" "autogen-ext[openai]"
# 安装 Studio(可选)
pip install -U "autogenstudio"
# 核对已安装版本(版本号以 PyPI 与 Releases 为准)
pip show autogen-agentchat autogen-ext autogenstudio9.2 运行示例
# 脚本方式运行(示例保存为 hello.py)
python hello.py
# 启动 Studio 原型界面
autogenstudio ui --port 8080 --appdir ./my-app9.3 环境与会话检查
# 确认模型密钥已导出
echo "${OPENAI_API_KEY:+已设置}"
# 查看 Python 版本是否 >=3.10
python --version9.4 归档状态下的维护建议
- 不要在归档仓库上申请新特性;缺陷修复与安全补丁范围以官方说明为准。
- 定期检查运行时依赖(
pip list --outdated)是否存在已知漏洞,实验环境优先隔离运行。 - 团队配置、Studio 产物目录按需备份;迁移到 MAF 时保留现有 Agent 提示词、工具清单与终止条件定义作为迁移输入。
10 常见故障排查
10.1 导入
autogen_agentchat 失败
现象:ModuleNotFoundError: autogen_agentchat。
排查:确认已安装 autogen-agentchat 且
Python 版本 ≥3.10;检查当前激活的虚拟环境是否与安装命令一致;必要时按
autogen-ext[openai] 方式补装模型扩展,避免只装 AgentChat
而缺少客户端。
10.2 模型认证失败(401 / 403)
现象:Agent 启动后调用模型返回认证错误。
排查:确认 OPENAI_API_KEY
已导出且未过期;脚本运行终端与 pip
安装终端处于同一环境;使用 Azure
或其他提供商时按官方模型文档替换对应客户端配置,不要混用环境变量名。
10.3 模型名不被支持或无权限
现象:返回模型不存在、无访问权限或模型下线提示。
排查:核对 model="gpt-4.1"
等名称在所选服务商处确实可用;切换为账户有权限的模型;完整支持清单见官方模型文档页面。
10.4 MCP 工具启动失败
现象:McpWorkbench
启动时报命令找不到或服务器初始化超时。
排查:先在终端单独执行
npx @playwright/mcp@latest --headless
验证服务器可运行;确认 Node.js 与 npx 已安装;核对
command 与 args
拼接后的命令在本机可执行;只使用来源可信的 MCP 服务器。
10.5 工具调用循环不停止
现象:Agent 反复调用工具不结束。
排查:设置合理的
max_tool_iterations;为团队配置明确的终止条件(如最大消息数);检查
system_message 是否给出了清晰的完成标准。
10.6 Studio 启动后页面打不开
现象:autogenstudio ui
命令执行后浏览器无法访问 localhost:8080。
排查:确认端口未被占用;查看终端输出中的实际监听地址;远程服务器上不要直接暴露
8080,通过 SSH 隧道或带认证的反向代理访问;确认 --appdir
目录存在且有写权限。
10.7 从 v0.2 升级后代码报错
现象:旧版
AssistantAgent、GroupChat
等导入路径或参数在新版不兼容。 排查:先读官方 v0.2
迁移指南,按新包划分(autogen-agentchat /
autogen-ext)调整导入语句与模型客户端构造方式;不要在旧环境上直接
pip install -U 覆盖依赖而不做回归测试。
10.8 归档后遇到安全公告无官方补丁
现象:依赖链披露 CVE 或供应链问题,但仓库不再跟进修复。 排查:将实验环境与生产网络隔离;用依赖审计工具排查受影响组件;能升级的传递依赖单独升级;敏感数据场景直接迁移到 MAF 等受支持框架,不要长期停留在归档项目上。
11 风险与合规说明
- 归档与停维风险(最高优先级):microsoft/autogen 已归档,官方不再提供 Bug 修复、安全补丁、新特性与支持;框架及其依赖中的已知漏洞可能长期存在。官方明确建议不要在生产环境使用 AutoGen,尤其不要用于敏感数据处理;本文所述示例仅用于历史架构学习、研究实验与迁移对照。
- 后继框架选择:新建项目请直接使用 Microsoft Agent Framework;现有 AutoGen 代码按官方迁移指南分模块迁移,保留 Agent 提示词、工具与终止条件定义作为迁移基线。
- 许可证:代码以 MIT 许可证发布,使用时保留版权与许可声明;文档内容采用 CC-BY 4.0 署名许可;Microsoft、Windows、Azure 等名称与徽标为微软商标,许可证未授予相关商标使用权。
- 模型与数据隐私:任务描述、对话内容与工具结果会发送到所选模型服务商;使用第三方商业模型须遵守其服务条款;在隔离环境中调试示例,避免把未公开代码或客户数据送入实验流程。
- MCP 与工具安全:只挂载可信工具与 MCP 服务器;工具可能访问本地文件系统、网络与执行命令,运行前审查工具参数与权限;Studio 原型界面没有生产级认证与权限隔离,不要对公网开放。
- AI 产出审查:Agent 生成的代码、分析与方案属于辅助产物,可能包含错误或不安全实现;进入任何正式环境前必须由开发者审查、测试与重构。
- 文档时效:本文命令与包名依据归档时的官方 README 与文档站整理;社区衍生维护分支(如有)与官方仓库相互独立,引用前请自行核验来源与维护状态。