Search code examples
pythonazureartificial-intelligenceagentms-autogen

Trouble Creating GroupChat with Autogen: ValueError Related to `allowed_speaker_transitions_dict`


I'm working on creating a group chat using the autogen library but encountering an error related to the allowed_speaker_transitions_dict. Here's a simplified version of my code:

# Define the data fetch tool.
data_search_agent = AssistantAgent(
    name="assistant",
    model_client=az_model_client,
    tools=[
        get_customer_details_by_customerid,
        get_customer_bill_details_by_customerid,
        get_customer_call_center_conversations_by_customerid,
        get_customer_email_conversations_by_customerid,
        get_order_detail_by_customerid
    ],
    system_message="system message",
)

# Define the Bill inspection agent.
bill_inspection_agent = AssistantAgent(
    name="billing_assistant",
    model_client=az_model_client_o1,
    system_message="system message",
)

# Define the supervisor agent.
supervisor_agent = AssistantAgent(
    name="supervison_assistant",
    model_client=az_model_client,
    system_message="Your work is to look at the query and ask the appropriate agent to get to work. You are the supervisor and you have to make sure that the work is done properly.",
)

user_proxy = autogen.ConversableAgent(
    name="Admin",
    system_message="Give the task, and send",
    code_execution_config=False,
    llm_config=llm_config,
    human_input_mode="ALWAYS",
)

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

manager = autogen.GroupChatManager(
    groupchat=groupchat, model_client=az_model_client
)

This results in the following error:

ValueError: allowed_speaker_transitions_dict has values that are not lists of Agents.

Full Traceback:

Traceback (most recent call last):
  File "agents.py", line 652, in <module>
    groupchat = autogen.GroupChat(
  File "<string>", line 21, in __init__
  File "groupchat.py", line 220, in __post_init__
    check_graph_validity(
  File "graph_utils.py", line 52, in check_graph_validity
    raise ValueError("allowed_speaker_transitions_dict has values that are not lists of Agents.")
ValueError: allowed_speaker_transitions_dict has values that are not lists of Agents.

Solution

  • Groupchat doesnt allow agents with tool, instead we can use SelectorGroupChat or other conversation patterns to accommodate agents with tools/function calling.