多个 AI 怎么「开会不抢话」?AutoGen Group Chat 一文讲透
作者AI 技术笔记参考AutoGen 官方文档 · Group Chat阅读时间约 6 分钟开头说人话你有没有想过一个 AI 写文案一个 AI 画图一个 AI 当编辑——它们怎么配合才不会乱成一锅粥微软 AutoGen 给出的答案叫Group Chat群组聊天。说白了就是给多个 AI 建一个「工作群」大家看同一份聊天记录同一时间只允许一个人说话由一个「群管理员」决定下一条消息该谁发就像公司项目群里Writer 写稿、Editor 审稿、Illustrator 配图各干各的但信息是同步的。一、Group Chat 到底是啥1. 不是群聊吹水是分工协作Group Chat 不是让几个 AI 闲聊而是把一个大任务拆成小块交给不同角色的 AI 各做各的。官方文档举的例子很形象做一本儿童绘本。角色干什么Writer作者写故事Illustrator插画师根据描述生成插图Editor编辑审稿、提修改意见User用户最后拍板输入approve结束每个 AI 只专注自己的事但都在同一个「群」里能看到彼此说了什么。2. 核心规则一次只让一个人说话这点很重要。很多新手做多 Agent最容易踩的坑就是几个 AI 同时输出上下文全乱套。Group Chat 强制顺序发言——当前这位没说完下一位不能插嘴。谁来决定下一位GroupChatManager群聊管理员。二、群聊怎么运转四步循环用大白话描述整个流程就四步① 用户/外部 → 往群里丢一条任务消息 ② 管理员 → 点名「下一位该你了」 ③ 被点名的 AI → 发言消息同步给全群 ④ 重复 ②③直到任务完成对应 AutoGen 里的消息类型GroupChatMessage—— 发到公共主题的消息RequestToSpeak—— 管理员发给某位 AI 的「该你发言了」信号终止条件可以自定义。文档示例里很简单用户输入approve群聊结束。小设计细节官方示例里管理员会记住「上一个说话的是谁」尽量不让同一个人连续发言避免某个 AI 霸屏。三、重点来了三种「点名方式」该用哪个这是 Group Chat 的灵魂。管理员决定「下一位发言者」大致有三种策略。选错了要么浪费 Token要么协作效率低。策略一轮询Round-robin—— 按顺序轮流什么意思A → B → C → A → B → C……固定排队谁也别插队。适合什么场景流程固定顺序不会变典型例子写稿 → 审稿 → 改稿 → 再审循环几轮每个角色都要公平参与下一步该谁跟聊天内容无关优点简单、稳定、不花钱不用额外调 LLM 选人缺点不够灵活。比如插画师已经画完了轮询可能还轮到它空转。一句话总结流水线式协作选它。策略二LLM 选择器LLM Selector—— 让 AI 决定该谁说话什么意思管理员把「聊天记录 每个角色的职责描述」扔给大模型问一句「看了上面的对话接下来该谁上场」模型返回一个角色名管理员就那个人。官方文档里的 GroupChatManager 就是这么干的——读历史、看角色、选下一位。适合什么场景协作顺序取决于当前聊到哪了多角色、多阶段任务没法提前写死流程绘本例子最典型刚写完稿 → 该插画师图画好了 → 该编辑审优点灵活、懂上下文像有个真项目经理在调度缺点每次选人都要调一次 LLM多花钱、多耗时模型可能选错人需要兜底逻辑官方也说了Core API 那个示例偏教学生产环境建议用 AgentChat 的SelectorGroupChat一句话总结任务复杂、节奏不固定选它。策略三规则 / 自定义Rule-based—— 写死规则不用 AI 选人什么意思不用大模型猜直接写规则比如「作者发完言下一个必须是编辑。」或者自己写一个函数if 上一个是 Writer then 下一个是 Editor。适合什么场景流程你心里有数规则能写清楚要稳定、可复现不能接受 LLM 偶尔选错想省 Token选人这一步零成本正式上线的产品简单规则往往比 LLM 更靠谱文档原话优点可控、便宜、快缺点对话内容变化再大也跳不出你写的规则一句话总结流程有规律但不适合纯轮询选它。四、一张表帮你快速决策策略怎么选人花钱吗灵活性推荐场景轮询固定顺序 A→B→C否⭐反思/评审、固定流水线LLM 选择器大模型看上下文决定是⭐⭐⭐多角色动态协作、开放任务规则/自定义写死的 if-else 规则否⭐⭐「编辑紧跟作者」这类半固定流程怎么选记住这三句顺序固定、人人都要说话→ 轮询下一步取决于聊了什么→ LLM 选择器规则简单、要稳要省→ 自定义规则五、官方示例教会我们什么文档用 Core API 搭了一个「儿童绘本创作群」几个值得学的点① 角色要分清楚每个 Agent 有明确的system_message和descriptionLLM 选人才有依据。② 管理员是调度中心GroupChatManager不参与创作只负责收消息 → 选人 → 发RequestToSpeak→ 判断要不要结束。③ 人可以留在回路里UserAgent可以在关键节点介入比如最后输入approve才收工——这就是 Human-in-the-loop。④ 可以套娃文档提到 Group Chat 可以嵌套某个「参与者」本身也可以是另一个群聊。复杂系统可以分层设计。六、Core API vs AgentChat我该用哪个Core APIAgentChat API定位底层、灵活、自己搭开箱即用、封装好Group Chat自己写 Manager 订阅SelectorGroupChat/RoundRobinGroupChat适合谁要深度定制快速落地、做产品文档的建议很直白示例代码是起点不是成品。想省事直接用 AgentChat 的SelectorGroupChat。写在最后Group Chat 的本质用一句话概括多个 AI 共享上下文顺序协作由一个「调度员」决定下一位发言者。选调度方式没有银弹流水线 →轮询开放协作 →LLM 选择器规则清晰 →自定义规则先把流程想清楚再选策略比一上来就堆 Agent 重要得多。参考链接AutoGen Group Chat 官方文档SelectorGroupChat 高级 API如果这篇文章对你有帮助欢迎转发给正在搞多 Agent 的朋友。