← 返回 2026-08-13

持久递归世界实现自主软件演化 Persistent Recursive Worlds Enable Autonomous Software Evolution

Beichen Huang, Zhenyu Liang, Bowen Zheng, Ran Cheng 📅 2026-08-12 👍 6 2026-08-18 18:30
多智能体系统 智能体软件工程 科学代码迁移 自动软件演化 长时程任务

让软件项目而非智能体保持持久,用有限寿命智能体递归演化出大型软件系统

前置知识

局部软件世界 $w=(v,p)$

Genesis 的核心形式对象:任意时刻智能体由一对坐标定位——接受版本 $v$ 决定它继承的完整项目状态与可继承历史,仓库相对路径 $p$ 决定局部职责起点与修改范围。路径不是仓库的部分副本,也不引入额外软件状态,只是职责定位。

全文的方法、公式与实验都围绕这个二元组展开,不理解它就无法理解'持久项目、瞬态智能体'如何具体落地。

有限寿命(瞬态)智能体

只存活于单个受监督任务片段的智能体:接收目标、执行多轮模型-工具调用、提出候选变更后即终止,其私有会话与暂存状态不被后续智能体继承。后续工作总是从接受的版本与路径重新实例化。

这是本文与传统'持久记忆/长上下文'智能体系统的根本分野,理解它才能明白连续性为何归属项目而非智能体。

递归委派

父级智能体在同一接受版本 $v$ 下把工作移到更具体的路径 $q$,即 $(v,p)\rightsquigarrow(v,q)$;子智能体可继续向下委派。管理者负责分解目标与评审,叶子执行者直接修改代码,委派本身不推进版本历史。

实验中委派深度达到 4-8 层,是把根目标分解为嵌套局部任务、累积出 25 万行编译器的核心组织机制。

验证门控接受

候选变更只有被责任父级依据测试、约束与集成证据裁决接受后,才形成软件事件 $(v,p)\rightarrow(v',p')$ 并以 Git 提交推进持久历史;被拒代码不改变版本,但显式存入上下文、测试或出处记录的失败信息可随后续接受版本被继承。

它定义了'什么后果能成为历史',是理解版本演化机制和实验中 929/1015 保留率等指标的钥匙。

Git worktree 与隔离分支

Git 允许从同一提交检出多个独立工作目录(worktree)并在独立分支上修改,互不干扰。Genesis 用智能体专属的分支与 worktree 承载候选变更,接受后才合并进受保护的版本历史。

这是持久递归世界的工程实现基础;论文图 1 中'隔离 worktree 不是第二个世界'的说明正依赖这一机制。

研究动机

软件任务会结束,但软件系统不会:一个存活数月的仓库会不断积累接口约定、测试、架构承诺、半成品方案与失败记录,这些都在约束后来贡献者的行为。因此长时程软件开发不是'把编码任务拉长',而是让许多有界的贡献在贡献者更替时仍保持连贯。LLM 编码智能体已能检查代码、执行工具、修改文件并自我验证,SWE-bench 等基准也从单 issue 扩展到多步仓库构建与软件演化;但现有系统——更大的上下文窗口、持久记忆、管理者智能体、共享便签——都是通过延长智能体进程的某个部分来保存连续性,一旦会话或记忆失效,开发就难以为继,且接口漂移与技术债会让后续工作越做越难。这引出一个更根本的问题:当活跃智能体不存在时,究竟什么必须持久化?

本文的目标是本文提出并检验一个反转的组织方式:让软件项目本身持久,而让局部智能体保持有限寿命。具体目标分三层递进:其一,形成能力——证明众多有限寿命的任务片段能从一个没有任何编译器实现的空仓库累积出复杂系统,实际构建了 248,989 物理行的 Rust C 编译器;其二,延续能力——已完成的编译器世界在智能体反复更换、甚至基础模型从 GLM 5.2 切换到 DeepSeek V4 Flash 后,能否继续开发且不损失测试性能;其三,再造能力——同一组织方式能否把 139,414 行 Fortran 的 13 个 MESA 模块改写为 89,946 行 Rust 工作区,同时保持六个数值负载的已审计数值行为。最终检验的假设是:开发过程的寿命可以超过其中智能体的寿命。

与已有工作不同的是,与已有工作的关键差异在于连续性的归属。记忆反思、技能库、多智能体角色分工仍把连续性锚定在智能体侧;EvoGit 虽让独立智能体在 Git 图上修改与重组版本,却没有把版本历史与'路径定位的递归智能体实例化'和'父级中介的接受机制'耦合起来;FunSearch、AlphaEvolve、ERA 演化的是候选程序种群,本文跟踪的是同一个软件项目的连续历史。Genesis 的独特切入是把智能体定位为一对坐标 $w=(v,p)$(接受版本+仓库路径):项目状态和历史才是持久对象,智能体的私有会话与暂存状态随片段结束而终结,从而把'智能体寿命'与'开发过程寿命'这两个常被混为一谈的时间尺度显式分离,并让持久性约束必须继承什么、而不规定未来如何展开。

核心方法

直觉上,Genesis 把'谁来记住项目'的答案从智能体挪到仓库本身。形式化上,任意时刻智能体被两个坐标定位:接受版本 $v$(决定它继承的完整项目状态与历史)和仓库相对路径 $p$(决定局部职责起点),二者构成局部软件世界 $w=(v,p)$。有限寿命智能体 $A_i$ 在 $(v,p)$ 中接收目标 $g_i$,产出候选变更 $\Delta_i = A_i((v,p), g_i)$。递归委派 $(v,p) \rightsquigarrow (v,q)$ 让父级在同一版本下把工作移到更具体的路径 $q$,产生子智能体但不改变版本;只有通过验证并被父级接受的软件事件 $(v,p) \rightarrow (v',p')$ 才推进持久版本历史。实现上,接受的项目状态包含源文件、路径级 CONTEXT.md 上下文、约束、验证结果、可复用技能与出处记录;候选变更隔离在智能体专属分支与 worktree 上,由 BEAM 调度器管理,调度状态与临时 worktree 只是执行基础设施而非项目的持久身份。

核心创新是把持久性与智能性分离:持久的是接受的项目状态与版本历史,智能性则由一批批有限寿命的智能体反复'重新实例化'。这与记忆系统、持久管理者或共享便签有本质区别——那些方法都在延长智能体进程的某个部分,而 Genesis 中任何智能体的私有会话都不是后续智能体的身份来源,后续工作总是从接受的版本与路径重新出发。另一个关键设计是父级中介的验证门控接受:候选变更必须通过父级用测试、约束与集成证据做出的接受/拒绝/返工裁决才能写入历史,被拒绝的代码不改变版本,但显式存入上下文、测试或出处记录的失败信息可以随后的接受版本被继承。递归委派则在不推进版本的情况下把工作局部化到路径上,使根目标被分解为嵌套的局部任务树。

方法步骤详情

完整流程如下。(1) 初始化:根世界从某个接受版本与根路径出发,编译器实验的首次根会话始于仅含 .gitignore 和 genesis.toml 的提交 41e087ce90f3,人类只提供任务规范、可用工具与控制器上限。(2) 目标分解:根/中间管理者智能体把目标按仓库路径拆分,通过 $(v,p)\rightsquigarrow(v,q)$ 在同一版本下创建子世界。(3) 叶子执行:叶子执行者直接修改代码,所有改动隔离在智能体专属的分支与 worktree 上;智能体可在单个受监督片段内执行多轮模型-工具调用,输入超过 150,000 token 触发上下文压缩。(4) 结果上交:子智能体返回已完成报告,含关键决策、差异与遗留问题。(5) 门控接受:责任父级依据测试、约束与集成证据裁决;接受则产生软件事件 $(v,p)\rightarrow(v',p')$,以 Git 提交加受保护归档引用写入历史,拒绝则版本不变。(6) 递归重复:实验中委派深度达 4-8 层,上千个这样的片段累积成完整系统,后期智能体继承的是早期被接受的全部成果。

技术新颖性

技术新颖性体现在三点。第一,形式模型极简却完整:仅用版本、路径、委派、接受四个原语就刻画了局部智能体、递归分解与持久事件,路径不是仓库的部分副本或额外软件状态。第二,接受机制的位置不同:EvoGit 依赖 Git 图上的无中心重组,经典分层智能体依赖任务分解树,Genesis 把'是否进入历史'的裁决权交给对路径负责的父级,并把测试、约束、验证结果与出处都纳入接受状态,使失败经验也能以记录形式被继承。第三,评估组织方式不同:不像 FunSearch/AlphaEvolve 那样评估程序种群,也不像 greenfield 基准只评估从自然语言规范一次性建库,而是评估一个项目跨越 123 小时、1019 个片段、两次基础模型替换后的连续可开发性,并额外引入'保留已审计数值行为'的科学软件再造这一更严标准。

Persistent recursive worlds
Figure 1: Persistent recursive worlds

实验结果

三个实验均给出可核查数字。形成:DeepSeek V4 Flash 用 123.4 小时、1019 个片段(委派深度 5)从空仓库构建 248,989 行的 Rust C 编译器 jcc,费用 44.38 美元;通过 c-testsuite 220/220、LLVM 32/36、Csmith 93/93、LZ4 8/8、SQLite 检查、2904 个 Rust 测试与内部语料 106/106,929/1015 个片段的贡献被保留。延续:同一 GLM 5.2 编译器世界(初始开发 762.59 美元、缓存命中 96.34%)分出两支——GLM 续跑 98 个智能体、深度 4,LLVM 保留集 1445/1448,约 168 美元;DeepSeek 续跑 178 个智能体、深度 8,LLVM 1820/1820,仅 7.49 美元;两分支 c-testsuite 均 220/220,代码从 105.4k 行增至 117.0k 与 133.2k 行。再造:33.22 小时、272 个智能体、10.64 美元把 139,414 行 Fortran 的 13 个 MESA 模块改写为 89,946 行 Rust,1052 个测试全过;六个数值负载中 EOS 查找与 Newton 求解位精确,其余校验和差在 $5.1\times10^{-15}$ 至 $3.1\times10^{-9}$;Rust 全部更快,中位加速 $1.55\times$(burn)至 $6.87\times$(Newton),ROS2 集成 $5.30\times$。

Formation of a C compiler with DeepSeek V4 Flash through recursive development
Figure 2: Formation of a C compiler with DeepSeek V4 Flash through recursive development
Continuation of the same compiler world with GLM 5.2 and DeepSeek V4 Flash
Figure 3: Continuation of the same compiler world with GLM 5.2 and DeepSeek V4 Flash
Redevelopment of selected MESA modules in Rust
Figure 4: Redevelopment of selected MESA modules in Rust
查看结构化数据
任务指标本文基线提升
C 编译器从零构建(c-testsuite) 通过率 220/220(100%) 无(空仓库绿地任务,无对照系统) 123.4 小时、1019 个片段、44.38 美元从零形成 248,989 行编译器
C 编译器(LLVM 测试用例) 通过用例数 32/36(88.9%) 无直接对照 新增 2904 个 Rust 工作区测试与内部语料 106/106 全部通过
Csmith 随机程序差分测试 执行通过程序数 93/93(100%) 由提交的测试工具自动生成并执行
编译器世界延续(DeepSeek V4 Flash 分支) LLVM SingleSource 保留集通过率 1820/1820 GLM 5.2 初始开发快照 1558/1870 智能体与基础模型全部更换后测试性能无回退,深度达 8
编译器世界延续(GLM 5.2 分支) LLVM SingleSource 保留集通过率 1445/1448 GLM 5.2 初始开发快照 1558/1870 98 个全新智能体在深度 4 下完成延续,代码净增 10.0k 行
MESA Fortran→Rust 数值等价 六个负载校验和相对差 两个负载位精确,其余 $\leq 3.1\times10^{-9}$ 原版 Fortran MESA(commit 461dcba94f33) 实现语言完全更换后数值行为保持
MESA 迁移性能 六负载中位运行时加速比(各 25 次测量) $1.55\times$–$6.87\times$,Rust 全部更快 原版 Fortran MESA Newton 求解 $6.87\times$、ROS2 集成 $5.30\times$,成本仅 10.64 美元、33.22 小时

局限与改进

作者坦承的局限:证据包每个设定只有一次运行(1 次 DeepSeek 形成、1 次 GLM 延续、1 次 DeepSeek 延续、1 次 MESA 改写),只能说明'能力'而非成功率;未做机制因果分解——递归被大量使用(深度 4-8)但不能证明它优于扁平组织,也不知道哪些持久记录是延续的必要条件;归档不含完整的人工干预审计日志,只能报告观测证据而非'零人类参与'的证明;费用只计模型 token,不含硬件、存储、控制器与人力;两次延续的 LLVM 保留测试集不同,且 token/时间预算不匹配,只能做描述性报告。我的补充观察:缺少与持久记忆/持久管理者等基线框架的对照实验,'递归世界'的增益无法与'多智能体+Git'的普通组合区分;编译器仅通过采样性测试子集(36 个 LLVM 用例),对完整 C 标准的覆盖未知;MESA 只迁移了 13 个底层模块,star/astero/binary 等高层引擎不在范围内;行数统计含注释与空行,会放大规模感。

独立分析的弱点

第一,接受质量完全依赖父级智能体的判断:若父级在测试覆盖不足时误接受有缺陷的实现,错误会进入所有后续智能体继承的历史,形成系统性技术债;改进方向是为关键路径引入外部验证门(差分测试、形式化检查)或多评审者投票。第二,延续实验中两次续跑的 token 预算与 LLVM 测试集都不匹配,且各阶段缓存命中率高达 96-98%,提示结论可能高度依赖 prompt 缓存基础设施,在无缓存环境或按 token 严格计费的场景下成本优势未必成立;改进方向是做预算匹配的受控对比并报告无缓存成本。第三,形成实验缺少'同一模型+扁平单/多智能体跑同等预算'的基线,读者无法判断 44.38 美元买到的效率有多少来自持久世界组织本身,而非单纯的模型能力与海量并行;改进方向是按作者提议补齐扁平组织消融。第四,数值等价只验证了六个独立负载,且迁移后依赖结构与 Fortran 原版差异很大(40 个依赖保留、102 个 MESA-only、1 个 Rust 新增),未覆盖的调用路径可能存在数值漂移;改进方向是扩大差分回归测试面并做端到端恒星演化对照。

未来方向

作者明确提出下一步是机制因果实验:其一,固定可执行代码、只更换被接受的非代码开发记录(上下文、约束、验证结果),观察相同模型、任务与预算下后续构建是否改变;其二,在固定已保存项目状态的前提下比较'新鲜智能体'与'持久智能体',确定哪些持久记录是延续的必要条件;其三,补齐扁平组织、分层接受与验证门控的消融。在此基础上可以延伸:把该组织用于带形式化语义验证的更强规范系统(如可证明正确的编译器前端);探索跨仓库、跨团队的持久世界共享与合并;把路径级 CONTEXT.md 升级为可检索的项目记忆并研究其最优粒度与遗忘策略;引入需求变更与开放环境,检验系统在目标漂移而非固定目标下的适应力;MESA 路线也可推广到气候、量子化学等更多科学计算库的自动化迁移与数值守恒验证。

复现评估

复现条件总体友好。项目网站为 https://genesis.evox.group/,论文称实现为'已发布实现',归档记录了目标、被接受的仓库历史、智能体记录与资源摘要,补充信息声称提供完整协议与测量细节。单次实验成本都很低:形成 44.38 美元、MESA 10.64 美元、GLM 初始开发 762.59 美元、两次延续约 168 与 7.5 美元,个人研究者用 DeepSeek V4 Flash API 即可负担。难点有三:控制器基于 BEAM 调度器,属自建基础设施,若代码未完整释出需自行实现调度、worktree 隔离与路径级上下文组装;GLM 5.2 初始开发成本较高且依赖约 96% 的缓存命中率;复现还需 c-testsuite、LLVM 测试、Csmith、LZ4、SQLite 以及 MESA fork(commit 461dcba94f33)等外部资源,其中 MESA 的构建与基准环境搭建(CPU 绑定、预热等)有一定工程门槛。综合评估复现难度为中等,形成与再造实验最可行,延续实验需先复刻初始编译器世界。