← 返回资料站  /  Recursive Self-Improvement
论文 进化式代码演化 背景

EvoGit: Decentralized Code Evolution via Git-Based Multi-Agent Collaboration

EvoGit:把多智能体写代码组织成 Git 版本图上的去中心化进化
一句话SUSTech/PolyU 的工作:16 个独立 coding agent 不通信、不共享内存,只通过一张 Git 版本谱系图(DAG)异步读写同一个代码库,branch 当变异、merge 当交叉,人类只做稀疏反馈,最终长出一个完整网页应用和一个 bin-packing 求解器生成系统;框架和两个 demo 的全部 Git 历史开源可查,但评估纯定性、无 baseline。

这是什么

EvoGit 把软件开发建模成版本空间上的异步多智能体搜索:每个代码版本是 Git commit(DAG 上的节点),agent 在"当前较优版本"的动态子集上各自提出小改动(mutation,一父一子)或跨分支重组(crossover,两父一子),改动经本地评估(编译器/linter/测试诊断 + LLM pairwise 比较新旧版本)接受后作为新节点入图。没有 orchestrator、没有 message passing、没有 shared memory,所有协调都通过这张共享的 phylogenetic graph 间接发生——作者类比生物学里的 stigmergy(环境介导的间接协作)。

人类的角色被压缩成"产品经理":定初始目标,周期性看图,做轻量反馈(剪掉没前途的分支、提拔有希望的版本)。论文用两个任务演示:(1) 从零构建一个单页交互网站(16 agents × 最多 120 轮,每 10 轮一次人类反馈,全程约 10 次干预);(2) meta-level 任务——进化出一个"自动算法设计器",该设计器再用 LLM 迭代生成 bin-packing 求解器(16 agents × 120 轮,每 20 轮反馈,约 5 次干预)。2025 年 6 月挂 arXiv,拿了 Berkeley AgentX 竞赛 Multi-Agent Track 第一名(README 自述),S2 引用 9 次,repo 1357 stars。

EvoGit 方法总览:(a) 参与者 = 一群自主 coding agent + 一个人类产品经理,核心数据结构是 Git 谱系图;(b) 节点为代码版本,agent 在当前较优版本子集上操作;(c) 每个 agent 提出小改动,与父版本做 pairwise 比较(附编译/lint 诊断),通过则入图;(d) 两种算子——mutation(一父一子)与 crossover(两父一子,跨分支重组)。
EvoGit 方法总览:(a) 参与者 = 一群自主 coding agent + 一个人类产品经理,核心数据结构是 Git 谱系图;(b) 节点为代码版本,agent 在当前较优版本子集上操作;(c) 每个 agent 提出小改动,与父版本做 pairwise 比较(附编译/lint 诊断),通过则入图;(d) 两种算子——mutation(一父一子)与 crossover(两父一子,跨分支重组)。

机制与做法

Git 原语 = 进化算子

整个框架直接建在 Git 上:节点是 commit,有向边表示"经验证的进化后继"(v_i ⪯ v_j),分支命名 host<i>-individual-<j> 对应第 i 台机器上的第 j 个 agent。版本间只有偏序没有全序——系统不维护全局 fitness,agent 靠传递性(v1⪯v2, v2⪯v3 ⇒ v1⪯v3)和 LLM 对 diff 的 pairwise 判断推断相对质量。这个设计避开了开放式软件工程里"没有标量 reward、没有 ground-truth 测试"的难题,代价是质量信号很弱。

每步迭代:agent 从图上选一个(或两个)父版本 → 生成小 patch → 本地跑诊断(编译/lint/测试)加语义 diff 做 pairwise 比较 → 接受则 commit 入图并从新节点继续。异步、无锁,天然支持多机分布(demo 里的 host0/host1 就是两台机器各跑 16 个 agent 分支)。

实现与实验设置

开源实现很薄但真实:核心在 python-impl/evogit/(api.py 约 24KB,含 bubblewrap 沙箱脚本),复用了作者组的 EvoX 进化计算框架(evox.workflows.StdWorkflow),experiments/ 下两个任务各一份 main + prompt 脚本,LLM 走 Azure API。两个 demo 的产物各自是独立公开 repo(evogit_web、evogit_llm),所有 agent 的开发轨迹以分支形式保留(evogit_web 有 33 个分支 = main + 两台 host 各 16 个 agent),用 git log --graph 就能审计每一步决策——"全程可追溯"这条声称兑现得最彻底。

评估是纯定性的:任务 1 给网页截图(带 dark mode、动画),任务 2 给最终生成的求解器代码,没有和任何 baseline(ChatDev、MetaGPT、单 agent 等)做定量对比,也没有消融。

关键结果

实证核查

有水分框架、代码、demo 的完整 Git 轨迹全部公开可审计,核心机制真实兑现;但评估纯定性无 baseline,展示的 bin-packing 成果本身很平庸(甚至 README 贴的"优化循环"是死代码),"autonomous" 也依赖每 10-20 轮一次的人类反馈。
论文称 EvoGit 开源,且两个任务的完整进化过程可通过 Git 历史追溯。
属实且是本文最扎实的部分:BillHuang2001/evogit 有核心实现(python-impl/evogit/api.py ~24KB + experiments/ 下两任务的 main/prompt 脚本,基于作者组的 EvoX 框架、LLM 走 Azure);demo 产物 evogit_web repo 有 33 个分支(main + host0/host1 各 16 个 agent 分支),与论文"16 agents"设置吻合,每个 commit 都可查。repo issues 仅 1 个(HF 官方邀请上传),无复现争议记录。
摘要称"Experiments demonstrate EvoGit's ability to autonomously produce functional and modular software artifacts"。
打折之处有二:(1) 评估纯定性——正文只有网页截图和最终求解器代码,没有与 ChatDev/MetaGPT/单 agent 的任何定量对比,"functional and modular"由作者目测认定;(2) "autonomously"实际含每 10 轮(任务1)/20 轮(任务2)一次的人类反馈,任务 1 约 10 次干预(README 自述 'guided with ~10 feedback interventions')。
README 展示的最终 bin-packing 求解器被作为 meta-level 任务的成功产物。
读代码可见该求解器就是教科书级 first-fit decreasing,且其中的 refine_solution() 循环 100 次重复执行完全相同的确定性 first-fit 重排(按原顺序),结果永远不会优于初值——是死代码。两层管线确实跑通了,但产出算法的质量说明搜索本身没找到什么非平凡的东西(README 代码块第 147-174 行)。
README 称获 Berkeley AgentX 竞赛 Multi-Agent Track 第一名,并称后继项目 EvoX Genesis 已实现"数十万行代码、零人工干预、只花几美元"。
AgentX 获奖是 README 自述(链接指向 rdi.berkeley.edu 活动页,未逐一核验获奖名单);Genesis 的"hundreds of thousands of lines / zero human intervention / a few dollars"是宣传口径,不属于本论文的受审内容,行数≠质量,应单独存疑。

与我们方向的关系

对 RSI 方向,EvoGit 提供的是"种群化/去中心化"这一少见视角:自我改进不必是单 agent 的闭环,可以是一群 agent 在共享版本空间上的开放式进化,协调由环境(Git 图)介导而非中心调度。它的两个可借鉴点:(1) 用 Git DAG 做进化算法的原生数据结构,变异/交叉/选择直接映射到 branch/merge/prune,免费获得完整可审计谱系——这对研究自我修改系统的安全性和可追溯性是现成的基础设施;(2) 在没有标量 fitness 的开放任务上,用"偏序 + LLM pairwise 比较"替代全局排序,是对 open-ended evolution 里评估难题的一种务实(虽然弱)的回答。

同时它也是一个反面提醒:任务 2 名义上是 meta-level(系统进化自己的求解器生成器),但最终产物是平庸的 FFD——说明没有强选择压时,这类进化管线容易"跑通了流程、没进化出实质"。若课题组做种群式自我改进,定量选择信号和 baseline 对比是必须补上的一课。

阅读笔记

README 已宣布项目转入后继 EvoX Genesis(EMI-group/genesis),EvoGit 本体 2026-08 仍有 push 但主要是维护;引用 9 次,影响力目前主要来自 1.3k stars 和 AgentX 获奖曝光。看 demo 时记得点 GitHub 的 'View all branches',默认页面会隐藏部分 agent 分支。

材料清单

TeX 源码
已存档:Raw/evogit/source/
代码仓库github.com/BillHuang2001/evogit
1357★ · 最近推送 2026-08-10
Demo: 网页任务全程 Git 历史github.com/BillHuang2001/evogit_web
33 个分支 = main + 32 个 agent 轨迹,用 Insights→Network 看版本图
Demo: meta-level 任务github.com/BillHuang2001/evogit_llm
进化出的自动算法设计器 + bin-packing 求解器
后继项目 EvoX Genesisgithub.com/EMI-group/genesis
作者称已扩展到数十万行代码规模,宣传口径需自行核验