验证债务:AI生成代码的隐藏成本

发布: (2026年3月8日 GMT+8 01:08)
8 分钟阅读

Source: Hacker News

6 分钟阅读
刚刚

引言

我已经忘记怎么写代码了,或者说我觉得自己已经忘了。很难确定——我已经有一段时间没有写代码了。但随后我开始思考:我上一次装配全新服务器并安装 Linux 是什么时候?如果这种物理过程可以用 Terraform 的一行代码来完成,那么代码还有什么神圣不可侵犯的地方吗?

没关系,我仍然可以阅读代码、文档和计划。大量的内容,我有时甚至会注意它们到底在说什么。大多数时候,我只是去按屏幕上那个巨大的 “我负责” 按钮(至少,我想象它是这么写的)。

“我,Lars Janssen,特此声明,我已请至少两位 LLM 代理对提交的更改进行彻底审查。”

几乎任何主题的报告都可以轻易请求。但真正阅读它们是另一回事。
但偶尔我必须深入结构,调出代码,并弄清楚不同机器人派系所创建的内容。我是最终的品味仲裁者,尽管所有在线的争论都已经被模型吸收,它们可能比我更清楚“好”的样子应该是什么。

这就是我们在本十年末的状态吗? 几个月前,这个未来还显得相当遥远。随后有什么东西发生了变化。

现在,爱好者们已经上瘾。他们离开桌面时至少会启动两个代理,让它们思考并执行指令。如果你在上厕所时不在燃烧 token,就算不上高效。与此同时,怀疑者们抱怨——并非没有理由——AI 正在拖慢他们的进度,他们自己本可以更快完成。

两派都有道理。今天的实际感受是:

  • 你的代理在十分钟内产生了令人印象深刻的 diff。你却要花一个小时确保它没有遗漏会在以后“咬你屁股”的细节。
  • 上下文会蒸发。200 000 token 听起来很慷慨,直到代理开始压缩你的对话并忘记十分钟前你们达成的共识。
  • 输出冗长得让人脑袋发麻。你请求一次聚焦的改动,却得到一篇带有 unsolicited comments(未请求的评论)和 gratuitous refactoring(无谓重构)的论文。
  • 工具集成时好时坏。有些 MCP(模型调用平台)表现出色;另一些则像是有人把 API 文档随手写在信封背面,让模型自行摸索其余部分。

然而,尽管如此,一切已经改变。已经没有人在争论它是否有效了。争论的焦点是 如何 实现。

从派对技巧到生产

几年前,ChatGPT 问世,整个世界短暂失去理智。 在当时的一篇博客文章 中,我把它称为“盒子里的大脑”——强大的推理能力,却没有任何连接。想象一下,如果苹果发布的 iPhone 没有网络。技术演示很惊艳,却对实际工作毫无用处。你只能复制粘贴代码片段,仅此而已。

去年,工具链稍有跟进。自动补全让位于代理工作流的雏形。但仍然笨拙——连接性受限,可访问性差,而且如果你离开它们哪怕一分钟,模型就会快速偏离,自己乱搞。

有什么变化? 同时出现了几件事。

  1. 更好的模型。 虽不完美,但已足够好,你可以给代理一个真实任务并得到连贯的返回,即使你必须点击“是”五十次才能通过权限提示。到了 Opus 4.5 和 GPT‑5,原本持怀疑态度的人也开始关注。
  2. 成熟的产品。 基于终端的代理能够深入大型、遗留的代码库,真正弄清楚内部情况。人机交互足够符合人体工学,以至于你不再与工具对抗,而是与之协作。
  3. 更熟练的用户。 提示(Prompt)是一项技能。为代理设定任务范围是一项技能。判断何时信任输出、何时丢弃也是一项技能。

这并非单一突破,而是更好的模型、更完善的工具和更有经验的用户的复合效应——同时到来。就像早期的互联网:没有人记得它何时变得实用。它只是……变得实用了。

当工具发挥作用时

真正的转变并不是更聪明的模型,而是当你将它们接入实际系统时会发生的事情。

当我把 Claude Code 连接到我们的 Snowflake 数据仓库时,这个本来用于帮助编写 SQL 的小工具变成了一个完整的分析师。它开始自行遍历模式(schemas),并与代码和 Confluence 页面进行交叉引用,随后返回了一些我甚至没有想到去寻找的洞见。

不是“AI 为我写代码”,而是“AI 能够通过明确定义的工具在现实世界中实际行动”。
当集成做得好时,代理不再是花哨的自动补全,而是能够调查、交叉引用并提出建议的真正合作者。
当集成做得差时,就像给实习生一张地图,而地图上有一半的街道是凭空编造的。

LLMs 正在连接到真实世界——不再只是一个“盒子里的大脑”。

验证债务

大家悄然意识到的事实是:当然,我们写的代码更少了,但我们用验证工作来取代它。

代理可以在几分钟内生成一个看起来合理的 diff。测试通过。提交信息比一半的人类写的还要好。PR 看起来很干净。而这正是陷阱所在——因为“看起来对”并不等同于“实际上对”。

把它称作 verification debt:我们生成输出的速度与验证它的速度之间日益扩大的差距。每当你在一个尚未完全理解的 diff 上点击 Approve 时,你就在借…

(文章续写)

0 浏览
Back to Blog

相关文章

阅读更多 »

首例飞机致命事故

托马斯·塞尔弗里奇——动力航空史上的首位死亡者 1908年9月17日傍晚,一名年轻的美国军官托马斯·塞尔弗里奇爬进了一架…