ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

HyperAgents进化循环完全指南:generate_loop.py源码逐行深度解读

HyperAgents进化循环完全指南:generate_loop.py源码逐行深度解读 HyperAgents进化循环完全指南generate_loop.py源码逐行深度解读【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgentsHyperAgents 是一个自我参照、自我改进的智能体系统让 AI 智能体不断修改自己求解任务的代码像进化算法一样逐代变强。本文带你逐段解读进化循环的入口文件 generate_loop.py搞懂每一代智能体是如何生成→评估→存档→选亲代的是理解这套自我进化智能体架构最快的完整指南。 HyperAgents 进化循环是什么用一个比喻HyperAgents 把写代码的智能体本身当成可进化的基因。任务智能体task agent负责解具体任务如 task_agent.py元智能体meta agent负责修改整个代码库让它更强如 meta_agent.py循环引擎 generate_loop.py 驱动每一代拉一个 Docker 容器 → 应用历史补丁 → 跑元智能体 → 评估新智能体 → 存档 → 选亲代进入下一代。 核心文件与目录结构模块作用generate_loop.py进化循环主入口本文主角meta_agent.py元智能体修改代码库实现自我改进task_agent.py任务智能体执行具体任务utils/gl_utils.py存档、补丁、选亲代等核心工具函数utils/docker_utils.pyDocker 容器构建/清理/日志utils/domain_utils.py各领域数据集划分与评估子集domains/各领域实现游戏、机器人、IMO、论文评审等analysis/plot_progress.py绘制逐代进化进度图 快速上手三步跑起进化循环第 1 步获取代码并配置 API Keygit clone https://gitcode.com/gh_mirrors/hy/HyperAgents # 将 OPENAI_API_KEY / ANTHROPIC_API_KEY / GEMINI_API_KEY 写入 .env第 2 步安装依赖并构建 Docker 镜像参考 README.md安装 Python 3.12 虚拟环境pip install -r requirements.txt然后docker build --networkhost -t hyperagents .镜像定义见 Dockerfile。第 3 步初始化智能体并启动循环bash ./setup_initial.sh # 评测初始智能体见 setup_initial.sh python generate_loop.py --domains domain--domains可选值包括paper_review、balrog_babyai、balrog_nle、genesis_go2walking、imo_proof、polyglot等见 generate_loop.py#L1028-L1048。输出默认保存在outputs/generate_run_id/。 generate_loop.py 逐段解读① 命令行参数解析L1025–L1189入口__main__用 argparse 定义了约 20 个参数最重要的几个--domains要优化的领域支持多个--max_generation最大进化代数默认 10--parent_selection选亲代策略默认score_child_prop可选random/latest/best/score_prop--resume_from从已有输出目录断点续跑--optimize_optiononly_agent/only_ensemble/both_agent_ensemble。参数还做了后校验--optimize_optiononly_ensemble时必须提供--agent_archive_pathgenerate_loop.py#L1156-L1166。② 主循环generate_loop()L719–L1022这是全文件的骨架分四个阶段初始化创建 Docker 客户端按resume_from决定是恢复旧存档还是用setup_initial_gen初始化仓库根目录并写入首节点initial或0到 archive.jsonlL740–L880。逐代循环for current_genid in range(start_genid, max_generation 1)每代做四件事L900–L1019调用generate()生产并评估新智能体update_and_save_archive把新节点追加进存档若元智能体失败把父节点标记valid_parent: False重新选亲代进入下一代。每代收尾绘图调用 analysis/plot_progress.py 的plot_progress_single和 analysis/visualize_archive.py 的visualize_archive_single按领域、按 splittrain/val、按分数类型agent/ensemble/max绘制进度图和存档树L968–L1004。ensemble 评估若optimize_option含ensemble每代结束后在容器里跑 utils/run_ensemble.py把整个存档的投票集成当作一个额外智能体评估。③ 单代生产generate()L427–L716这是最核心的函数一次生育的完整流程建容器build_container创建带完整依赖的镜像容器输出目录设为/tmp/L470–L481重放血统get_patch_files取出父节点链路上的全部 diffapply_diffs_container在容器里逐一git apply让代码回到父代状态L495–L504实现见 utils/gl_utils.py#L438跑元智能体容器内执行python run_meta_agent.py给它仓库路径、历史评估文件夹和剩余迭代次数超时 6 小时基线模式--run_baseline dgm则改跑 baselines/dgm/coding_agent.pyL541–L599检查产物元智能体应产出model_patch.diff非空才继续评估L609–L615run_commands_to_check_compilation先确认改完的代码能正常导入编译L618评估新智能体eval_produced_agent在容器内跑domains.harnessdomains.report超时 5 小时L302–L361收尾finally块里git reset --hardgit clean -fd还原容器清理容器把元数据写入gen_id/metadata.jsonL691–L714。 亮点设计一切在容器内发生。智能体生成的不可信代码只在隔离容器中运行宿主机永远干净这大幅降低了执行 AI 生成代码的风险。④ 两阶段评估先小样本试菜再全量开席generate()内的评估分两档L638–L684staged eval先用少量样本get_domain_stagedeval_samples快速打分只有所有领域小样本分数都 0才继续全量评估。这是典型的省钱过滤器明显变差的代不浪费完整评估算力。polyglot 领域走独立分支run_harness_polyglotL49–L97因为它每个任务需要一个独立容器且沿用 DGM 的0.4阈值决定是否扩大评估。⑤ 选亲代策略select_parent()实现不在主文件里而在 utils/gl_utils.py#L511-L587。五种策略速览策略行为random随机挑一个合法节点latest永远选最新节点相当于线性进化best选验证集平均分最高的节点score_prop按分数 Sigmoid 加权随机接近锦标赛score_child_prop在score_prop基础上再按已被选为父的次数降权鼓励探索没被用过的分支默认的score_child_prop兼顾利用高分节点优先和探索高产出节点降权是进化算法的经典平衡。此外还有一个元玩法--edit_select_parent会调用 select_next_parent_container让智能体自己编辑 utils/run_select_next_parent.py 中的选择逻辑——智能体连选择规则都能进化。⑥ 输出目录长什么样每轮运行在outputs/generate_run_id/下archive.jsonl进化树存档每行一个节点gen_id/metadata.json该代的补丁列表、评估开关、valid_parent标记gen_id/agent_output/model_patch.diff元智能体本代产出的代码补丁gen_id/domain_eval*/各领域评估原始结果generate.log、select_next_parent.log运行日志。⚠️ 安全提示仓库在 README.md 中明确警告系统会执行模型生成的不可信代码。尽管运行在 Docker 隔离容器中仍可能因模型能力或对齐局限产生破坏性行为。请务必在隔离环境运行并接受相关风险。 总结一张图看懂 generate_loop.pyparse_args → 初始化/续跑 → 建 Docker 容器 → 应用血统补丁 → 跑 meta agent 改代码 → 编译检查 → 两阶段评估 → 存 archive.jsonl → select_parent 选亲代 → 下一代循环 延伸阅读元智能体实现meta_agent.py任务智能体实现task_agent.py存档与选亲代工具函数utils/gl_utils.py各评估领域domains/实验分析绘图analysis/基线对比DGM 等baselines/【免费下载链接】HyperAgentsSelf-referential self-improving agents that can optimize for any computable task项目地址: https://gitcode.com/gh_mirrors/hy/HyperAgents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表