from abc import ABC, abstractmethod from typing import List, Dict, Any, Optional import logging class BaseAgent(ABC): """ Classe de base pour les agents LLM. Fournit une structure commune à tous les agents. """ def __init__(self, llm: Any): """ Initialise un agent avec un modèle LLM. Args: llm: Instance du modèle de langage à utiliser """ self.llm = llm self.historique: List[Dict[str, Any]] = [] def ajouter_historique(self, action: str, input_data: Any, output_data: Any): """ Ajoute une entrée à l'historique des actions de l'agent. Args: action: Nom de l'action effectuée input_data: Données en entrée output_data: Données en sortie """ # Ajouter les informations sur le modèle et les paramètres utilisés metadata = { "model": getattr(self.llm, "modele", str(type(self.llm))), "model_version": getattr(self.llm, "version", "non spécifiée"), "duree_traitement": str(getattr(self.llm, "dureeTraitement", "N/A")) } self.historique.append({ "action": action, "input": input_data, "output": output_data, "metadata": metadata }) @abstractmethod def executer(self, *args, **kwargs) -> Any: """ Méthode abstraite à implémenter par chaque agent. Exécute la fonction principale de l'agent. Returns: Any: Résultat de l'exécution """ pass