OpenAI Codex 编写了一个完整的 16 位 x86 汇编语言 Asteroids 风格 DOS 游戏,交付了 18 个源文件和约 2,500 行代码,且没有任何一行由人类编写的汇编代码。这项实验表明,AI 可以引导完整的软件生命周期——从规划到调试——而无需程序员直接干预,这已经超越了通常的“代码补全”演示。

为什么这项测试意义重大

大多数公开的 AI 编程展示仅停留在微小的代码片段或简单的实用程序上。为了探测上限,该实验迫使 Codex 进入了可以想象的最受限环境:DOS 上的 16 位 x86 汇编语言,没有游戏引擎、图形库或高级语言带来的便利。目标是观察 AI 是否不仅能生成代码,还能管理周围的工程任务。

角色是如何分工的

人类的职责仅限于三个动作:

  • 定义整体项目目标(一款 Asteroids 风格的射击游戏)。
  • 回答任何出现的与游戏玩法相关的问题。
  • 对每个构建版本进行试玩并报告观察到的 Bug。

Codex 的职责涵盖了其他所有内容:

  • 起草项目计划和架构。
  • 编写汇编源文件。
  • 调试、重构和重组代码。
  • 维护 Git 仓库,包括提交(commit)和分支管理。
  • 构建二进制文件并在 DOS 模拟器中运行。

人类从未输入过任何一条汇编指令,从未调用过编译器,也从未在开发过程中启动过游戏。交互仅限于描述 Bug 症状;AI 会自行定位并修复根本原因。

迭代工作流

每个周期都以 Codex 提出一个里程碑开始(例如,“实现玩家飞船移动”)。然后它会生成相应的源文件,进行提交,构建可执行文件,并将可运行的版本交给测试人员。Codex 会分析症状,在代码库中进行追踪,并在无需进一步人类指导的情况下发布补丁。

最终产品包含的内容

  • 18 个汇编源文件,按常规仓库结构组织。
  • 约 2,500 行汇编代码,涵盖了输入处理、精灵绘制、碰撞检测和高分系统。
  • 一个可玩的 DOS 可执行文件,可在标准 DOS 环境中运行并模拟经典的 Asteroids 玩法。
  • 零人类编写的汇编代码,证实了 AI 处理了所有底层编程任务。

影响与意义

如果 AI 能够自主引导一个项目从构思到生成可运行的二进制文件,那么程序员作为代码库主要编排者的传统角色将会发生转变。公司可以缩短在样板代码设置、文档编写和常规调试上花费的时间,从而让工程师专注于设计和产品策略。

该实验也凸显了局限性。测试环境是刻意设计的狭窄环境:一个具有明确机制的单人 DOS 游戏。将这种方法扩展到具有外部依赖、安全约束或性能关键代码路径的大型多模块系统仍未得到证实。此外,人类测试员仍然充当了最终的质量关卡;如果没有这种监督,一个未被察觉的逻辑错误可能会溜过去。

反方观点与开放性问题

  • 可靠性:汇编语言编程是不容出错的;一个简单的“差一错误”(off-by-one error)就可能导致整个程序崩溃。Codex 修复了它看到的 Bug,但它可能会错过仅在压力测试下才会出现的微妙时序问题。
  • 可维护性:在没有人类风格指南的情况下生成的代码,对于未来的开发者来说可能更难阅读或扩展,特别是如果 AI 的命名规范与团队标准不符时。
  • 知识产权:当 AI 编写代码时,谁拥有这些代码?目前的许可框架假设人类是作者,这为 AI 生成的产物留下了灰色地带。

下一步值得关注的方向

  • 更广泛的基准测试:将同样自主的工作流应用于网络应用、移动应用或现代 C/C++ 项目,将测试该方法是否能扩展到复古风格游戏之外。
  • 工具集成:将 Codex 嵌入 CI/CD 流水线,不仅可以实现代码生成,还可以实现测试、安全扫描和部署的自动化。
  • 政策演进:随着 AI 生成代码的激增,法律和公司政策需要解决所有权、责任归属和合规性问题。

核心结论很明确:对于定义明确、边界清晰的项目,AI 现在可以充当独立的软件工程师,在无需人工手动编写代码的情况下,交付功能完备的底层代码。这种能力能否重塑主流开发模式,取决于生态系统解决可靠性、可维护性以及法律问题的速度。