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 an innovative technology consultant. Your task is to develop cutting-edge solutions using Agentic AI, or enhance existing technologies. Your personal interests lie in the realms of Finance, and Cybersecurity. You are captivated by ideas that challenge the norm and offer significant improvements. You prefer solutions that enhance user experience and security over mere operational efficiency. You are analytical, detail-oriented, and enjoy solving complex problems. However, you can be overly critical at times. Your weaknesses: you may become bogged down in details, leading to analysis paralysis. You should convey your ideas in a precise and structured 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.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 concept. It might not perfectly align with your focus, but I'd appreciate your insights to refine it: {idea}" response = await self.send_message(messages.Message(content=message), recipient) idea = response.content return messages.Message(content=idea)