微软干了一件事儿,听起来像套娃:用 AI 重写了撑起 AI 产品的运行时。GitHub Copilot 的运行时光是被全部搬到了 Rust——不是工程师手写的,是 AI agents 干的,整个过程就花了 12 万美元的 token 钱加一个工程师三周时间。
这个运行时比大多数用户想象得要命脉。它支撑着 GitHub Copilot CLI、Copilot App、SDK 和 Copilot 云 Agent,还会出现在 VS Code、Visual Studio、Excel、Outlook、PowerPoint 以及一堆微软云服务里。原本它用 TypeScript 配 Node.js,好处是开发快,但规模化之后,启动速度和服务器密度都成了问题。

微软杰出工程师 Stephen Toub 把整个过程写成了长文。数据很直观:agents 把 43 万行 TypeScript 变成了 80 万行生产级 Rust,跨越 135 个 release、14.5 周,平均每天开 1.3 个移植用的 PR。成本大头是 token——约 12 万美元——外加开发者三周的人工。Toub 自己也说了,这活儿要是纯手工,得花几年、砸几百万美元。

性能上的收益是实打实的。一个基准测试里,原来 TypeScript 实现每秒处理 7.55 个单轮会话生命周期,Rust 进程内跑到了 120 个,特定负载下 15.9 倍加速。内存更夸张:10 客户端的一批 agents,TypeScript 吃掉 1383MB,Rust 只要 126MB——因为 Rust 版本全程在进程内完成,不用像 TypeScript 那样为补全额外拉后台子进程。
有意思的是,这活儿本身就在给"AI 编程"祛魅。Toub 观察到 agents 花在收集信息上的时间远超写代码本身。"大众印象里 AI 疯狂吐代码的画面几乎是反的;在这个规模上,工作看起来更像迭代式调查——检查当前状态、形成假设、做一处针对性修改,然后循环。"

最棘手的文件是 session.ts,3 万多行 TypeScript,摸得到运行时的方方面面。移植它花了 25 个小时,光是读文档就占了 56 分钟、做了 122 次工具调用来澄清需求,然后 spawn 了 15 个子会话,每个都有自己的 worktree 和 agent,开始互相通信。一个内置编排技能会找到所有活跃会话,给任务重叠的发消息请求协作。

但这次移植也暴露了用 AI 写 Rust 的坑。整个过程中出现了几十个回归(regression)——原来正常的东西改完不工作了。Toub 的总结很到位:"如果编译通过就代表正确,那这句话只配当笑话听。"编译器根本不知道函数顺序对不对、任务代价是否可接受、满不满足开发者的隐性需求。上周蒙特利尔 RustConf 上,顾问 Lisa Crossman 警告说别把编译器当"神谕":"Rust 阻止 agent 写内存不安全的代码,但不阻止它写错误却正确的程序。"
绕不开的对照物是 Bun。Bun 的作者 Jarred Sumner 最近几乎全用 Claude agents 把 Anthropic 那个 JS 运行时从 53.5 万行 Zig 搬到了 Rust,花了 16.5 万美元 token,Linux x64 glibc 上已通过 99.8% 的 Bun 既有测试——但 Zig 创始人 Andrew Kelley 至今管人家代码叫"没人审的垃圾"(unreviewed slop)。算上这次 Copilot runtime,"AI 大规模重写"正在成为一类可验证的工程现实:便宜、够快,但验收标准得靠人肉盯住"编译通过"之外的语义正确性。
来源: