| 12345678910111213141516171819202122232425262728293031323334 |
- from __future__ import annotations
- from typing import Dict, Iterable, List
- from backend.agents.base import BaseAgent
- from backend.agents.profiles import default_profiles
- from backend.agents.adapters.deep_research import DeepResearchAdapter
- from backend.agents.adapters.rss_digest import RSSDigestAdapter
- from backend.models import AgentProfile
- class AgentRegistry:
- def __init__(self) -> None:
- self._agents: Dict[str, BaseAgent] = {}
- def register(self, agent: BaseAgent) -> None:
- self._agents[agent.agent_id] = agent
- def get(self, agent_id: str) -> BaseAgent:
- return self._agents[agent_id]
- def list_profiles(self) -> List[AgentProfile]:
- return [agent.profile for agent in self._agents.values()]
- def ids(self) -> Iterable[str]:
- return self._agents.keys()
- def build_default_registry() -> AgentRegistry:
- registry = AgentRegistry()
- profiles = {profile.agent_id: profile for profile in default_profiles()}
- registry.register(DeepResearchAdapter(profiles["deep_research"]))
- registry.register(RSSDigestAdapter(profiles["rss_digest"]))
- return registry
|