Autonomiser les agents d'IA vraiment autonomes grâce à l'apprentissage par le renforcement évolutif adversaire
Site web
Livre blanc
Papier technicien
Docs
Télégramme
Twitter / x
Aperçu
Caractéristiques
Commencer
Installation
Composants
Boucle évolutive
Procédure à pas détaillée
Licence
Contributif
Citation
Evolverl est un cadre révolutionnaire qui permet aux agents de l'IA de s'améliorer par des mécanismes évolutifs et adversaires. Contrairement aux approches traditionnelles qui reposent fortement sur l'ingénierie rapide manuelle, Evolverl permet aux agents de générer systématiquement, tester et affiner leurs propres invites et configurations, de combler l'écart entre l'autonomie théorique et l'auto-réparation réelle.
Dans l'économie émergente des agents d'IA, beaucoup envisagent un avenir où les agents se déroulent de manière autonome avec un minimum de surveillance humaine. Cependant, si les humains doivent constamment mettre à jour les invites d'IA à gérer de nouvelles tâches ou des cas de bord, les agents ne sont pas vraiment souverains. Evolverl résout cela en permettant à l'auto-amélioration continue à travers:
Évolution autonome : les agents détectent les lacunes et mettent à jour leurs propres invites
Test de contradiction : validation robuste par rapport aux scénarios difficiles
Sélection basée sur les performances : émergence naturelle de configurations optimales
Adaptation continue : réponse en temps réel aux conditions changeantes
Optimisation évolutive : évoluer les invites et les comportements à l'aide d'algorithmes génétiques
Domaine agnostique : spécialisation pour tout domaine
Évaluation robuste : jugement complet et évaluation
Test contradictoire : générer des scénarios difficiles pour assurer la robustesse
Gestion de l'État : Économisez et chargez des modèles évolués et leurs États
Prise en charge du modèle multiple : utilisez le GPT d'Openai ou le Claude d'Anthropic, ou exécutez Llama localement (à venir bientôt)
Boucle d'auto-amélioration : évolution continue sans intervention humaine
# Basic InstallationPip Installer evolverl # installer avec toutes les dépendances, installer evolverl [tout]
Depuis evolverl.evolution Import Evolution, evolutionconfigfrom evolverl.llm import llmconfigfrom evolverl.agent d'important agent, agentconfig # configure llm backendllm_config = llmconfig (model_name = "gpt-4", modèle_type = "openai", # ou "hanthropic" openai_api_key = "votre -api-key "# ou anthropic_api_key pour claude) # Créer un agent avec un système de système Problèmes complexes étape par étape et affichez clairement votre travail. "" ") # Configurer l'évolution processConfig = evolutionConfig (Population_size = 5, générations = 10, mutation_rate = 0,1, crossover_rate = 0,8, output_dir =" Agents ") # Créer Evolution InstructionEvolution = Evolution (config, expériment_id = "math_solver") # run evolution processAwait evolution.evolve (domain = "mathématiques", description = "résoudre des problèmes mathématiques complexes avec des explications détaillées")
Vous pouvez également utiliser des agents directement sans évolution:
# Créer et configurer agentAgent = agent (agentConfig (llm_config = llm_config)) agent.set_default_prompt ("vous êtes un assistant AI utile ...") # Envoyer des messagesResponse = Await Agent.Send_Message ("Qu'est-ce que 2 + 2?") (réponse)
train_agent.py
est une CLI de fichiers unique qui exécute le processus d'évolution. Assurez-vous d'abord de mettre à jour le fichier de configuration default_config.json
, ainsi que de conserver votre clé API OpenAI ou anthropique comme variables d'environnement ou dans le .env
.
# Utilisation de base avec Openaipython Train_agent.py - Domain Math --Description "Solve Math Problems" -v # Utilisez Claudepython Train_agent.prider d'Anthropic --provider Anthropic - Domain Math - Description "Solve Math Problems" Train_agent.py - Domain-File Domains / Math_solver.json # DIRECTORY DE SORTIE PUSTUMATE Train_agent.py - Domain Math - Description "..." -vvv
Les exemples de domaine actuels sont en langage naturel. Vous pouvez ajouter plus de détails lors de la création de vos propres cas d'utilisation. De plus, vous pouvez inclure tous les exemples qui, selon vous, sont importants pour l'agent.
agents/ ├── {experiment_id}_gen0.json # Best agent from generation 0 ├── {experiment_id}_gen0_full.json # All variants and scores from generation 0 ├── {experiment_id}_gen1.json # Best agent from generation 1 ├── {experiment_id}_gen1_full.json # All variants and scores from generation 1 └── {experiment_id}_best.json # Best agent overall
L'individu .json
(pas le *_full.json
) contient l' AgentConfig
pour le meilleur agent de la génération ou de l'ensemble. Vous pouvez lancer un agent directement à partir de son fichier AgentConfig
en appelant agent.load_config(PATH_TO_CONFIG_FILE)
. Assurez-vous de mettre à jour la touche API car elle ne sera pas stockée dans le fichier AgentConfig
.
{"Population_size": 5, "Generations": 10, "mutation_rate": 0.1, "Crossover_Rate": 0.8, "MIN_SCORE_THRESHOLD": 0.7, "Tournoi_size": 2, "Max_Interaction_Attempts": 5, "Outpied_Dir": "Agents" , "llm_config": {"Model_name": "gpt-4o-mini", "modèle_type": "openai", "max_tokens": 500, "température": 0,7} }
agents/ ├── {experiment_id}_gen0.json # Best agent from generation 0 ├── {experiment_id}_gen0_full.json # All variants from generation 0 ├── {experiment_id}_gen1.json # Best agent from generation 1 ├── {experiment_id}_gen1_full.json # All variants from generation 1 └── {experiment_id}_best.json # Best agent overall
Le processus d'évolution montre des progrès en temps réel avec les barres de progression imbriquées:
Generation 2/10: 100%|██████████| 6/6 [00:15<00:00, best_score=0875, avg_score=0834] Overall Progress: 15%|██ | 12/80 [00:30<02:45, generation=2/10, best_overall=0875]
Cela peut prendre un certain temps en fonction du nombre de générations et de la taille de la population par génération.
Licence MIT - Voir le fichier de licence pour plus de détails
Fourchez le référentiel
Créer une branche de fonctionnalité
Engager vos modifications
Pousser à la branche
Créer une demande de traction
@software {evolverl2024, title = {evolverl: evolutionary renforcement apprenti