支撑GitHub Copilot及微软众多产品的软件引擎,现已完全迁移至Rust语言,其中大部分移植工作由AI智能体完成。

此次迁移工程历时14.5周,分模块逐步更新运行时,共发布135个版本,平均每天开启约1.3个移植拉取请求(PR)。核心移植阶段消耗了约12万美元的AI Token成本,并耗费开发人员约三周时间。期间,AI智能体将43万行TypeScript代码转换为80万行生产级Rust代码。为保持过程简洁,团队仅针对具体模块进行逐一对换,未对运行时架构进行优化,留待后续处理。

尽管管理人员需应对代码中出现的大量回归问题(Regressions),凸显了AI在理解Rust语言方面的持续挑战,但Rust的性能表现并未让人失望。

基准测试显示,在使用共享客户端和100个并发管道完成1,000次单轮会话生命周期的场景下,原始TypeScript实现每秒完成7.55次生命周期,而进程内运行的Rust版本每秒可完成120次,实现了15.9倍的性能提升。在内存占用方面,处理10个客户端批量任务时,TypeScript版本消耗1,383 MB内存,Rust重写版本仅消耗126 MB,且无需像TypeScript那样生成外部后台进程。

从VS Code到Office:Copilot运行时的广泛渗透

Copilot运行时不仅支撑GitHub Copilot CLI、应用、SDK及云代理,还深入VS Code、Visual Studio、Excel、Outlook、PowerPoint及无数微软云服务中。该运行时最初基于TypeScript和Node.js构建,虽适合快速开发,但在大规模应用的启动速度和服务器密度上表现不佳。

微软杰出工程师Stephen Toub指出,项目需求强调通过C ABI嵌入、低启动与稳态开销以及可预测的资源使用,Rust使这些目标成为可能。项目采用“用Copilot重写Copilot”策略,调用GPT-5.6 Sol和Claude Opus 4.8等多种大语言模型,根据各模型优势执行不同任务。

Toub评估认为,若由人工完成此项目,可能需要数年时间和数百万美元成本。他观察到智能体表现出令人惊讶的涌现行为:它们花费大量时间收集信息而非直接编写代码,工作模式更像是一种迭代调查——检查状态、形成假设、针对性修改、清洗并重试。此外,会话间频繁交互,包括子会话间的通信协调。例如,在移植超过30,000行的session.ts文件时,智能体耗时25小时,前56分钟用于阅读文档和122次工具调用,随后生成15个子会话相互通信以协调任务。

编译器是老师,而非神谕

Rust因性能优势成为重写应用的热门选择。此前,Bun创始人Jarred Sumner将Anthropic拥有的JavaScript运行时移植至Rust,几乎完全依赖Claude智能体,Token成本达16.5万美元。截至7月30日,该实验性版本在Linux x64 glibc环境下通过了99.8%的现有测试。

然而,Toub也揭示了使用Rust的潜在风险。对于LLM和部分程序员而言,存在“代码能编译即有效”的误区。项目中出现了数十处代码回归,即原本功能正常但在更新后失效的情况。编译器无法判断函数顺序、任务成本、未书面说明的需求或内部逻辑自洽性。

在蒙特利尔举行的RustConf大会上,顾问Lisa Crossman警告勿将编译器视为判断代码有效的“神谕”。她指出:“Rust阻止了智能体编写内存不安全的代码,但并未阻止其正确编写错误的程序。”明智的开发者将编译器视为老师,通过解读错误深化理解;而LLM往往将其当作黑盒,通过低效变通方法尝试通过审查。Toub强调,“只要编译通过就是正确的”这一观点毫无用处,编译器批准的回归可能源于语义不明、分支漂移或未移植功能缺失等行为差异。