news 2026/9/16 20:00:45

Evolver GEP资产为什么升级不覆盖?GEP_ASSETS_DIR与本地资产保护完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Evolver GEP资产为什么升级不覆盖?GEP_ASSETS_DIR与本地资产保护完整指南

Evolver GEP资产为什么升级不覆盖?GEP_ASSETS_DIR与本地资产保护完整指南

【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolver

在 evolver 这个基于 GEP(Genome Evolution Protocol)的 AI 智能体自进化引擎中,Genes、Capsules 和 Events 三类资产是智能体"进化记忆"的核心。很多用户担心:升级版本后,自己积累在genes.json里的基因会不会被官方文件覆盖?答案是——不会。本文带你从源码层面理解GEP_ASSETS_DIR的配置方式,以及 Evolver 通过"目录分离 + 只增不改 + 强制更新保护清单"实现本地资产保护的具体机制。

先搞懂:GEP 资产有两套"家"

Evolver 把资产分成了两个互不干扰的位置:

位置路径归属谁可以改
内置资产assets/gep/官方随包发布只读,升级时可更新
运行时资产<workspace>/.evolver/gep/你的本地运行数据只属于你,升级永不触碰

运行时资产目录包含以下文件:

  • genes.json/genes.jsonl—— 基因库(进化策略单元)
  • capsules.json/capsules.jsonl—— 胶囊库(成功的完整执行方案)
  • events.jsonl—— 进化事件日志(可审计链路)
  • candidates.jsonlfailed_capsules.json等辅助文件

内置资产中,官方提供了启动种子文件 assets/gep/genes.seed.json,里面预置了gene_gep_repair_from_errors(错误修复)、gene_gep_optimize_prompt_and_assets(提示词优化)等基础基因,仅用于"开箱即用"。

路径解析逻辑在 src/gep/paths.js#L194-L201:默认资产目录是<workspace>/.evolver/gep/,而内置目录由getEvolverInstallRoot()指向安装包内的assets/gep/,两者从根上就隔离开了。

升级不覆盖:GEP 资产保护的 4 层机制

1️⃣ 首次运行"种子化":只在文件不存在时写入

核心逻辑在 src/gep/assetStore.js#L349-L385 的ensureGenesSeeded()

  • 本地genes.json不存在→ 从官方种子整体拷贝一份(日志提示Seeded ... from genes.seed.json);
  • 本地genes.json已存在→ 直接跳过,绝不覆盖。

这就是"首次填充、后续尊重"的原则:你的基因库从诞生那一刻起就归你所有。

2️⃣ 后续升级"只增不改":按 ID 去重追加

如果你本地库看起来是旧版内置种子(命中 2 个以上历史种子基因 ID 标记),升级时 Evolver 会把新增的"升级基因"追加到末尾,但严格遵循:

  • 已存在的基因 ID 一律跳过(selectBundledUpgradeGenes按 ID 去重);
  • 你手动修改过的基因、自己蒸馏出的基因,一个字节都不会被改动;
  • 空库、手动编写的小型测试库完全不受影响。

整个过程由文件锁(withFileLock,src/gep/assetStore.js#L95-L102)保护,配合原子写入(先写.tmprename),即使守护进程、CLI 脚本、cron 多进程同时写也不会损坏文件。

3️⃣ 旧版文件迁移:只拷贝、不删除

如果你曾使用过早期版本、资产还躺在assets/gep/里,migrateLegacyRuntimeAssets()(src/gep/assetStore.js#L285-L308)会在首次运行时把genes.jsoncapsules.jsonevents.jsonl等 8 类旧文件复制.evolver/gep/,且:

  • 目标文件已存在则跳过,不覆盖;
  • 原始文件原样保留,不做任何删除;
  • 设置过GEP_ASSETS_DIR时自动跳过迁移,以你的自定义目录为准。

4️⃣ 强制更新"保护清单":.evolver目录整体保留

Evolver 支持从 Hub 强制拉取新版本代码(src/forceUpdate.js),替换代码文件时会遇到一个保护清单(src/forceUpdate.js#L403):

.env / .env.local / USER.md / .evolver/

也就是说,无论版本代码怎么更新,你整个.evolver/gep/资产目录都不在替换范围内。回归测试 test/forceUpdateKeepList.test.js 明确验证了"升级后.evolver/config.json必须保留、旧代码文件必须被替换",资产保护行为是被测试覆盖的长期承诺。

GEP_ASSETS_DIR 配置:把资产库放到你想要的位置

默认情况下资产在<workspace>/.evolver/gep/,如果想把运行时资产库放到别处(比如集中管理多个智能体、或备份到独立磁盘),只需设置环境变量GEP_ASSETS_DIR

# .env 或 shell 环境 GEP_ASSETS_DIR=/data/my-evolver-assets

设置后的效果(src/gep/paths.js#L194-L201):

  • 所有基因、胶囊、事件文件都读写到新目录;
  • 旧版assets/gep/迁移逻辑自动停用(避免误拷贝);
  • 只读路径解析也会优先尊重你的自定义目录。

配合EVOLVER_SESSION_SCOPE,还可以在目录下自动加一层scopes/<scope>/子目录,实现多会话资产隔离。

万一资产丢了怎么办?Hub 一键恢复

官方文档(README.md#L402-L414)专门有一节说明:如果你曾用旧版本、本地资产被意外清空,只要 Promote/发布过资产,就能用一条命令从 Hub 找回:

A2A_HUB_URL=https://evomap.ai evolver sync --scope=all --export=backup.gepx

它会把"你发布过的"和"你购买/推广获得的"资产全部重新拉取并写回genes.json/capsules.json,同时打包成便携的.gepx备份文件。注意:从未上传 Hub 的纯本地资产没有远端副本,只能从.evolver/gep/或磁盘快照恢复——所以定期备份资产目录是好习惯。

常见问题速答

Q:升级后assets/gep/里的文件变了,我的资产会受影响吗?不会。assets/gep/只是官方内置资产的存放地,你的运行数据在.evolver/gep/,两者职责分离(详见 README.md#L390-L414)。

Q:我想清空资产重新开始?删除或改名<workspace>/.evolver/gep/(或GEP_ASSETS_DIR指向的目录)即可,下次启动会自动重新种子化。

Q:怎么验证保护机制真的生效了?项目自带测试用例 test/assetStore.test.js(验证生产路径将用户可修改资产留在GEP_ASSETS_DIR)与 test/forceUpdateKeepList.test.js(验证强制更新保留.envolver/),可以直接参考断言内容。

总结

Evolver 对 GEP 资产的保护可以浓缩为一句话:内置资产归官方,运行时资产归用户,升级永远只做"加法"。通过目录分离、按 ID 去重追加、只拷贝不删除的旧版迁移,以及强制更新保护清单这 4 层机制,加上GEP_ASSETS_DIR的灵活重定向能力,你的进化记忆在版本迭代中始终安全、可审计、可备份。

【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolver

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 20:00:18

3行代码训练扫描文档分类器:AutoGluon PDF文档分类实操笔记

3行代码训练扫描文档分类器&#xff1a;AutoGluon PDF文档分类实操笔记 【免费下载链接】autogluon Fast and Accurate ML in 3 Lines of Code 项目地址: https://gitcode.com/GitHub_Trending/au/autogluon 本教程用 AutoGluon 的多模态模块对扫描件和 PDF 做文档分类&…

作者头像 李华
网站建设 2026/9/16 19:57:13

Synology NAS共享文件夹创建与权限配置、跨设备自动挂载实战指南

做运维这些年&#xff0c;我经手的Synology NAS少说也有几十台&#xff0c;每次帮朋友或客户配置共享文件夹&#xff0c;看起来就是个点鼠标的活&#xff0c;但真正踩过坑才知道&#xff0c;权限模型、访问协议、自动挂载这些环节&#xff0c;任何一个没处理好&#xff0c;后面…

作者头像 李华
网站建设 2026/9/16 19:56:54

基于卷积神经网络的垃圾识别分类系统实战:数据集到部署全流程

简介&#xff1a;基于深度学习卷积神经网络实现的垃圾识别分类系统&#xff0c;提供完整Python源码、近两千张标注图片数据集及训练好的模型文件。项目源自导师指导下的高分课程设计&#xff0c;流程完整&#xff0c;下载解压即可运行&#xff0c;适合作为深度学习、计算机视觉…

作者头像 李华