Faulty Towers, vibe sickness, and the vibe bobsled
Faulty Towers, vibe sickness, and the vibe bobsled
故障的塔楼、“氛围病”与“氛围雪橇”
By Christine Lemmer-Webber on Fri 17 July 2026 作者:Christine Lemmer-Webber,2026年7月17日,周五
I know. As if what the world needed was yet another blogpost about LLMs and AI tech. Yet there is a pile of things which have been on my mind, and I haven’t seen them laid out elsewhere in the way I’m going to write them, and so here we go. 我知道,这个世界似乎并不需要又一篇关于大语言模型(LLM)和人工智能技术的博客文章。然而,我心中积压了许多想法,且尚未在其他地方看到有人以我打算采用的方式将其阐述出来,所以,我们开始吧。
I still don’t use genAI to write my articles, fwiw. Here or anywhere else. These rambly words are my own. 顺便提一下,我依然不使用生成式人工智能来撰写我的文章,无论是在这里还是其他任何地方。这些零散的文字都是我自己的原创。
The tower tilts
倾斜的塔楼
I read The Tower Keeps Rising recently, and it has stuck in my mind. 我最近读了《塔楼持续升高》(The Tower Keeps Rising)这篇文章,它一直萦绕在我的脑海中。
The piece is an observation, and according to Armin on lobste.rs, it is not an advocacy for the state of affairs (though by running a vibecoding company, Armin is part of advancing this direction): 这篇文章是对现状的观察。据 Armin 在 lobste.rs 上的说法,这并非是对这种现状的倡导(尽管 Armin 经营着一家“氛围编程”公司,他本身就是推动这一方向的一份子):
For context: I’m the author. I intentionally did not make a judgement if this is a good or bad thing, or if this is going to continue working. It’s primarily an observation that with agents you can continue to make progress even when people on the team maneuvered themselves into situations where previously they would have needed to talk to each other. “背景说明:我就是作者。我特意没有判断这是好事还是坏事,也没有判断它是否能持续奏效。这主要是一个观察结果:有了智能体(agents),即使团队成员陷入了以往需要通过沟通才能解决的困境,项目依然能够继续推进。”
The summary of Armin’s post is effectively that vibecoded systems keep piling code on top of code, but in many systems things seem to keep building, but the abstractions keep piling on, but eventually no human can understand the codebase. But this is a new way of operating, because LLMs can “explain” a part of the codebase that no human can make sense of, and so continue building. Armin 文章的总结实际上是:氛围编程(vibecoded)系统不断地在代码之上堆叠代码。在许多系统中,事物似乎在持续构建,抽象层不断累积,最终导致没有任何人类能够理解整个代码库。但这是一种新的运作方式,因为大语言模型可以“解释”那些人类无法理解的代码库部分,从而继续构建。
Even if such systems continue to work, I find two things: 1) that now advocates for this state of affairs have pivoted into acknowledging that this is the end state of their systems and 2) they seem to be accepting it as the way forward. 即使这类系统能持续运行,我还是发现了两点:1)现在,这种现状的倡导者们已经转而承认,这就是他们系统的最终状态;2)他们似乎正在接受这种状态,并将其视为未来的发展方向。
Regarding the first, I think it’s very important to note that this is a shift. Simon Willison, probably the best pro-genAI writer on the internet (sometimes, I think, giving cover for a lot of weaker writers, but is that Simon’s fault?), at one point coined the term “agentic engineering” and was very clear to draw a line in the sand between agentic engineering and vibecoding: 关于第一点,我认为必须指出这是一个转变。Simon Willison 可能是互联网上最优秀的生成式人工智能支持者(有时我认为他为许多水平较差的作者提供了掩护,但这能怪 Simon 吗?),他曾创造了“智能体工程”(agentic engineering)一词,并非常明确地划清了智能体工程与氛围编程之间的界限:
We also need to read the code. My golden rule for production-quality AI-assisted programming is that I won’t commit any code to my repository if I couldn’t explain exactly what it does to somebody else. “我们仍然需要阅读代码。我对于生产级人工智能辅助编程的黄金法则是:如果我不能向别人准确解释某段代码的作用,我就不会将其提交到我的代码库中。”
If an LLM wrote the code for you, and you then reviewed it, tested it thoroughly and made sure you could explain how it works to someone else that’s not vibe coding, it’s software development. The usage of an LLM to support that activity is immaterial. “如果大语言模型为你写了代码,而你随后对其进行了审查、彻底测试,并确保你能向别人解释它是如何工作的,那就不叫氛围编程,那叫软件开发。使用大语言模型来辅助这一活动是无关紧要的。”
In an incredibly short period of time, basically a year, Simon published a fairly honest article titled Vibe coding and agentic engineering are getting closer than I’d like: 在极短的时间内——基本上只有一年——Simon 发表了一篇相当坦诚的文章,标题为《氛围编程与智能体工程正变得比我预想的更接近》(Vibe coding and agentic engineering are getting closer than I’d like):
The problem is that as the coding agents get more reliable, I’m not reviewing every line of code that they write anymore, even for my production level stuff. “问题在于,随着编程智能体变得越来越可靠,我不再审查它们写的每一行代码了,即使是用于生产环境的代码也是如此。”
I know full well that if you ask Claude Code to build a JSON API endpoint that runs a SQL query and outputs the results as JSON, it’s just going to do it right. It’s not going to mess that up. You have it add automated tests, you have it add documentation, you know it’s going to be good. “我非常清楚,如果你让 Claude Code 构建一个运行 SQL 查询并将结果以 JSON 输出的 API 端点,它绝对能做对。它不会搞砸。你让它添加自动化测试、添加文档,你知道它会做得很好。”
But I’m not reviewing that code. And now I’ve got that feeling of guilt: if I haven’t reviewed the code, is it really responsible for me to use this in production? “但我没有审查那些代码。现在我产生了一种负罪感:如果我没有审查代码,我将其用于生产环境真的负责任吗?”
It’s a great read, and what I will say is that I applaud Simon’s honesty and willingness to self-reflect and challenge prior statements. 这是一篇很棒的文章。我想说,我为 Simon 的诚实以及他愿意自我反思并挑战先前观点的态度鼓掌。
But the gap of time between the former and latter articles are stunningly short, just slightly over a year. 但前后两篇文章之间的时间间隔短得惊人,仅仅一年多一点。
And Simon isn’t alone. Just a year ago, I think the memetic shape was by and large that something along the lines of “agentic engineering” is what people could or should do, and, though I think many people are hesitant to admit it, I think most people using these tools are tending towards vibecoding and not agentic engineering, just as Simon himself found himself pulled. Simon 并非个例。就在一年前,我认为主流的模因(memetic shape)大体上还是认为人们能够或应该从事“智能体工程”。尽管我认为许多人对此讳莫如深,但我认为大多数使用这些工具的人正倾向于氛围编程,而非智能体工程,正如 Simon 本人所感受到的那种拉力一样。
Before we look at the consequences to this, I think we should look at why it’s happening. 在我们探讨其后果之前,我认为我们应该先看看为什么会发生这种情况。
The vibe bobsled
氛围雪橇
As far as I know I’m the only person who uses the term “vibe bobsled” and, well, I doubt it’s a term that’s particularly likely to catch on, but I find it personally useful. 据我所知,我是唯一使用“氛围雪橇”(vibe bobsled)这个词的人。好吧,我怀疑这个词不太可能流行起来,但我个人觉得它很有用。
Bobsledding, if you are unaware, is a particularly strange and interesting sport. It’s a lot of fun, but you don’t have a lot of agency in it. You sit in a bobsled, you go down an icy track, and really, there is only one way to go. But people can become experts in it, and can indeed measure themselves against each others skills; it’s an olympic sport, and I remember my own first encounters with bobsledding as a child, when my father and uncle and aunts took me, and it was thrilling like a roller coaster and intoxicating upon my first encounter. 如果你不了解的话,雪橇运动是一项非常奇特且有趣的运动。它很有趣,但你在其中并没有太多的自主权。你坐在雪橇里,沿着冰道滑下,实际上只有一条路可走。但人们可以成为这项运动的专家,确实可以衡量彼此的技能;这是一项奥林匹克运动。我记得小时候第一次接触雪橇的情景,当时我的父亲、叔叔和阿姨带我去玩,那感觉像过山车一样惊险,第一次尝试就让我沉醉其中。
But again, ultimately, there’s only one place to go. 但话说回来,最终,你只能去往同一个终点。
The vehicle is the LLM, you are the passenger. And I think the amount of agency people have over their journey is greatly reduced from what they feel like it is. More than just a slippery slope, it is a pre-crafted journey. 这个载具就是大语言模型,而你是乘客。我认为人们对自己旅程的掌控力,远比他们感觉到的要小得多。这不仅仅是一个滑坡,而是一段预先设计好的旅程。
At the top of the chute, people tell themselves they’re going to use these tools as a kind of fancy autocomplete. As they descend, they say they’ll spin up some agents to explore ideas, but they’ll write the code themselves. Next their agents are generating the code for them, but don’t worry, but they’ll review all the output. Soon they’re plummeting downward and well, they don’t actually review the code being spat out much anymore, but they trust the agents, heck maybe the agents are actually better coders than they are they say. And where does it go from there? From “I don’t even code anymore” to “I don’t even prompt anymore”? 在滑道的顶端,人们告诉自己,他们会把这些工具当作一种高级的自动补全。随着下滑,他们说会启动一些智能体来探索想法,但代码还是会自己写。接着,智能体开始为他们生成代码,但别担心,他们会审查所有的输出。很快,他们开始急速下坠,好吧,他们实际上不再怎么审查吐出来的代码了,但他们信任智能体,甚至说“也许智能体确实比我更擅长编程”。接下来会怎样?从“我甚至不再写代码了”到“我甚至不再写提示词了”?
At every stage of the process, the coder in question removes themselves from the process of producing code, and gives in towards a faith-based initiative of code production, that the LLM knows and does a good job of what it’s doing. But what is the source of gravity pulling the sled along this icy chute? 在过程的每一个阶段,程序员都在将自己从代码生产过程中剥离出来,转而投向一种基于信仰的代码生产模式,即相信大语言模型知道自己在做什么,并且做得很好。但是,是什么重力在拉动雪橇沿着这条冰道滑行呢?
It’s simple. Generation is not th… 很简单。生成并不是……