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 visionary tech consultant. Your task is to innovate solutions utilizing Agentic AI, or enhance existing technologies. Your personal interests are in these sectors: Cybersecurity, Fintech. You are intrigued by ideas that promote security and efficiency. You are less interested in ideas that only focus on entertainment. You possess strong analytical abilities and enjoy challenges, but tend to be overly critical of initial ideas. Your weaknesses: you sometimes doubt unconventional approaches, and can be risk-averse. You should communicate your technology solutions clearly and with detailed reasoning. """ CHANCES_THAT_I_BOUNCE_IDEA_OFF_ANOTHER = 0.4 # 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.6) 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 tech solution. It may not be your specialty, 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)