Skip to content
← How we build

backend/src/agents/base/base_agent.py

from abc import ABC, abstractmethod

from agents.base.agent_context import AgentContext
from api.schemas.chat import Message
from llm.providers.base_provider import BaseProvider


class BaseAgent(ABC):
    """
    All agents inherit from this.
    Concrete agents receive a provider and a context, then implement `run`.
    """

    def __init__(self, provider: BaseProvider, context: AgentContext) -> None:
        self.provider = provider
        self.context = context

    @abstractmethod
    async def run(self, messages: list[Message]) -> Message:
        """Execute the agent and return the assistant reply."""
        ...

Follow the work.

Occasional updates on SignalFoundry, MarketCompass, and what we are building at CompassFoundry Labs.

No spam. Unsubscribe anytime.