Agentic-RAG-Chatbot / agents /base_agent.py
philip11's picture
Upload 17 files
be454f3 verified
Raw
History Blame Contribute Delete
1.2 kB
"""Base Agent Class for MCP Communication"""
from abc import ABC, abstractmethod
from typing import Dict, Any
from core.mcp import MCPMessage, message_bus
class BaseAgent(ABC):
"""Abstract base class for all agents"""
def __init__(self, name: str):
self.name = name
self.message_bus = message_bus
# Subscribe to message bus
self.message_bus.subscribe(self.name, self.handle_message)
@abstractmethod
async def handle_message(self, message: MCPMessage) -> None:
"""Handle incoming MCP messages"""
pass
async def send_message(self, receiver: str, msg_type, payload: Dict[str, Any],
trace_id: str = None) -> None:
"""Send message to another agent"""
message = self.message_bus.create_message(
sender=self.name,
receiver=receiver,
msg_type=msg_type,
payload=payload,
trace_id=trace_id
)
await self.message_bus.send_message(message)
def log(self, message: str, level: str = "INFO") -> None:
"""Simple logging mechanism"""
print(f"[{level}] {self.name}: {message}")