4人28天,85%AI代码:揭秘Sora Android背后的“凡尔赛”开发法

刚看了 OpenAI 发的那篇《How we used Codex to build Sora for Android in 28 days》https://openai.com/index/shipping-sora-for-android-with-codex/ 的“凡尔赛”文章

整个 Sora 的安卓客户端 App 大约 85% 的代码是 AI 写的。发布首日,用户 24 小时内生成了超过 100 万条视频,并且质量很稳定,无崩溃率 99.9%

对于这样的结果肯定有人质疑有人觉得程序员要完。说说我看完的感觉,如果打个比方,就是几个特种兵配上了最先进的武器,自然所向披靡。所以先不用神化这个结果,然后就算我们不是特种兵,一样可以从这个结果中去学习借鉴到有价值的结果。

《人月神话》作者 Fred Brooks 说过一句软件工程中被反复验证的名言:“向一个延期的软件项目增加人力,只会让它延期得更厉害”。

因为增加更多的工程师往往会因为增加了沟通成本、任务碎片化和整合成本,反而降低效率。

那往团队中加 AI 呢?

取决于团队成员驾驭 AI 的能力。我们有句古话叫:“韩信带兵多多益善”,如果团队成员是韩信,那么 AI Agents 越多越好。OpenAI 安卓团队显然是精锐,只有 4 个人,就像一队特种兵,每个人配备了各种机器人辅助。


那么他们怎么做的呢?

1. 架构先行:人先搭好架子,再让 AI 来填空

这个架子怎么搭?

团队先自己定义了 App 的整体架构:模块化方案、依赖注入、导航结构、认证流程、基础网络层。然后手写了几个有代表性的功能,作为范本。

关键一步: 他们写了大量的 AGENTS.md 文件,相当于给 AI 写的新人手册。比如里面会写:每次提交前必须跑 detektFix 检查格式,CI 会卡这个。

这样一来,每次启动新的 Codex session,它都能快速读到这些规范。就像给新员工发一本内部 wiki,减少重复解释的成本。

团队总结了一句话:我们不需要告诉 Codex 怎么写代码,我们需要告诉它在我们团队什么才算正确。 这是微妙但重要的区别。

2. 先规划再写代码

一开始他们也试过偷懒,直接扔一句“这是功能需求,这是相关文件,你去实现”。结果代码能跑,但歪得厉害,完全不符合架构预期。

后来他们改了流程。任何复杂功能,第一步不是让 AI 写代码,而是让 AI 先理解系统。比如让它读一组相关文件,总结数据是怎么从 API 流到 Repository 再到 ViewModel 最后到 UI 的。然后人来纠正它的理解。

理解对了,再让 AI 出一份 实现计划,像个迷你设计文档。哪些文件要改,要引入什么新状态,逻辑怎么流转。人确认计划没问题,AI 才开始动手。

这个规划环节看起来慢了,其实省了大量返工。更重要的是,当你知道 AI 的计划是什么,review 它的代码就容易多了。你是在检查执行是否符合计划,而不是对着一堆 diff 发呆。

  • 一个小技巧: 对于特别长的任务,让 AI 把计划保存到文件里。这样换一个 session 也能继续。

当多个 Codex 任务同时跑起来,整个开发体验发生了质变。感觉不像在用工具,更像在管理一个团队。

一个任务在做播放器优化,另一个在写搜索功能,第三个在处理错误逻辑,第四个在补测试。它们各自推进,隔一段时间就来汇报:我这个模块规划好了,你看看行不行?或者直接甩过来一个大 diff。

工程师的工作从写代码变成了做决策和给反馈。 瓶颈不再是敲代码多快,而是大脑审查验证代码的速度多快。

再次应验了《人月神话》的话,你不仅不能无限增加人力,也不能无限增加 Agent。

3. 最好的跨平台框架是 AI Agent

还有一个有趣的实践:跨平台开发的新范式。

Sora 已经有 iOS 版本了。团队做 Android 时,直接把 iOS 代码库也挂进 Codex 的环境里。然后告诉 Codex:参考 iOS 的代码实现,再看看我们 Android 的架构,你来生成相应的 Kotlin 代码。

这就是为什么文章中开玩笑说:忘掉 React Native 和 Flutter 吧,未来的跨平台框架就是 Codex。

这句话半认真半玩笑。因为应用逻辑是可移植的。数据模型、网络请求、校验规则,用 Swift 写和用 Kotlin 写,本质是同一套东西。AI 擅长的恰恰是这种翻译工作,给它足够的上下文,它就能在语言之间无损转换。


所以回过头来看,为什么说不能过度神化呢?

因为他们虽然只 4 个人,但每个人都是“韩信”那样善于带团队的角色,用起 Agent 来得心应手。但即使如此,也做不到“多多益善”,毕竟还是需要人去分配任务验证结果,人是平静。另外他们已经有了 iOS 代码,所以很多逻辑可以共用,只需要 AI 去“翻译”。

但还是有很多可以学习的地方:

  • 先设计架构再去让 AI 填空: 这样代码更容易维护,也更好的保证质量。

  • 先规划再写代码: 让 AI 充分理解上下文再动手。很多人吐槽 Codex 太慢,但我有时候就怕 Agent 太快乱来,宁可多等会,让它多了解上下文,这样一次成功,否则返工起来时间成本更高。

  • 给 AI 好的参考: 让它能照葫芦画瓢。开始的时候先花点时间把最佳实践沉淀下来,后续让 AI 去参考这些最佳实践,生成结果就会好很多。如果有其他语言的实现,让它去“翻译”也会事半功倍。

能做好这些才能用好 AI 辅助开发。 AI 辅助开发不是让开发的标准降低了,反而是提高了标准。

Coding Agent 擅长完成一个小的具体任务,但软件工程不是一个小的任务,它是由无数动态变化的小任务组成的。需要人去分解去验证。

所以未来软件工程师的核心能力,不是写代码快,而是两件事:对系统的深度理解,以及和 AI 长期协作的能力。

代码在变得廉价,但品味在变得昂贵。 那些能定义什么是正确、什么是优雅、什么是面向未来的人,会越来越稀缺。

AI 把搬砖的活儿接走了,但画图纸的活儿还是你的。