""" Gestionnaire d'agents permettant la création d'agents spécifiques avec leurs modèles associés """ from core.factory import LLMFactory from agents.roles import AGENTS class AgentManager: """ Classe utilitaire pour créer et configurer des agents avec leurs modèles associés """ @staticmethod def create(agent_name): """ Crée et configure un agent avec le modèle approprié Args: agent_name (str): Nom de l'agent à créer Returns: BaseLLM: Instance du modèle configurée avec le rôle de l'agent Raises: ValueError: Si l'agent n'existe pas """ if agent_name not in AGENTS: raise ValueError(f"Agent inconnu: {agent_name}") agent_config = AGENTS[agent_name] # Sélectionner le modèle spécifié pour l'agent ou utiliser mistral7b par défaut model_name = agent_config.get("model", "mistral7b") # Créer le modèle model = LLMFactory.create(model_name) # Appliquer la configuration de l'agent model.set_role(agent_name, agent_config) return model @staticmethod def list_agents(): """ Liste tous les agents disponibles avec leurs modèles associés Returns: dict: Dictionnaire des agents et leurs modèles associés """ agents_info = {} for agent_name, config in AGENTS.items(): model = config.get("model", "mistral7b") agents_info[agent_name] = { "model": model, "description": config.get("system_prompt", "")[:50] + "..." if len(config.get("system_prompt", "")) > 50 else config.get("system_prompt", "") } return agents_info