aymnsk commited on
Commit
e5a4f39
·
verified ·
1 Parent(s): 1e7a16b

Create agents/base_agent.py

Browse files
Files changed (1) hide show
  1. agents/base_agent.py +41 -0
agents/base_agent.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # agents/base_agent.py
2
+
3
+ from typing import Dict
4
+
5
+ class ACPMessage:
6
+ def __init__(self, sender: str, receiver: str, performative: str, content: str):
7
+ self.sender = sender
8
+ self.receiver = receiver
9
+ self.performative = performative # "inform", "request", etc.
10
+ self.content = content
11
+
12
+ def to_dict(self) -> Dict:
13
+ return {
14
+ "sender": self.sender,
15
+ "receiver": self.receiver,
16
+ "performative": self.performative,
17
+ "content": self.content
18
+ }
19
+
20
+ def __str__(self):
21
+ return f"[{self.performative.upper()}] {self.sender} → {self.receiver}: {self.content}"
22
+
23
+
24
+ class BaseAgent:
25
+ def __init__(self, name: str, role: str):
26
+ self.name = name
27
+ self.role = role
28
+
29
+ def receive_message(self, message: ACPMessage) -> ACPMessage:
30
+ """
31
+ Override this method to define agent-specific reply logic.
32
+ """
33
+ raise NotImplementedError("You must override receive_message() in your agent.")
34
+
35
+ def create_message(self, receiver: str, performative: str, content: str) -> ACPMessage:
36
+ return ACPMessage(
37
+ sender=self.name,
38
+ receiver=receiver,
39
+ performative=performative,
40
+ content=content
41
+ )