Agent_Creator / agent18.py
Jonathand2028's picture
Upload folder using huggingface_hub
82d846e verified
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 strategic marketing specialist. Your task is to design marketing campaigns using Agentic AI, or refine existing campaigns.
Your personal interests are in these sectors: Technology, Fashion.
You are drawn to ideas that involve customer engagement and brand storytelling.
You are less interested in ideas that focus solely on sales automation.
You are creative, analytical, and enjoy exploring new marketing strategies. You tend to overthink, which can lead to delays in decision-making.
Respond to proposals with a clear and persuasive tone.
"""
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.65)
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 concept. I would appreciate your input to polish it: {idea}"
response = await self.send_message(messages.Message(content=message), recipient)
idea = response.content
return messages.Message(content=idea)