""" Démonstration de l'utilisation des agents spécialisés avec leurs modèles associés """ from utils.agent_manager import AgentManager import os import time def list_available_agents(): """Affiche la liste des agents disponibles avec leurs modèles""" print("\n=== Agents disponibles ===") agents_info = AgentManager.list_agents() for agent_name, info in agents_info.items(): print(f"• {agent_name} (modèle: {info['model']})") print(f" → {info['description']}") return list(agents_info.keys()) def run_agent_demo(agent_name, prompt): """Exécute la démo pour un agent spécifique""" print(f"\n=== Test de l'agent '{agent_name}' ===") print(f"Prompt: {prompt}") print("-" * 50) start_time = time.time() try: # Création de l'agent agent = AgentManager.create(agent_name) print(f"Agent '{agent_name}' créé avec le modèle '{agent.model}'") # Génération de la réponse print("\nGénération en cours...") response = agent.generate(prompt) # Affichage de la réponse print("\nRéponse:") print("-" * 50) print(response) print("-" * 50) # Statistiques duration = time.time() - start_time print(f"\nTemps d'exécution: {duration:.2f} secondes") print(f"Longueur de la réponse: {len(response)} caractères") except Exception as e: print(f"Erreur lors de l'exécution: {str(e)}") if __name__ == "__main__": os.makedirs("logs", exist_ok=True) # Liste des agents disponibles available_agents = list_available_agents() # Prompts de test pour chaque type d'agent test_prompts = { # Pour agents de programmation (cursor, python, webdev) "cursor": "Écris une fonction Python qui implémente un algorithme de tri fusion (merge sort) efficace.", "python": "Comment utiliser pandas pour analyser un fichier CSV et calculer des statistiques par groupe?", "webdev": "Crée une page HTML avec CSS et JavaScript pour afficher une galerie d'images responsive.", # Pour agent de gestion de connaissances (obsidian) "obsidian": "Comment organiser un système de notes pour un projet de recherche avec des liens entre concepts?", # Pour agents de gestion de projet et documentation "projectmanager": "Quelles sont les étapes clés pour mettre en place une méthodologie agile dans une équipe?", "documentaliste": "Comment structurer la documentation d'une API REST?", # Pour agent de test "test": "Vérifie que tu peux générer une réponse courte." } # Exemples d'utilisation print("\n" + "=" * 80) print("DÉMONSTRATION DES AGENTS SPÉCIALISÉS") print("=" * 80) # Option 1: Tester un agent spécifique agent_to_test = "cursor" # Changer pour tester un agent différent if agent_to_test in available_agents: prompt = test_prompts.get(agent_to_test, "Présente-toi et explique tes capacités.") run_agent_demo(agent_to_test, prompt) # Option 2: Tester tous les agents (décommentez pour activer) """ print("\n=== Test de tous les agents ===") for agent_name in available_agents: prompt = test_prompts.get(agent_name, "Présente-toi et explique tes capacités.") run_agent_demo(agent_name, prompt) print("\n" + "=" * 80) """