in orchestration/strategies/multimodal_agent_strategy.py [0:0]
def custom_selector_func(messages):
"""
Selects the next agent based on the source of the last message.
Transition Rules:
user -> triage_agent
triage_agent (ToolCallSummaryMessage) -> multimodal_creator
multimodal_creator -> assistant
Other -> None (SelectorGroupChat will handle transition)
"""
last_msg = messages[-1]
logging.debug(f"[multimodal_agent_strategy] last message: {last_msg}")
agent_selection = {
"user": "triage_agent",
"triage_agent": "multimodal_creator" if isinstance(last_msg, ToolCallSummaryMessage) else None,
"multimodal_creator": "main_assistant",
"main_assistant": "chat_closure",
}
selected_agent = agent_selection.get(last_msg.source)
if selected_agent is None and last_msg.source == "triage_agent":
selected_agent = "chat_closure"
if selected_agent:
logging.debug(f"[multimodal_agent_strategy] selected {selected_agent} agent")
return selected_agent
logging.debug("[multimodal_agent_strategy] selected None")
return None