微软用AI代理将Copilot运行时移植到Rust,耗资12万美元
微软近日完成了一项重大工程:将支撑GitHub Copilot等产品的Copilot运行时从TypeScript移植到Rust,大部分工作由AI代理完成。整个项目花费约12万美元的AI token费用和开发者三周时间,最终将43万行TypeScript代码转换为80万行Rust代码。这一迁移带来了显著的性能提升,在特定基准测试中实现了15.9倍的提速。
微软已将Copilot运行时全部重写为Rust,这一过程主要由AI代理执行,而非人工。该运行时支撑着GitHub Copilot CLI、Copilot应用、SDK及云代理,并广泛出现在VS Code、Visual Studio、Excel、Outlook等产品中。此前它基于TypeScript和Node.js构建,虽然利于快速开发,但在大型部署中启动速度和服务器密度表现不佳。
迁移成本约12万美元的AI token费用,外加开发者约三周时间。项目按模块逐步推进,耗时14.5周,涉及135个以上的版本,平均每天开启约1.3个移植拉取请求。最终将43万行TypeScript转换成80万行生产级Rust代码。为避免复杂性,移植仅替换单个模块,未优化整体结构,这留作后续工作。
性能提升显著。在一个基准测试中,模拟1000个单轮会话生命周期,原TypeScript版本每秒完成7.55个,而Rust版本达到每秒120个,提速15.9倍。内存方面,10客户端代理批次在TypeScript下消耗1383 MB,Rust版本仅需126 MB,且全程在进程内运行,无需外部后台进程。
微软杰出工程师Stephen Toub在博客中详述了这一过程。项目使用Copilot自身来重写Copilot,调用了多个LLM(包括GPT-5.6 Sol和Claude Opus 4.8)以发挥各自优势。Toub评价代理整体表现成功,否则该工作可能耗时数年、花费数百万。他还发现代理行为出乎意料:它们花在信息收集上的时间远超写代码本身,且会话间频繁交互。最棘手的session.ts文件超3万行,移植会话耗时25小时,先花56分钟阅读文档并调用122次工具,随后派生出15个子会话相互协作。
不过,Rust也带来挑战。项目遇到数十个回归问题——即更新后原本正常的功能失效。编译器无法判断函数顺序、任务成本、未明说的需求或内部一致性。Toub提醒,LLM和懒惰的程序员都可能误以为代码通过编译就是有效的Rust。
本文由程序自动抓取公开报道,经 AI 筛选与改写生成,未经人工逐条核实,事实以原文为准。