今日分析

AI 新闻里的变化、生意与判断。

009AI 编程 / 工程实践

GitHub 用 Copilot 重写 83 万行 Rust,重点在于它没让 Agent 一次写完

GitHub 把 Copilot 运行时从 TypeScript 迁到 Rust,生产代码达到 832,378 行。官方披露,AI Agent 写了大部分代码,项目由一名开发者主导数月完成,并通过 128 个 Pull Request 持续上线。

AI 生成示意图、非事件现场、非产品界面:展示 GitHub 公布的 Rust 迁移工作流和统计数据;数字来自 GitHub 文章,图中图标不对应具体软件界面。
点击图片放大
01

GitHub 做了一次很大的底层迁移

GitHub 9 月 16 日披露,Copilot 的 Agent 运行时已经从 TypeScript、Node.js 和 V8 迁到 Rust。这个运行时不只服务 Copilot CLI,还被 Copilot App、SDK、VS Code、Visual Studio、Copilot Code Review、Copilot Studio 以及 Office 相关产品共用。

到 8 月 21 日,生产 Rust 代码达到 832,378 行,Rust 单元测试 468,689 行,端到端 TypeScript 测试还有 174,675 行。GitHub 称,AI Agent 写了大部分代码;项目主要由一名开发者在数月内推动完成。

文章还称,迁移后运行时性能提升了多个数量级。这个结论来自 GitHub 自己的项目记录,文章没有给出一套可供外部复测的统一基准,不能把它直接当成所有 TypeScript 项目迁移 Rust 都会得到的结果。

02

它没有选择一次性重写再切流量

整个项目通过 128 个 Pull Request 合入主分支,边迁移边发布。最开始的两个 PR 先建立 Rust 工作区、工具链、代码检查、持续集成、构建流程和编码规则,再用没有 I/O、没有共享状态、已有测试的纯逻辑小组件试跑。

迁移顺序从底层往上走:先处理纯函数、内容过滤、Shell 工具和会话文件操作,再处理有状态的子系统、工具、钩子、模型客户端和 MCP,最后才碰耦合最多的会话编排。每个阶段都把接口、打包、测试和审查方式固定下来。

大型子系统也被拆开。MCP 支持用了七个专门的 PR,工具部分分成六段,临时互操作层随着 Rust 覆盖范围扩大逐步删除。这样做的好处很朴素:出问题时知道是哪一小段,修复后可以马上合回生产。

03

长时间运行,靠的是缓存和上下文回收

GitHub 记录的提示缓存命中率是 96.22%,新写入占 3.07%,全新输入只有 0.71%。Copilot 的 Agent 循环刻意保持系统提示、工具定义和已有对话的前缀稳定,让后续请求重复读取已经处理过的内容。

迁移期间,Copilot 自动压缩上下文 5,116 次;其中一次会话基础设施迁移的 PR 就压缩了 647 次。每次压缩都可能丢掉信息,能持续工作依赖摘要质量、子 Agent 分担和后续测试;上下文窗口并非无限记忆。

这些数字也解释了项目账怎么算。长任务的模型费用、工具调用、测试机时和人工审查都在持续发生;缓存降低一部分重复输入成本,却不能替代失败重跑和回归修复的预算。

04

开发者没有退场,只是换了工作位置

项目日志里有 31,247 条用户角色消息,其中包含技能指令、自动合并消息和子 Agent 流量,开发者自己输入或说出的约 2,600 条。1,130,921 次工具调用来自子 Agent,占全部工具调用的 61%。这些数不能理解成一个人完全放手。

GitHub 对开发者工作的描述是:检查结果、质疑技术决策、设质量门槛、处理例外、推动下一步。人负责界定问题、选择迁移顺序、判断异常和决定是否合并,Agent 负责大量代码转换、测试调用和中间操作。

这也是项目能持续数月的原因。每个 PR 都有可见的差异、测试和回滚位置;人的判断落在边界和验收上,代码细节则尽量交给 Agent 批量完成。

05

普通团队能学到什么

先选低耦合、已有测试、容易回滚的部分,做两三个完整的小试验,再扩大范围。不要先承诺“重写整个系统”,先确认构建、依赖、接口和验收都能被自动执行。

把每个切片变成一个可以独立审查的变更,记录模型版本、提示词、工具权限、测试结果和人工修改。发现回归就停在当前切片,修完再继续,不要让错误一路叠到最后。

GitHub 的案例不能证明一名开发者配几个 Agent 就能复制同样规模。它能证明一件更实用的事:当任务被拆小、验证做密、上线持续发生时,AI 可以把大规模迁移从长期重写项目变成一串可管理的工程变更。

后续 6—12 个月 · 待核查问题

接下来怎么看

接下来要看更多团队是否公开完整迁移账:代码变更量、测试与回滚次数、人工审查时长、模型和工具费用,以及上线后的缺陷率。若只有“几个月写完几十万行”的结果,没有这些过程数据,外界很难判断速度来自 Agent、架构重组,还是项目本身的特殊条件。

持续检查:AI 主导的迁移是否保留可回滚的小步;测试覆盖和缺陷率是否同步披露;缓存与上下文压缩是否影响成本;开发者审查时间是否随规模增长。

往期分析

OpenAI 开始公开模型失准,最麻烦的是它会自作主张

OpenAI 这次公开的重点,不在于证明模型已经失控,而在于承认异常行为可能在修复前就该留下记录。对使用 Agent 的团队,任务摘要、工具权限和外部写入都不能只当作普通文本。

Siri AI 终于能替你办事,但中国用户暂时用不了

这次 Siri 更新的分量,在于它开始替用户跨应用办事:读消息、找邮件、看屏幕,再写信、建日程或整理清单。可惜中国首发不在名单里,短期能不能用,先看监管和本地化进度。

小红书开源 Iris,榜单分数要连 Harness 一起看

这次发布最有价值的地方,是把模型和 Harness 拆开报分。做搜索 Agent 时,工具、上下文丢弃、重试和评分器都会改结果;只截一行最高分,信息不完整。

长任务 Agent 会忘事,先别急着换模型

模型窗口再大,也装不下无限的工具结果。能否把旧信息放到可检索的位置,压缩后找回目标,并在出错时继续执行,决定了长任务能不能交付。

GitHub 把营销工作塞进 Issue,Copilot 负责起草,人仍要签字

这篇文章最有用的一点,是把 Copilot 放回流程里看:它起草名称和邮件,Issue、标签、Actions 负责执行,负责人继续签字。流程写不清,换模型也不会自动变好。

Claude 被用于导弹软件,Anthropic 没有说明何时发现

封禁账号可以停止后续调用,却无法收回已经写出的代码。判断平台是否及时干预,需要知道首次异常请求、人工调查和封号之间隔了多久。

DeepSeek V4.1 Flash:长任务 Agent 的成本账

缓存压缩降低了长任务的资源负担,能否转化成利润仍取决于复用比例和交付质量。值得优先试点的,是输入重复度高、结果可核验、出错后能恢复的流程。

AI 客服降本 65% 的案例里,真正值得重算的是哪笔账

AI 客服的价值要以问题解决后的总成本衡量。重复咨询减少后,人工会更集中地处理复杂工单;能否减少重复来单、控制错误操作并持续维护业务规则,比自动处理率更影响利润。