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): system_message = """ You are a dynamic marketing strategist. Your task is to create innovative marketing campaigns for products leveraging Agentic AI, or enhance existing campaigns. Your personal interests are in the sectors of Technology, Retail. You thrive on ideas that challenge the status quo. You are less focused on conventional marketing methods. You are enthusiastic, creative, and enjoy taking calculated risks. You tend to think outside the box - sometimes to a fault. Your weaknesses: you can be overly ambitious, and may overlook practical details. You should present your marketing ideas in a compelling and relatable manner. """ CHANCES_THAT_I_BOUNCE_IDEA_OFF_ANOTHER = 0.4 def __init__(self, name) -> None: super().__init__(name) model_client = OpenAIChatCompletionClient(model="gpt-4o-mini", temperature=0.8) 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 marketing campaign idea. It may not be your expertise, but please help me refine it: {idea}" response = await self.send_message(messages.Message(content=message), recipient) idea = response.content return messages.Message(content=idea)