通过对抗进化增强学习来赋予真正自主的AI代理
网站
白皮书
技术纸
文档
电报
Twitter/x
概述
特征
入门
安装
成分
进化循环
详细的演练
执照
贡献
引用
Evolverl是一个开创性的框架,它使AI代理能够通过进化和对抗机制自我爆发。与密切依赖手动及时工程的传统方法不同,Evolverl允许代理人系统地生成,测试和完善自己的提示和配置,从而弥合了理论自治与实际自我依赖之间的差距。
在新兴的AI代理商经济中,许多人设想了一个未来的代理商以最少的人类监督自动运行。但是,如果人类必须不断更新AI提示处理新任务或边缘案例,则代理人并不是真正的主权。 Evolverl通过通过以下方式实现持续的自我完善来解决这一问题:
自主进化:代理检测空白并更新自己的提示
对抗测试:针对具有挑战性的情况进行良好的验证
基于绩效的选择:最佳配置的自然出现
连续适应:对变化条件的实时响应
进化优化:使用遗传算法进化提示和行为
域名:任何域的专业化
强大的评估:全面的判断和评估
对抗测试:产生具有挑战性的方案以确保鲁棒性
国家管理:保存和加载发展的模型及其状态
多重模型支持:使用OpenAI的GPT或Anthropic的Claude,或在本地运行Llama(即将推出)
自我改善循环:无人干预的连续进化
#基本installationpip install evolverl#安装与所有依赖关系PIP install install evolverl [all]
来自evolverl.voltution导入进化,EvolutionConfigFrom Evolverl.llm import llmconfigfrom evolverl.agent导入代理,AgentConfig#configure llm backendllm_config = llmconfig = llmconfig(model_name =“ gpt-4” -api-key“#或claude的anthropic_api_key)#使用系统system agent_config = agentConfig(llm_config = llm_config = llm_config)agent = agent(agent_config)agent.set_default_prompt(”复杂的问题逐步逐步显示您的工作。”“”)#配置Evolution crocessConfig = EvolutionConfig(pesse_size = 5,Generations = 10,mutation_rate = 0.1,crossover_rate = 0.8,output_dir =“ adments”) (config,perveriment_id =“ math_solver”)#运行Evolution processawait Evolution.evolve(domain =“ Mathematics”,Description =“解决复杂的数学问题,使用详细说明”)
您也可以直接使用代理而无需进化:
#创建和配置agentAgent = agent(agentConfig(llm_config = llm_config))agent.set_default_prompt(“您是有用的AI助手... (回复)
train_agent.py
是一个运行演变过程的单个文件CLI。请确保首先更新配置文件default_config.json
,并将OpenAI或Anthropic API密钥保留为环境变量或.env
中。
# Basic usage with OpenAIpython train_agent.py --domain math --description "Solve math problems" -v# Use Anthropic's Claudepython train_agent.py --provider anthropic --domain math --description "Solve math problems"# Load domain from filepython train_agent.py--域文件域/MATH_SOLVER.JSON#自定义输出目录directorypypython train_agent.py--域数学-Description“ ...” - output-dir ./my_agents#增加词汇(最多-vvvvvv)python python python train_agent.py-域数学 - 描述“ ...” -vvv
当前领域的例子是自然语言。构建自己的用例时,您可以添加更多详细信息。此外,您可能会包括您认为对代理商知道的任何示例。
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
个体.json
(不是*_full.json
)包含AgentConfig
机构的代理或整体代理。您可以通过Calle agent.load_config(PATH_TO_CONFIG_FILE)
直接从其代理AgentConfig
文件启动代理。请确保更新API密钥,因为它不会存储在AgentConfig
文件中。
{“ pessove_size”:5,“世代”:10,“ mutation_rate”:0.1,“ Crossover_rate”:0.8,“ min_score_threshold”:0.7,“ tornament_size”:2,“ max_interaction_atteraction_Attempts” ,“ llm_config”:{“ model_name”:“ gpt-4o-mini”,“ model_type”:“ openai”,“ max_tokens”:500,“温度”: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
进化过程显示了嵌套进度条的实时进度:
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]
这可能需要一段时间,具体取决于每一代世代和人口规模。
麻省理工学院许可证 - 有关详细信息,请参见许可证文件
分叉存储库
创建功能分支
提交您的更改
推到分支机构
创建拉动请求
@software {evolverl2024,title = {evolverl:llms}的进化增强学习,作者= {thehandsomedev},eYAN = {2025},url = {https://www.evolverl.com/}}