现在用 Codex、Claude Code 这类编程 Agent,最容易产生一个错觉:代码来得太快,软件好像也跟着变便宜了。

David Breunig 最近写了一篇《10 Lessons for Agentic Coding》。有意思的地方不在于又夸模型会写代码,而是把问题往后推了一步:当前沿模型已经能大量生成可用代码,开发者到底还贵在哪里?

答案不浪漫。

贵在意图,贵在测试,贵在品味,贵在维护,贵在出事之后有人负责。

十条经验,指向同一个变化:代码便宜了,反馈更贵了

这篇文章面向的不是围观 AI 的人,而是已经在用 AI 编程工具的人:开发者、技术负责人,以及想靠 Agent 提升工程效率的团队。

Breunig 的十条经验可以压缩成一张表:

经验含义真正指向
implement to learn先实现,再理解问题探索成本下降,别把想象当设计
rebuild often经常重建代码不再神圣,行为才是资产
end-to-end tests用端到端测试盯产品行为给重写和重构上护栏
document intent记录为什么这么做Agent 需要上下文,不只需要代码
keep specs in sync让规格持续更新旧文档会把模型带偏
find hard stuff找出真正难的部分别把时间耗在样板活上
automate easy stuff自动化容易的部分把人力留给边界、架构和判断
develop taste培养品味好坏判断会决定产出上限
agents amplify experienceAgent 放大经验资深开发者更会少走弯路
maintenance/security aren’t cheap维护和安全不便宜债务会生成得更快

关键转折很简单:代码本身变便宜,不等于软件开发整体变便宜。

以前写代码慢,很多问题会被“产能不足”挡在门外。现在 Agent 能把半成品、试验品、替代实现迅速铺出来,团队会更早碰到硬问题:哪个行为才是对的?测试能不能兜住?规格有没有过期?半年后谁维护?

代码像水一样涌出来时,堤坝就变得更重要。

受影响最大的,是两类人:写代码的人,管工程债的人

对正在用 AI 编程工具的开发者,这件事的动作很具体。

不要只练“怎么让 Agent 多写一点”。更该练的是怎么拆边界、写验收条件、补端到端测试、把意图写进文档。以后差距不一定体现在谁敲得快,而是体现在谁能让 Agent 少跑偏、少返工、少埋雷。

对技术负责人,判断更硬一点。

如果团队的测试很薄、规格常年失真、代码评审只看风格,那就别急着把 Agent 当效率药。它会让产出变快,也会让坏设计、重复实现和安全隐患变快。引入 Agent 之前,至少要把三件事钉住:

决策点不该只看更该先补
要不要大规模引入 Agent生成速度测试覆盖和验收标准
要不要减少人工评审代码能否运行行为是否正确、边界是否清楚
要不要让 Agent 接复杂任务模型回答是否顺规格是否同步、责任人是否明确

我不太买账“程序员马上被取代”这类说法。它太省事,也太偷懒。

Breunig 这十条经验反而说明,Agent 放大的不是无经验者的魔法,而是有经验者的判断。资深开发者知道怎么描述问题,怎么切边界,怎么避免模型在无关路径上乱逛。提示词里那些看似普通的词,背后往往是多年踩坑换来的压缩知识。

端到端测试会变重要,也是这个原因。

Agent 让你更敢重写、更敢 fork、更敢做试验。但你必须有一套行为契约,告诉系统:只要结果没坏,里面怎么换都行。没有测试,快速重建就是快速赌博。

规格文档也一样。

过去很多团队把 spec 当开工前的仪式,写完就冻住。Agent 时代这样不够。实现会暴露新决策,测试会逼出新边界,规格必须跟着代码和测试一起长。否则 Agent 读到的是旧地图,走出来的自然是歪路。

“天下熙熙,皆为利来。”工具厂商会讲效率,团队也会想用更少人做更多事。这没什么稀奇,商业世界本来如此。

但效率叙事最容易藏起后半句:谁来验证,谁来维护,谁来承担安全后果?

接下来别只看写得快不快,要看债务是不是也在加速

Agentic coding 真正危险的地方,不是它写不出代码,而是它太能写代码。

样板代码、胶水逻辑、普通 CRUD、常见重构,都会变快。管理者很容易误判:既然产出速度上来了,项目复杂度也被消灭了。

没有。

复杂度只是换了地方。它从“怎么写出来”,迁移到“写出来之后怎么证明它对、怎么让它长期不坏、怎么让用户真的能用”。性能、韧性、安全、系统架构、直觉化设计,这些才是硬骨头。

任何人都可以让 Agent 做容易的部分。难的部分不会因为模型会补全代码就自动消失。

历史上基础设施扩张常常如此。铁路铺开之后,稀缺的不是铁轨本身,而是调度、维护、财务纪律和事故治理。这个类比不完全一样,但结构相近:生产工具变强,会让治理能力的短板更刺眼。

所以接下来真正该观察的,不是某个团队能不能用 Agent 多写 30 个文件。这类数字很容易好看。

更该看四个现实变量:

观察点说明
端到端测试是否跟上没有行为护栏,重写越快风险越大
规格是否持续同步Agent 依赖上下文,旧文档会制造新错误
评审标准是否改变不能只审代码风格,要审意图、边界和风险
维护和安全责任是否明确代码可以生成,事故不能外包给模型

这也是我更愿意把 Breunig 这篇文章看成一份提醒,而不是一份技巧清单的原因。

Agentic coding 不是让工程纪律过时。它是在逼工程纪律更早、更硬、更可验证。

未来更便宜的是代码行数,不是判断力;更快生成的是实现,不是责任。