Anthropic首次公开了 Claude Code 大规模代码迁移的完整流程,Bun 作者 Jarred Sumner 的案例是其中最受关注的一例:他用不到两周时间,将 Bun 的底层从 Zig 迁移到 Rust,累计生成约 100 万行代码。
按文中披露的数据,这次迁移共消耗 59 亿输入 token 和 6.9 亿输出 token,按 API 定价计算,成本约 16.5 万美元。对比此前约 4 年、300 万美元的开发投入,这次迁移的成本明显更低。
本文来自微信公众号“新智元”,作者为“ASI启示录”。报道提到,Jarred Sumner 当年选择 Zig,核心考虑是用尽可能简洁的语言获得接近 C 语言的性能。用他的原话说,“在 LLM 出现之前,一个人在奥克兰狭小的公寓里,一年写出 Bun”。

Bun 从 Zig 转向 Rust
Bun 是一个比 Node.js 更快的 JavaScript 运行时。随着生态扩张,文中称,Bun 的 CLI 月下载量已经超过 1000 万,而且已经成为 Claude Code 底层的重度依赖。与此同时,早期积累的技术债也开始集中暴露。
在这种背景下,Jarred Sumner 决定借助 Claude Code,把整个 Bun 从 Zig 迁移到内存更安全的 Rust。迁移完成前,Bun 现有全部测试用例在 CI 中 100% 通过;合并后出现了 19 个回归问题,文中称这些问题目前已经全部修复。Rust 版本已在 6 月随 Claude Code 上线。
另一组迁移案例:Python 代码库改写为 TypeScript
Anthropic Labs 联合负责人、Instagram 联合创始人 Mike Krieger 也给出了另一组案例。他在一个周末内,把一套 Python 代码库迁移成 16.5 万行 TypeScript,主体部分消耗约 2700 万 token。

按照文中的描述,这次迁移过程中使用了数百个智能体,并设置了 8 道关卡、3 轮对抗式评审,最后还进行了统一的一致性校验,将每一条命令输出与 Python 原版逐项对比,只要行为变化就按 bug 处理。
Mike Krieger 还让 Claude 自行设计了一套端到端测试,并连续运行了 4 个通宵,用于发现边角问题。
迁移背后的工程动因
报道提到,Mike Krieger 团队之所以推动迁移,是因为其内部工具需要以单个二进制形式交付给用户。原有 Python 工具链下,每个平台的编译耗时为 8 分钟,完整构建矩阵每次发布需要等待半小时。

迁移完成后,同样的编译过程缩短到 2 秒,二进制启动速度提升 6 倍,同时还退役了一整条部署流水线。
Anthropic总结的六步迁移框架
Anthropic 将这类大规模迁移的做法概括为一句话:不要修代码,而是修产出代码的 loop。

文中给出的原因包括:
- 迁移任务天然适合并行处理,几千个文件可以同时开工;
- 旧代码本身就是规范;
- 测试套件可以直接作为裁判;
- 一旦编译或测试失败,下一个待办项会自然暴露出来。
基于这一思路,Anthropic 给出了一套可复用的六步框架:先搭建裁判机制,编写规则手册,绘制依赖关系图,列出缺口清单;随后先做一次小规模试航,对规则进行压测,在扩展到上千个文件之前找出关键问题;再进入全量翻译阶段,运行“实现—评审—修复”的多智能体循环;最后完成编译、运行和逐项行为比对。
在整个过程中,规则并不是通过人工逐个补丁维护。按照文中的说法,每当评审发现一个错误,就会把对应约束补进规则手册,再对受影响的那批文件重新生成。

Anthropic 最后给出的建议是,选一个已经搁置很久的代码库,直接去问 Claude,它的迁移流程是什么样。
文中写道,4 年前这句话还像一句玩笑,如今已经变成可以执行的工程方案。过去开发者难以跨越的大规模迁移,如今被描述为一条等待清空的进度条。

