Bun 的作者用 11 天、烧掉 16.5 万美元的 token,让 AI 把整个运行时从 Zig 往 Rust 上重写了一遍。但这事最该学的,不是「AI 会写代码」。
先把来龙去脉说清。这不是外人拿 Bun 练手,是官方项目,Jarred Sumner 自己主导。为什么要换语言?Zig 那套「混合 GC + 手动内存管理」老给他制造 use-after-free、double-free 这类内存 bug,踩烦了;Rust 编译器强制内存安全、RAII 自动清理,能从根上堵掉这类坑。
真正的门道,在他怎么让 AI 干这活。他没让 agent 一行一行地写、然后自己手动去修 bug——那样早崩了。他搭的是一套跑在 Claude Code 上的动态工作流:agent 自动做初版移植,他盯着输出,不停 prompt 去改进「流程」本身。具体点说,是反复试运行、加对抗式代码审查(adversarial review)——所谓对抗式,大意就是让另一个角色专门去挑刺、试着把生成的代码搞崩,逼流程把漏洞暴露出来。哪一步生成得不稳,他改的是「让 agent 怎么生成」的那套流程。说白了,他优化的是那条流水线,单个零件交给它自己产出。
这条流水线能转起来,靠的是一个地基:Bun 本来就有一套 TypeScript 一致性测试,上百万条断言。这套测试就是「唯一真相」——移植对没对,不靠人肉判断、不靠 AI 自己感觉,靠它自动验。有了这个稳定的反馈信号,agent 才从一台「碰运气的老虎机」变成一台能自我迭代的机器。这也正是它跟「vibe coding」的分水岭:凭感觉让 AI 写、写完瞄两眼,小打小闹能用;可一旦规模上到「整个运行时」,没有一个能当裁判的测试地基,agent 越写越飘,根本收不住。
账也摆一下,别只看漂亮的一面:光 token 就烧了 16.5 万美元(近 59 亿 uncached 输入、6.9 亿输出、720 亿 cached 读取)。成果已经上线在 Claude Code v2.1.181(6 月 17 号),加了约 100 万行,Linux 上启动快了约 10%。
我真正想拎出来的一条:这大概是目前最硬的「agent 能干大规模重写」的实锤——一个人 11 天里,基本把自己整个运行时搬去了另一门语言。但别把功劳记在「AI 会写代码」上。让它成立的,是那套百万断言的测试地基,加上反复打磨的工作流。真正的杠杆是测试套件和流程设计——模型强不强,倒在其次。你要是也惦记着「让 AI 把我们那套祖传老系统重写一遍」,这个头号成功案例给的启示很朴素:没有一致性测试、没有 harness,大规模 agent 重写根本无从谈起。
顺带说一句什么时候别照抄它:代码库小、逻辑简单的,人自己写往往更快更省,没必要请 agent 大动干戈;手里又没有那种能一键跑、还足够严的测试套件的,更别急着让 agent 大改——你连它写对没写对都判不了,只会越改越乱。这套打法真正的门槛,从来不是模型贵不贵,是你有没有那套能当裁判的测试地基。
当然,这是 Sumner 自己的复盘,没有第三方审计;它能成,很大程度上因为 Bun 手里有那套百万断言的测试——这奢侈品大多数代码库没有;16.5 万美元也不是小钱;官博还没把「是不是 100% 迁完」说死,只讲了已经上线、加了约 100 万行,完成度到哪步没细说。我没自己跑过,以上照 Bun 官博和 Simon Willison 的转述讲。
转给那个天天嚷着「我们真该把这套老系统重写一遍」的技术负责人——先别急着排期,问他一句:那套能当裁判的测试,有吗?
关注 @svtransit1 · 写给真在用 AI 的人
原始出处 · 第一条评论拿
#AI #ClaudeCode #Rust #AIagent
原始来源:https://bun.com/blog/bun-in-rust
关注 @svtransit1 · 每 3 小时一篇 AI 前线 · RSS