a_initiate_group_chat - AG2

a_initiate_group_chat

autogen.agentchat.a_initiate_group_chat async #

a_initiate_group_chat(pattern, messages, max_rounds=20)

Initialize and run a group chat using a pattern for configuration, asynchronously.

PARAMETER DESCRIPTION
pattern Pattern object that encapsulates the chat configuration.
TYPE: Pattern
messages Initial message(s).
TYPE: Union[list[dict[str, Any]], str]
max_rounds Maximum number of conversation rounds.
TYPE: int DEFAULT: 20
RETURNS DESCRIPTION
ChatResult Conversations chat history.
TYPE: ChatResult
ContextVariables Updated Context variables.
TYPE: ContextVariables
Agent "ConversableAgent": Last speaker.

Source code in autogen/agentchat/group/multi_agent_chat.py

<br> 92<br> 93<br> 94<br> 95<br> 96<br> 97<br> 98<br> 99<br>100<br>101<br>102<br>103<br>104<br>105<br>106<br>107<br>108<br>109<br>110<br>111<br>112<br>113<br>114<br>115<br>116<br>117<br>118<br>119<br>120<br>121<br>122<br>123<br>124<br>125<br>126<br>127<br>128<br>129<br>130<br>131<br>132<br>133<br>134<br>135<br>136<br>137<br>138<br>139<br>140<br>141<br>142<br>143<br>144<br>145<br>146<br>147<br>148<br>149<br>150<br>151<br> <br>@export_module("autogen.agentchat")<br>async def a_initiate_group_chat(<br> pattern: "Pattern",<br> messages: Union[list[dict[str, Any]], str],<br> max_rounds: int = 20,<br>) -> tuple[ChatResult, ContextVariables, "Agent"]:<br> """Initialize and run a group chat using a pattern for configuration, asynchronously.<br> Args:<br> pattern: Pattern object that encapsulates the chat configuration.<br> messages: Initial message(s).<br> max_rounds: Maximum number of conversation rounds.<br> Returns:<br> ChatResult: Conversations chat history.<br> ContextVariables: Updated Context variables.<br> "ConversableAgent": Last speaker.<br> """<br> # Let the pattern prepare the group chat and all its components<br> # Only passing the necessary parameters that aren't already in the pattern<br> (<br> _, # agents,<br> _, # wrapped_agents,<br> _, # user_agent,<br> context_variables,<br> _, # initial_agent,<br> _, # group_after_work,<br> _, # tool_execution,<br> _, # groupchat,<br> manager,<br> processed_messages,<br> last_agent,<br> _, # group_agent_names,<br> _, # temp_user_list,<br> ) = pattern.prepare_group_chat(<br> max_rounds=max_rounds,<br> messages=messages,<br> )<br> # Start or resume the conversation<br> if len(processed_messages) > 1:<br> last_agent, last_message = await manager.a_resume(messages=processed_messages)<br> clear_history = False<br> else:<br> last_message = processed_messages[0]<br> clear_history = True<br> if last_agent is None:<br> raise ValueError("No agent selected to start the conversation")<br> chat_result = await last_agent.a_initiate_chat(<br> manager,<br> message=last_message, # type: ignore[arg-type]<br> clear_history=clear_history,<br> summary_method=pattern.summary_method,<br> )<br> cleanup_temp_user_messages(chat_result)<br> return chat_result, context_variables, manager.last_speaker<br>