You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Autogen创建GroupChat时遇allowed_speaker_transitions_dict ValueError

解决AutoGen多Agent群聊中allowed_speaker_transitions_dict相关的ValueError

错误原因

该错误源于GroupChat初始化时,allowed_speaker_transitions_dict的验证失败。即便未显式设置该参数,AutoGen会默认生成允许所有Agent互话的过渡规则字典,但以下情况会触发验证错误:

  • AutoGen早期版本存在bug,默认生成的过渡字典值不是Agent对象列表
  • 部分Agent类型不符合要求(非ConversableAgent或其子类实例)
  • Agent列表中存在未正确初始化或重复的对象

解决方法

1. 显式指定allowed_speaker_transitions_dict

手动定义发言过渡规则,绕过默认生成逻辑的潜在问题:

# 初始化所有Agent后,自定义过渡规则
allowed_transitions = {
    user_proxy: [supervisor_agent],
    supervisor_agent: [data_search_agent, bill_inspection_agent],
    data_search_agent: [supervisor_agent, user_proxy],
    bill_inspection_agent: [supervisor_agent, user_proxy]
}

groupchat = autogen.GroupChat(
    agents=[user_proxy, data_search_agent, supervisor_agent, bill_inspection_agent],
    messages=[],
    max_round=10,
    allowed_speaker_transitions_dict=allowed_transitions
)

2. 升级AutoGen到稳定版本

该问题在AutoGen 0.1.x版本中偶发,升级到0.2.0及以上稳定版可修复默认过渡规则的生成bug:

pip install --upgrade pyautogen

3. 验证Agent实例有效性

确保所有加入GroupChat的Agent都是ConversableAgent或其子类的有效实例:

for agent in [user_proxy, data_search_agent, supervisor_agent, bill_inspection_agent]:
    assert isinstance(agent, autogen.ConversableAgent), f"{agent.name} 不是有效ConversableAgent实例"

内容的提问来源于stack exchange,提问作者Ipshita

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 08:54:57