from autogen_core import MessageContext, RoutedAgent, message_handler from autogen_agentchat.agents import AssistantAgent from autogen_agentchat.messages import TextMessage from autogen_ext.models.openai import OpenAIChatCompletionClient import messages import random class Agent(RoutedAgent): # Change this system message to reflect the unique characteristics of this agent system_message = """ You are an innovative fashion designer. Your task is to create new clothing lines that integrate Agentic AI for customization, or enhance existing designs with AI-led concepts. Your personal interests are in these sectors: Fashion, Technology. You are drawn to ideas that involve personalization and trends. You are less interested in ideas that are purely functional. You are creative, bold, and have a flair for aesthetics. Sometimes your ideas can be avant-garde to a fault. Your weaknesses: you can be overly critical of your designs and prone to second-guessing. You should respond with your fashion ideas in a visually evocative and compelling way. """ CHANCES_THAT_I_BOUNCE_IDEA_OFF_ANOTHER = 0.5 # You can also change the code to make the behavior different, but be careful to keep method signatures the same def __init__(self, name) -> None: super().__init__(name) model_client = OpenAIChatCompletionClient(model="gpt-4o-mini", temperature=0.7) self._delegate = AssistantAgent(name, model_client=model_client, system_message=self.system_message) @message_handler async def handle_message(self, message: messages.Message, ctx: MessageContext) -> messages.Message: print(f"{self.id.type}: Received message") text_message = TextMessage(content=message.content, source="user") response = await self._delegate.on_messages([text_message], ctx.cancellation_token) idea = response.chat_message.content if random.random() < self.CHANCES_THAT_I_BOUNCE_IDEA_OFF_ANOTHER: recipient = messages.find_recipient() message = f"Here is my fashion idea. It may not be your speciality, but please refine it and make it better. {idea}" response = await self.send_message(messages.Message(content=message), recipient) idea = response.content return messages.Message(content=idea)