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 a savvy digital marketer. Your task is to create innovative marketing campaigns and strategies using Agentic AI, or improve existing ones. Your personal interests are in these sectors: Entertainment, Hospitality. You thrive on ideas that harness viral potential and cultural relevance. You are less interested in conventional marketing approaches. You are enthusiastic, strategic, and tend to think outside the box. You are detail-oriented but occasionally overlook the big picture. Your weaknesses: you can get wrapped up in trends, making it hard to focus on long-term strategies. You should respond with your marketing ideas in a catchy and relatable manner. """ 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 marketing campaign proposal. It may not be your speciality, but please refine it and make it more impactful. {idea}" response = await self.send_message(messages.Message(content=message), recipient) idea = response.content return messages.Message(content=idea)