GitHub用Copilot把自家运行时重写成83万行Rust

GitHub 工程师 Stephen Toub 9 月 16 日发文,复盘了一次由 Copilot 智能体主导的大规模重写:把 Copilot agent 的运行时从 TypeScript/Node.js 全量改写成 Rust。原有约 43 万行生产 TypeScript,最终变成 832,378 行生产 Rust,外加 46.8 万行 Rust 单元测试和 17.4 万行端到端测试。

工期从 5 月 12 日到 8 月 21 日,约 14.5 周。期间 128 个 PR 增量合入 main,一路持续发布,累计 135 个版本(100 个预发布、35 个稳定版),平均每天约 1.3 个。

大部分代码是模型写的,人管什么

Toub 给这次实践下的判断很直接:

“A project that would have taken a whole team of developers a year or two before agents was now completed primarily by a single developer, in only a few months.”

一个在智能体出现前需要一整支开发团队干一到两年的项目,现在主要由一名开发者在几个月内完成了。

主力模型集中在 Claude Opus 4.8、GPT-5.6 Sol 以及 Claude Haiku 系列;负责吞吐优化的子代理偏向 Opus 4.8 和 GPT-5.6 Sol。这里能看出一个信号:GitHub(微软旗下)自家这次生产级重写,主力用的是竞争对手 Anthropic 的模型,而不是清一色的 OpenAI。

人做的事被拆得很清楚。这位主导工程师的交互里,31% 花在”审查、测试和 CI”,17.4% 在”挑战技术决策”,15% 在”逼着把活干完整”。架构、设计取舍、最终合并的判断权,始终在人手里。模型负责把代码量堆出来,人负责把方向和验收扣住。

验证靠原有测试,翻车约五十处

这次重写没有另起一套验收标准,靠的是让已有的端到端测试持续对着新写的 Rust 代码跑,增量上线,让回归在小范围内暴露、早发现。过程里的几个工程数字也颇有参考价值:提示缓存命中率 96.22%,上下文压缩在各会话中触发了 5116 次。

翻车也如实记了。全程约 50 多个已知问题,分成五类:迁移不完整、状态与生命周期问题、行为契约不一致、宿主边界问题、以及测试预期本身写错了。绝大多数在进稳定版之前修掉。最后一类尤其要提醒做迁移的人:当你拿旧测试去卡新实现时,有时候错的是那条测试,不是新代码。

对国内团队意味着什么

这类”用 AI 大改自家核心组件”的案例,比跑分榜更能说明当下编程智能体的真实边界。可以直接借鉴的有三条:一是别指望一次性重写,128 个 PR 增量合入、每天发好几个版本,靠的是持续集成把风险摊薄;二是验收锚点要提前定死,这次全靠原有 E2E 测试当标尺,没有这套标尺,“模型写得对不对”就无从判断;三是人力从写代码转向了审查、决策和查漏,一个人能盯住的重写规模因此被放大了一个量级。

需要保留的一点是,架构收益(进程内嵌入、内存开销更低、启动更快)在原文里只有定性描述,没有给出内存、延迟、吞吐的前后对比数字。重写换来了多少实际性能,目前无法从这篇复盘里核实。TypeScript 到 Rust 这条路对多数团队也不是标配——它成立的前提,是有一套跑得住的测试和愿意每天发布的流程。

参考来源:CocoLoop、GitHub Blog(Stephen Toub);以官方复盘核验 83.2 万行、128 个 PR、14.5 周、96.22% 缓存命中率与约 50 处已知问题等口径。