十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Evolver回滚机制完全指南:EVOLVER_ROLLBACK_MODE的stash/hard/none如何防止AI改坏你的代码

Evolver回滚机制完全指南:EVOLVER_ROLLBACK_MODE的stash/hard/none如何防止AI改坏你的代码 Evolver回滚机制完全指南EVOLVER_ROLLBACK_MODE的stash/hard/none如何防止AI改坏你的代码【免费下载链接】evolverThe GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai项目地址: https://gitcode.com/GitHub_Trending/evolv/evolverEvolver 是一款由 GEP基因-胶囊-事件模型驱动的 AI Agent 自进化引擎它通过EVOLVER_ROLLBACK_MODE环境变量提供 stash、hard、none 三档回滚策略默认 stash 模式会在进化失败时把你的改动安全存入 git stash随时可用git stash pop找回从根源上防止 AI 修改代码导致数据丢失。一、为什么自进化引擎必须有回滚机制 ️Evolver 会像基因突变一样自动修改你的工作区代码Gene → Capsule → solidify 固化一旦某次进化周期在验证阶段失败就必须把改动撤掉。撤的方式决定了你敢不敢放心让它跑撤得太狠你手写的工作被一并丢弃数据丢失撤得不清坏改动残留污染后续进化不撤失败状态堆积越滚越乱Evolver 把这件事收敛成一个开关src/gep/gitOps.js 中的rollbackTracked函数读取EVOLVER_ROLLBACK_MODE决定回滚行为。二、三种回滚模式速览模式执行的 Git 操作改动去向适用场景stash默认git stash push --include-untracked存入 stash可恢复绝大多数用户、第三方宿主仓库hardgit reset --hardgit restore直接丢弃全自动无人值守、改动可再生none跳过回滚原样保留人工排障、观察现场官方在 SKILL.md 中对这一变量的定义是EVOLVER_ROLLBACK_MODE默认stash— Rollback on solidify failure: stash (default, recoverable), hard (destructive), none。2.1 stash可恢复的默认档失败时 Evolver 会把当前改动含未跟踪文件整体压入一个带时间戳标记的 stashgit stash push -m evolver-rollback-1751800000000 --include-untracked之后你只需两条命令即可找回或查看git stash list | grep evolver-rollback # 找到那条 stash git stash pop # 恢复全部改动细节上还有一个安全网如果 stash 本身失败极端情况才会降级执行硬重置——顺序见 src/gep/gitOps.js。2.2 hard破坏性全清显式设置EVOLVER_ROLLBACK_MODEhard时执行git restore --staged --worktree .与git reset --hard改动彻底消失。注意一旦选了 hard默认档的防丢保护对你不再生效。2.3 none不动现场设置EVOLVER_ROLLBACK_MODEnone后回滚步骤被完全跳过日志输出[Rollback] ... skipping rollback适合你想手动检查失败现场、或配合人工验证流程时。三、如何配置 EVOLVER_ROLLBACK_MODE ⚙️配置方式与其他 Evolver 变量一致直接注入环境变量即可无需改代码# 保持默认不用设置默认就是 stash # 显式要求硬重置 export EVOLVER_ROLLBACK_MODEhard # 只观察不回滚 export EVOLVER_ROLLBACK_MODEnone变量说明完整收录在 SKILL.md 的环境变量清单中。命令行侧还有一个配套开关--no-rollback见 index.js用于单次运行临时关闭失败回滚。四、防丢数据的三道防线 回滚不只是一键撤销Evolver 为不误伤用户文件叠加了多重护栏4.1 关键文件受保护永不删除清理未跟踪文件时MEMORY.md、SOUL.md、IDENTITY.md、AGENTS.md、.env、package.json以及skills/evolver/等关键路径被列入保护名单即使被误判为进化产生的垃圾也会被跳过src/gep/gitOps.js。4.2 mtime 时间戳守卫不删你正在写的文件清理逻辑带 mtime 守卫只删除修改时间在本轮进化周期开始之后的未跟踪文件。如果你在回滚窗口里恰好用编辑器改过一个文件它的修改时间早于周期起点就会被保护下来。该行为有专门的回归测试覆盖test/rollbackSafety.test.js。4.3 默认值锁定测试保证默认档只能是 stash项目用源码级断言锁死了默认值默认必须是stash且历史默认hard不得再出现test/rollbackSafety.test.js。这条断言的存在本身就说明曾经有用户在第三方宿主仓库中因默认硬重置而丢失过工作。五、版本演进默认值为什么从 hard 翻转为 stash源码注释写得很直白src/gep/gitOps.js默认 stash1.80.7 及以前为 hard失败的固化周期应通过git stash保留用户工作区状态可用git stash pop恢复而不是用git reset --hard丢弃。也就是说默认值在 v1.80.8 从 hard 翻转为 stash动机是防止在第三方宿主仓库中造成数据丢失。如果你的环境仍是旧版本建议显式export EVOLVER_ROLLBACK_MODEstash兜底。六、实战进化失败后如何恢复改动 一次典型恢复流程# 1. 查看 stash 列表找 Evolver 的回滚记录 git stash list | grep evolver-rollback # 2. 恢复pop或只取回部分文件 git stash pop # 或git checkout stash-ref -- path/to/file # 3. 若当时用的是 none 模式改动还在工作区 git status # 直接检查在--loop守护模式下启动时也会打印同样的恢复提示index.js[Daemon] Failed cycles auto-stash via git stash push --include-untracked. [Daemon] Recover: git stash list | grep evolver-rollback七、选型建议清单日常使用 / 宿主仓库保持默认stash失败可回退心理负担最小无人值守的容器化环境hard改动本来就在别处有备份排障与审计none或临时加--no-rollback保留现场人工判断升级检查确认版本 ≥ 1.80.8或显式设置 stash避免旧默认 hard 的隐患Evolver 把AI 改坏了怎么办这件事从玄学变成了三条可验证的行为可恢复的 stash、显式的 hard、以及留现场的 none。理解EVOLVER_ROLLBACK_MODE之后你就可以放心把进化周期交给引擎同时握有完整的找回权。附本文涉及的模块路径回滚核心实现src/gep/gitOps.js未跟踪文件清理与保护名单src/gep/gitOps.js回滚安全回归测试test/rollbackSafety.test.js环境变量官方说明SKILL.md守护模式回滚提示index.js【免费下载链接】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),仅供参考
返回列表