a_run_swarm - AG2

a_run_swarm

``autogen.a_run_swarmasync[

a_run_swarm(initial_agent, messages, agents, user_agent=None, swarm_manager_args=None, max_rounds=20, context_variables=None, after_work=TERMINATE, exclude_transit_message=True)

Source code in autogen/agentchat/contrib/swarm_agent.py

<br>1135<br>1136<br>1137<br>1138<br>1139<br>1140<br>1141<br>1142<br>1143<br>1144<br>1145<br>1146<br>1147<br>1148<br>1149<br>1150<br>1151<br>1152<br>1153<br>1154<br>1155<br>1156<br>1157<br>1158<br>1159<br>1160<br>1161<br>1162<br>1163<br>1164<br>1165<br>1166<br>1167<br>1168<br>1169<br>1170<br>1171<br>1172<br>1173<br>1174<br>1175<br>1176<br>1177<br>1178<br>1179<br>1180<br>1181<br>1182<br>1183<br>1184<br>1185<br>1186<br>1187<br>1188<br>1189<br> <br>@export_module("autogen")<br>async def a_run_swarm(<br> initial_agent: ConversableAgent,<br> messages: Union[list[dict[str, Any]], str],<br> agents: list[ConversableAgent],<br> user_agent: Optional[UserProxyAgent] = None,<br> swarm_manager_args: Optional[dict[str, Any]] = None,<br> max_rounds: int = 20,<br> context_variables: Optional[ContextVariables] = None,<br> after_work: Optional[<br> Union[<br> AfterWorkOption,<br> Callable[<br> [ConversableAgent, list[dict[str, Any]], GroupChat], Union[AfterWorkOption, ConversableAgent, str]<br> ],<br> ]<br> ] = AfterWorkOption.TERMINATE,<br> exclude_transit_message: bool = True,<br>) -> AsyncRunResponseProtocol:<br> iostream = AsyncThreadIOStream()<br> response = AsyncRunResponse(iostream, agents) # type: ignore[arg-type]<br> async def stream_run(<br> iostream: AsyncThreadIOStream = iostream,<br> response: AsyncRunResponse = response,<br> ) -> None:<br> with IOStream.set_default(iostream):<br> try:<br> chat_result, returned_context_variables, last_speaker = await a_initiate_swarm_chat(<br> initial_agent=initial_agent,<br> messages=messages,<br> agents=agents,<br> user_agent=user_agent,<br> swarm_manager_args=swarm_manager_args,<br> max_rounds=max_rounds,<br> context_variables=context_variables,<br> after_work=after_work,<br> exclude_transit_message=exclude_transit_message,<br> )<br> IOStream.get_default().send(<br> RunCompletionEvent( # type: ignore[call-arg]<br> history=chat_result.chat_history,<br> summary=chat_result.summary,<br> cost=chat_result.cost,<br> last_speaker=last_speaker.name,<br> context_variables=returned_context_variables,<br> )<br> )<br> except Exception as e:<br> response.iostream.send(ErrorEvent(error=e)) # type: ignore[call-arg]<br> asyncio.create_task(stream_run())<br> return response<br>