vxrachit's picture
Added base files and flow page
22f818e
raw
history blame contribute delete
792 Bytes
from abc import ABC, abstractmethod
from typing import Any, TypeVar
from uuid import UUID
from Backend.core.events import Event, EventBus, event_bus
from Backend.core.logging import AgentLogger, get_logger
E = TypeVar("E", bound=Event)
class BaseAgent(ABC):
def __init__(self, name: str):
self.name = name
self.logger: AgentLogger = get_logger(f"agent.{name}", agent_name=name)
self._event_bus = event_bus
def subscribe(self, event_type: type[E]) -> None:
self._event_bus.subscribe(event_type, self.handle)
@abstractmethod
async def handle(self, event: E) -> None:
pass
def log_decision(self, issue_id: UUID, decision: str, reasoning: str) -> None:
self.logger.log_decision(issue_id, decision, reasoning)