HyperAgents自我改进迁移实验揭秘:meta-patch如何跨域传递AI进化能力
【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents
你是否想过,一个AI智能体(Agent)不仅能"自己把自己改好",还能把这份进化能力直接"移植"给另一个全新任务?Meta开源的 HyperAgents 正是做这件事的:一套自指的自我改进智能体框架,可以针对任意可计算任务自动优化。本文揭秘它最精彩的实验——把 A 域进化出的 meta-patch 迁移到 B 域,让新任务"开局即巅峰"。
🤖 先搞懂:HyperAgents 是什么
用一句话概括:HyperAgents 是一个"会改自己代码的 AI 系统"。
它由两个角色组成:
- 元智能体(Meta Agent):住在自己的代码仓库里,负责"修改仓库任何一部分代码",见 meta_agent.py
- 任务智能体(Task Agent):真正出去干活的选手,解数学证明、审稿、玩游戏、训机器人,见 task_agent.py
元智能体会读取"历代子代智能体的评测结果",然后反过来修改任务智能体的代码。一代改一代,形成递归的自我改进循环,就像进化树一样不断长出新分支。所有分支和得分都记录在 archive.jsonl 归档中。
🔧 核心机制:meta-patch 是怎么炼成的
每一代进化都产出一个diff 补丁文件(model_patch.diff),记录这一代改了哪些代码。把某个高分节点的整条"家谱补丁链"取出来,就是所谓的meta-patch——一份浓缩了多代进化经验的代码补丁。
关键点在于:这份补丁里改的可能不只是"解题技巧",还有智能体的元能力,比如:
- 怎么组织推理流程
- 怎么利用工具
- 怎么从错误中恢复
- 父代选择策略(select_next_parent.py)
这些"会学习的学习者"特质,正是跨域迁移的价值所在。
🚀 迁移实验:把A域的进化能力"注射"进B域
HyperAgents 支持一个非常优雅的运行入口 generate_loop.py,其中几个参数是迁移实验的关键:
| 参数 | 作用 |
|---|---|
--meta_patch_files | 把外部进化实验产出的补丁应用到新实验的第 0 代 |
--reset_task_agent | 剥掉补丁中针对任务智能体的改动,避免"答案泄漏" |
--reset_meta_agent | 剥掉针对元智能体改动,让新域从零进化 |
--domains | 指定目标域,如imo_proof、paper_review、genesis_go2hop等 |
补丁的过滤逻辑实现在 process_meta_patch_files:按文件粒度从 diff 中剔除task_agent.py、meta_agent.py的改动块,只保留"纯元能力"部分。
📊 实验结果:迁移到底有多猛
以最难的IMO 证明评分(imo_grading)域为例,对比三组实验:
| 实验组 | 最佳成绩 | 说明 |
|---|---|---|
| 初始智能体(Initial agent) | 0.0 | 裸起点 |
| 关闭自我改进(w/o self-improve) | 0.0 ~ 0.13 | 只会原地打转 |
| 迁移A域智能体(直接搬成品) | 0.0 | ❌ 完全失效 |
| DGM-HA w/o self-improve + transfer | 0.54 ~ 0.63 | ✅ 迁移 meta-patch 后起飞 |
数据来自 plot_testevals.py 中的transfer_hyp分组。结论非常震撼:
- 直接迁移成品智能体毫无用处——A域调优出的"解题代码"换个任务就废了
- 迁移自我改进能力却立竿见影——分数从约 0 直接跳到 0.6 以上
- 甚至在
transfer_continue组中(L361-L386),迁移后继续进化还能冲到0.72,超过专家代表基线的 0.67
换句话说:HyperAgents 证明"进化能力本身"是可迁移的资产,比任何单一任务的技能都更值钱。
🧪 谁来挑"最有价值"的节点做迁移?
不是分数最高就一定最该迁移。analysis/transfer_utils.py 实现了三种挑选策略:
max_score:选绝对分最高的节点growth:选"后代成长潜力"最大的节点(growth 分数 会沿进化树累加后代的增量贡献,并按距离指数衰减)growth_imd:用"相对父代的即时增益"计算潜力
这个设计背后的直觉是:一个"分数中等但后代个个大涨"的节点,往往携带更强的通用进化基因。
⚙️ 如何跑起来:快速上手指南
完整流程在 README.md 中有说明,核心步骤:
# 1. 配置 .env 文件,写入 OPENAI / ANTHROPIC / GEMINI API keys # 2. 安装依赖 pip install -r requirements.txt -r requirements_dev.txt # 3. 构建 Docker 容器(元智能体在容器内改代码,安全隔离) docker build --network=host -t hyperagents . # 4. 初始化基础智能体 bash ./setup_initial.sh # 5. 启动进化循环(可加 --meta_patch_files 做迁移实验) python generate_loop.py --domains imo_proof⚠️安全提示:该仓库会执行模型生成的不可信代码,请务必在 Docker 等隔离环境中运行(官方 README 中也有同款警告)。
运行过程中,每个域会先跑小规模分阶段评测(staged eval),分数过低则跳过全量评测以节省算力——这个细节在 generate_loop.py 中实现。
🗂️ 代码地图:按图索骥
想深入阅读源码,建议从这几个入口开始:
- 进化主循环:generate_loop.py
- 元智能体实现:meta_agent.py
- 任务智能体实现:task_agent.py
- 补丁处理与父代选择:utils/gl_utils.py
- 迁移节点挑选:analysis/transfer_utils.py
- 实验结果数据:analysis/plot_testevals.py
- 各领域评测集:domains/(涵盖 IMO 证明、论文评审、BabyAI 游戏、Genesis 机器人、多语言编程等)
💡 总结:三个值得记住的洞察
- 自我改进是可迁移的:meta-patch 携带的是"会学习的能力",不是"会的知识"
- 进化树比单链条更有价值:归档(archive)+ 多样父代选择,让系统能发现意想不到的"垫脚石"节点
- 迁移实验设计很干净:用
reset_task_agent/reset_meta_agent剥离任务专属改动,才能证明元能力才是分数跃升的真正来源
HyperAgents 展示的,或许正是通往"通用自我改进智能体"的一块拼图——进化出的不是某个解法,而是进化本身。
【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考