最近,我在评审一些我只能称之为“氛围感需求”(Vibe-written Specs)的设计文档时浪费了大量时间。这些需求文档表面上看起来逻辑连贯、头头是道,但仔细推敲后就会发现,几乎没有任何具体可落地的实质内容。在现有的技术生态中,这类文档根本无法直接应用。
需要澄清的是,我并不排斥“氛围感编程”(Vibe Coding)。事实上,我自己也经常这么做。当我们需要写一个一次性的脚本、一个用完即丢的数据可视化、一个临时的解析器,或者是一份以后绝对没人需要去维护的文档时,开发速度往往比代码的严谨性更为关键。然而,一旦项目进入需要“长期维护”的阶段,这一公式就完全不成立了。
刚刚过去的这个周末,意外地向我展示了“氛围感编程”真正大放异彩的场景。在周六做日常扫除时,我不小心碰倒了一个木制的立方体几何拼图——这是一个由25个完全相同的五连立方体(Pentacubes)组成的拼图,玩家需要将它们完美拼装成一个5×5×5的正方体。
我尝试手动还原了很久,但最终失败了(我将其归咎于当时正席卷欧洲的热浪严重降低了我的舒适度与思考效率)。这种挫败感极大地激发了我的工程强迫症,于是到了周日早上,我决定使用AI来解决这个问题。我意识到:这个拼图规则清晰、状态空间有限、问题绝对有解,而且计算机非常擅长这种暴力搜索。
于是,我打开Go语言编辑器,开始进行氛围感编程。这个五连立方体的单件形状其实很简单,是一个平面的 pentacube。起初,真正的挑战并不是算法本身,而是数据表示方式,即领域特定语言(DSL)的构建。光是向ChatGPT解释这个拼图的规则,就花了我好几轮迭代。我们必须先确立好坐标系规范、切片表示法、合法的方块状态、旋转语义,并最终为每个方块建立一个标注系统。
一旦模型理解了这些底层框架并稳定下来,剩下的部分就自然而然地水到渠成了:生成旋转变换、归一化方向、递归放置方块,以及在发生冲突时进行回溯。这是非常经典的暴力搜索算法。
我原本以为最终肯定需要进行深度优化,比如引入剪枝算法、位板(bitboards)、预计算放置位置,甚至引入 Donald Knuth 的 Algorithm X(精确覆盖算法)。然而,现代硬件的效率高得令人难以置信。这个天真的递归求解器找解的速度非常快,以至于优化不仅变得完全没有必要,反而成了一种纯粹满足工程好奇心的多余工作。在编码过程中,这个项目甚至意外地顺便变成了一个通用的单五连立方体求解器。
【AgentUpdate 深度解析】 “氛围感编程”(Vibe Coding)的本质是人类将精细的逻辑实现托付给 LLM,自己则转变为“系统架构师”与“意图表达者”。这种范式的崛起,正深刻重塑着 AI Agent 的生态。在传统软件工程中,可维护性与架构严谨性是第一天条;但在 AI 时代,随着 Agent 执行成本的下降与推理能力的跃升,软件的寿命可能被极度缩短——许多代码甚至在运行一次后即可废弃。这使得类似 Cursor 和 Devin 这样的 AI Agent 能够绕过繁琐的代码工程规范,通过极速的“试错-反馈”循环解决即时问题。横向对比来看,未来 AI Agent 生态的分化将愈发明显:一端是处理高并发、高可用核心业务的“强规范/重架构”工程,仍需依赖严格的 MCP(模型上下文协议)和确定性流控;另一端则是长尾的、即用即弃的“氛围感场景”,AI Agent 将在此处大放异彩,彻底解放人类的创造力瓶颈。