AI写了80万行Rust,最值得学的却是它花十倍精力读代码

GitHub用AI Agent把Copilot核心运行时迁移成超过80万行Rust,项目主要由一名开发者推进,听起来像"代码生成速度"的胜利。但最值得开发团队带走的结论恰好相反:Agent在读文件、搜索和诊断上的活动约是编辑的十倍。大规模AI开发的瓶颈,不是把语法写出来,而是理解移动中的系统并证明行为没有变。

发生了什么

GitHub 9月16日发布了长篇工程复盘。Copilot CLI、Copilot应用和SDK共用的Agent运行时,原先基于TypeScript、Node.js与V8。团队用Copilot应用和CLI完成迁移,最终在8月21日达到832,378行生产Rust、468,689行Rust单元测试和174,675行端到端TypeScript测试;独立SDK仓库另有约13万行多语言端到端测试。

项目历时约十四个半星期,AI写了大部分代码,经128个拉取请求进入主干。期间发布135个CLI版本,其中100个预发布、35个稳定版。GitHub称,过去若按传统方式估算,可能需要一个团队一到两年;这次主要由一名开发者在数月内完成。不过这是项目方复盘,不是受控实验,不能把工期差异简单归因于模型。

一手来源:GitHub工程文章

技术策略:原地、原子、持续发布

团队没有在长分支上做"大爆炸重写",也没有长期保留两套可切换实现。每个拉取请求只迁移一个组件:用薄适配层从TypeScript调用Rust,同时删除旧实现。所有现有端到端测试立刻跑在新组件上,主干始终可发布。

flowchart LR A[选择边界清晰组件] --> B[Agent阅读代码与测试] B --> C[建立Rust实现与适配层] C --> D[删除对应旧实现] D --> E[单元与端到端验证] E --> F{行为一致?} F -- 否 --> B F -- 是 --> G[预发布小流量验证] G --> H[稳定发布] H --> A

原地迁移的价值,是让每次变化足够小,问题能和最近版本关联。难点则在边界:会话编排拥有可变状态、双向回调并穿过许多子系统,无法轻易同时跑两套实现再比较。越是耦合的组件,越需要先拆边界、补测试,而不是让Agent一次吞下。

数据揭示了Agent真正做什么

日志里,Agent调用PowerShell约63万次、查看文件约59万次、使用rg搜索约28万次;相较编辑工具,读取、搜索和诊断活动约多一个数量级。Git检查约30万次,pnpm test约1.38万次,cargo test约8437次。这个结构比"生成了多少行"更能说明生产开发:Agent不断确认当前状态、分支漂移、依赖关系和测试结果。

性能收益也并非只来自换语言。官方测试中,"客户端、会话、单轮交互"从5.25秒降到进程内Rust的292毫秒;恢复32轮会话从5.64秒降到264毫秒。不同部署路径、硬件和测量条件会影响数字,不能当作Rust对Node.js的通用倍数。

回归没有消失

截至9月14日,团队追踪并修复了数十个已知迁移回归,包括不完整迁移、状态与生命周期、行为契约不一致、宿主边界和错误测试神谕。有的实现深拷贝260MB事件日志,有的在持续事件流中保留异步句柄直到V8堆耗尽。AI减少了搬运成本,但跨语言边界、并发和资源所有权仍需工程判断。

"测试神谕"是判断输出对不对的规则。旧测试如果把历史Bug当成正确行为,新实现越忠实,问题越会被永久保留;旧测试只看返回值,也可能漏掉时序、内存与取消语义。迁移前应把协议兼容、错误类型、日志副作用、资源释放和并发顺序写成契约,再让不同层级测试分别守住。

我的判断

这不是"一个人替代一个团队"的通用证明,而是"强测试资产把Agent产能变成可控变更"的案例。 代码行数是最耀眼也最不可靠的指标;主干可发布、回归可定位、性能可比较,才是迁移能落地的原因。

它也给管理者一个提醒:不要按Agent生成量规划项目。应按可验证切片数量规划,给每个切片明确的旧行为、测试神谕、性能基线和回滚路径。没有这些资产,生成越快,未被理解的变化越多。

适用边界与行动建议

这种方式适合边界可以逐步隔离、已有端到端测试、能频繁发布的系统。不适合缺乏观测、数据迁移不可逆、协议含大量隐式兼容行为的核心系统。安全或财务代码还需要领域专家复核,不能仅依赖Agent互审。

要试点,可先挑解析器、序列化、格式化或纯计算模块;冻结输入输出样例;让Agent先解释现有行为,再实现新版本;同时运行基准、属性测试和模糊测试;预发布后观察真实错误渠道。目标不是一周写十万行,而是一周完成一个可证明等价的切片。

团队还应保存每个切片的决策记录:为何迁移、哪些行为刻意改变、哪些兼容问题暂缓、发现过哪些回归。Agent会话可以加速调查,却不应成为唯一知识库;几个月后处理线上事故的人,需要读得懂稳定的文档和提交历史。

如果让AI迁移你的核心系统,你会先挑哪类"纯逻辑组件"试水?

关注「蜗牛聊AI」,一起看懂技术变化背后的真正机会。


本文首发于 java4u.cn,转载请注明出处。

相关推荐
天云数据1 小时前
OPC保姆级指南:被优化的第四个月,我在图书馆里想好了开家公司
人工智能
知几蜗牛1 小时前
语音AI为什么总抢话?用VAD和打断机制做对实时对话
人工智能
fellow991 小时前
V100 的上下文极限:vLLM 卡 131K,llama.cpp 冲 230K
人工智能·自然语言处理
AgentMaster1 小时前
数据资产化落地难题:5款数据中台系统架构对比与实施记录
大数据·人工智能·算法
AIGCmagic社区1 小时前
LightNav-0:激发VLM空间智能,迈向通用具身导航
人工智能·具身智能·ai多模态
知几蜗牛1 小时前
AI每次提交都查漏洞,真正的升级是把证明链放进评审
人工智能
7177771 小时前
GitHub 企业国产替代选型:Gitee 与主流平台对比及迁移要点
人工智能·gitee
AIGCmagic社区1 小时前
不训练机器人权重,Pigey把π0.5真机成功率从16.7%拉到97.3%
人工智能·aigc·具身智能·ai多模态
AIGCmagic社区1 小时前
大模型要不要改机器人的每一步?GPT-6 Astra只动了14.4%
人工智能·具身智能·ai多模态