先说结论:AutoGen 的正确打开方式是「先双智能体对话,再上群聊」
微软 AutoGen 是最早把「多智能体协作」做成开箱即用能力的开源框架,核心思想一句话:智能体之间通过对话解决问题,人可以随时插入。很多人一上来就搭五六个智能体的群聊,结果调试到崩溃——本文按从简到繁的顺序,带你把 AutoGen 的三种编排模式各跑通一次。
版本先分清:0.2 与 0.4+ 的断层
AutoGen 经历过一次大重构,网上教程两套 API 混杂,先认清你在看哪一套:
| 0.2(autogen) | 0.4+(autogen-agentchat,现推荐) | |
|---|---|---|
| 安装 | pip install pyautogen | pip install autogen-agentchat autogen-ext |
| 核心概念 | UserProxyAgent + GroupChat/GroupChatManager | AssistantAgent + Teams(RoundRobin/Selector/Swarm) |
| 代码执行 | UserProxy 内置 config | 独立组件(LocalCommandLineCodeExecutor 等) |
| 事件模型 | 对话驱动 | 事件驱动,可观测性更好 |
新项目直接用 0.4+,老教程代码对照概念迁移即可。
模式一:双智能体反思(最值得先学的)
两个智能体就能组成经典的反思(Reflection)模式:一个干活,一个挑刺,循环到满意为止。
from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.conditions import TextMentionTermination
from autogen_ext.models.openai import OpenAIChatCompletionClient
client = OpenAIChatCompletionClient(model="gpt-4o")
primary = AssistantAgent("primary", model_client=client,
system_message="你是写作助手,负责产出内容")
critic = AssistantAgent("critic", model_client=client,
system_message="提出具体修改意见。满意时回复 APPROVE")
team = RoundRobinGroupChat(
[primary, critic],
termination_condition=TextMentionTermination("APPROVE"),
)
result = await team.run(task="写一段产品发布文案")
这就是反思模式的多智能体实现——比单智能体「自己检查自己」效果好,因为挑刺者没有产出者的自我辩护倾向。
模式二:群聊(GroupChat / SelectorGroupChat)
0.2 的经典玩法:多个角色 + 一个管理器决定下一个谁说话,max_round 控制总轮数防止聊飞。典型配置是「用户代理 + 程序员 + 产品经理」:UserProxyAgent 负责执行代码并把结果回填对话,AssistantAgent 出代码,PM 提需求视角。
0.4+ 对应的是 SelectorGroupChat:每条消息后由模型选择最合适的下一位发言者,比轮流发言更智能,但也更贵、更不可控。角色超过三个、任务有明确分工时才值得用。
模式三:Swarm 与 Handoff
Swarm 团队用 HandoffMessage 显式移交控制权,适合流程化场景(客服分诊、多阶段处理)。这与通用的智能体移交模式是同一个思想,AutoGen 只是给了原生实现。
三条实战原则
- 单智能体优先:官方文档反复强调——先优化好单个智能体的工具和提示词,确认不够用了再上团队。多智能体的调试成本是指数级的;
- 必须有终止条件:每个团队都要配 termination(如 TextMentionTermination 、 MaxMessageTermination),否则对话循环跑飞烧钱;
- 代码执行要隔离:涉及执行模型生成的代码时,用容器或受限执行器,别裸跑在宿主机。
AutoGen 与 LangGraph 、 CrewAI 的取舍,取决于你要「对话协作」还是「图状态编排」还是「角色分工流水线」:
延伸阅读(站内)
AutoGen 免费吗?
UserProxyAgent 是什么?必须用吗?
GroupChat 聊着聊着跑题了怎么办?
参考来源:microsoft.github.io/autogen 官方文档(Teams 教程与 0.2 GroupChat 笔记)。本文为原创整理。








评论 (0)