## 代码生成幻觉:从规范入手
最近关于“代理编程”的炒作声称能够*仅*从规范生成代码,承诺一种转变,工程师将管理代理而不是直接编写代码。然而,这基于两个错误的假设。首先,规范本质上比它们产生的代码更简单——这是一个错误的前提,因为精确的规范往往在细节上*变得*像代码一样。OpenAI 的 Symphony 项目,被吹捧为由规范驱动,就证明了这一点,其中包含伪代码、数据库模式,甚至 AI 的“作弊表”——模糊了规范和实现之间的界限。
其次,认为规范工作自动比编码更有思考是错误的。当前加速交付的压力常常导致仓促、考虑不周的规范——本质上是缺乏连贯性的“AI 生成的垃圾”。
试图从这些有缺陷的规范中自动生成代码是明显失败的。尝试使用 AI 代理构建 Symphony 本身导致了错误,最终,无果而终。这与 YAML 等复杂规范的问题相呼应,即使有详细的文档,完全符合仍然难以捉摸。最终,你无法捷径工程所需的精确度;试图这样做只会转移劳动,并产生不可靠的结果。规范是有价值的,但并非作为节省时间的工具——它们需要仔细的思考,而这在当今的技术环境中正日益受到损害。
## Uxn CPU 实现与 AI 辅助开发
该项目详细介绍了为 Uxn CPU 创建 x86-64 汇编实现的過程,Uxn 是一种用于 Hundred Rabbits 生态系统中的虚构 CPU。作者之前已经创建了快速的 Rust 和 ARM64 汇编实现,并利用大型语言模型(特别是 Anthropic 的 Claude 和 Opus)将汇编代码移植到 x86-64 平台。
最初,Claude 自动生成了一个可用的,但并不完美的 x86-64 实现,成本约为 29 美元。虽然需要大量人工清理——解决诸如寄存器滥用和低效指令等问题——但它提供了一个关键的起点,大大加速了开发。随后,通过模糊测试发现了一个错误,需要进一步调试,Opus 4.6 展示了令人印象深刻的调试能力,甚至识别出一个微妙的越界写入。
这个过程凸显了综合测试(单元测试和模糊测试)对于 AI 辅助编码的价值。虽然作者对完全依赖 AI 生成的代码仍然持谨慎态度,但他们承认它有潜力降低开发门槛并能够处理更复杂的任务。最终实现现在已经合并并发布,展示了人类和 AI 工程之间成功但细致的合作。