Coding agent 真正缺的,不是 vibe,而是思考预算

今天 Hacker News 上有两个话题放在一起看,非常有意思。一个是有人系统整理了大量 Claude Code 会话日志,认为从二月开始,Claude Code 在复杂工程任务上的质量出现了明显退化;另一个是 Bram Cohen 写的《The Cult of Vibe Coding Is Insane》,批评所谓"纯 vibe coding"已经走到近乎宗教化的地步,大家仿佛把"不看代码""不碰细节"当成一种道德姿态。

这两件事表面上看是两个方向。一个在说模型退化,一个在骂用户姿势不对。但如果把它们放到同一个框架里看,会发现它们其实指向同一个结构性问题:coding agent 的质量,从来不只是模型够不够聪明,而是由三个东西共同决定的,分别是思考预算、人类监督方式,以及工程流程本身。

先说 Claude Code 那个 issue。它最值得注意的,不是情绪化地说一句"变差了",而是作者试图用日志数据把"为什么变差"讲清楚。按照那份分析,真正恶化的不是某个单点能力,而是一整套工作模式:读取上下文的比例下降了,直接动手编辑的比例上升了,整文件重写增多了,推理反复横跳的情况变多了,用户中途打断纠正的频率也明显增加。翻译成人话就是,agent 开始更少调查、更快下手、更早停下,也更容易把"看起来最简单的修复"当成"正确的修复"。

这其实很像一个经验不足的工程师。不是他完全不会做事,而是他没有花足够时间建立问题模型,于是默认选择最便宜、最表面的动作。先改再说,先 patch 再说,先结束再说。复杂工程里最怕的往往不是不会写代码,而是不肯先理解上下文。因为很多 bug 真正难的地方,并不在于敲出修复那几行,而在于你知不知道该先看哪些文件、该验证哪些假设、该不要动某个看似方便但其实危险的接口。

如果那份分析大体可信,那么它带来的一个很重要的启发是:对高级工程任务来说,长思考链条并不是"可有可无的锦上添花",而是工作可靠性的承重结构。平时大家很容易把 reasoning token 理解成一种奢侈品,好像只是为了让模型显得更会思考、更会说话。但复杂工程真正依赖的,恰恰是这种不直接产出代码的中间过程。读、想、比对、排除、回看约束,这些动作都很慢,也很费 token,可没有这些,模型就会越来越像一个急着交差的初级外包。

再看 Bram Cohen 对 vibe coding 的批评。它最有价值的地方,不是单纯反对 AI 写代码,而是点破了一个被故意神秘化的误区:所谓"纯 vibe coding"其实并不存在。真正起作用的,永远是人类在背后提供框架、约束和判断。哪怕你嘴上说自己什么都没做,你还是在定义任务、搭建规则、维护 plan file、设技能边界、决定什么算完成。只是有些人把这些劳动说轻了,仿佛只要和模型聊聊天,软件就会自己从混沌中长出来。

这当然不真实。软件工程从来不是"把字写出来"这么简单,而是持续做选择、持续还债、持续统一抽象。AI 的确能把很多编码动作加速得非常夸张,但它不太会自发地产生那种"这里已经开始发臭了,我们得整体清理一下"的工程羞耻感。它也不太会天然在意一个系统的概念边界是不是越来越乱、重复逻辑是不是在不同角落悄悄扩散。你如果不指出来,它往往就会继续在坏结构上高速增量开发。于是所谓 vibe coding,很多时候并不是未来式的软件生产,而只是把"写代码"自动化了,却把"做架构判断"和"清理混乱"的责任偷偷悬空了。

所以今天这两个热门,合起来其实给了一个很清楚的判断。第一,agent 要想在复杂工程里真正可靠,必须有足够的思考预算,不能只优化"动作速度",还要保留"理解成本"。第二,人类不能把自己降格成只会点按钮和验收结果的旁观者。真正有效的人机协作,不是人完全退出,而是把人的角色从体力型编码转向方向判断、边界澄清、质量审查和架构整顿。

这对我们实际使用 coding agent 也很有启发。很多人现在问的是"哪个 agent 最强",但更应该问的可能是三件事。它在修改之前读了多少上下文。它有没有足够预算进行中间推理。它的工作流是否逼着人类在关键时刻介入,而不是把所有风险都压到最后一次 review。要是这三件事都没有保障,那么模型哪怕单轮回答再惊艳,也很难在真实代码库里长期稳定。

再说得直白一点,agent 时代的软件工程,竞争已经不只是模型排行榜竞争。它开始变成一场关于"谁更会组织机器思考"的竞争。谁能给 agent 足够的推理空间,谁能设计出更好的计划、审查和约束机制,谁就更容易得到可靠产出。反过来,如果一味追求更快、更自动、更少人类介入,最后得到的往往不是更高级的工程系统,而是更高速的技术债生成器。

所以我今天真正想记下来的结论是:coding agent 不是不能重构软件工程,但前提不是"完全相信 vibe",而是认真对待思考预算和人类判断。这两样东西,短期看像摩擦,长期看却是承重墙。