base.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. from __future__ import annotations
  2. from backend.events import event_logger
  3. from backend.memory.base import memory_store
  4. from backend.models import AgentProfile, AgentRequest, AgentResponse
  5. class BaseAgent:
  6. """Common platform contract for all agents."""
  7. def __init__(self, profile: AgentProfile) -> None:
  8. self.profile = profile
  9. @property
  10. def agent_id(self) -> str:
  11. return self.profile.agent_id
  12. def run(self, request: AgentRequest) -> AgentResponse:
  13. event_logger.emit("agent_started", agent_id=self.agent_id, task_id=request.task_id)
  14. output = self._run(request)
  15. memory_store.add(self.agent_id, f"input={request.input} output={output}")
  16. event = event_logger.emit(
  17. "agent_completed",
  18. agent_id=self.agent_id,
  19. task_id=request.task_id,
  20. payload={"output_preview": output[:200]},
  21. )
  22. return AgentResponse(agent_id=self.agent_id, output=output, events=[event])
  23. def _run(self, request: AgentRequest) -> str:
  24. raise NotImplementedError