AI Pulse

一位工程师:AI写代码每月100美元,我凭什么比它贵百倍千倍?

2025年,我写过一篇文章,认为软件工程师的评估标准应该是“替代价值”(value over replacement):不是看他们为公司赚了多少钱,而是看相比同岗位的平均工程师,他们多赚了多少。我一直觉得,有些工程师只是处理了派到手上的JIRA工单,却在简历上写“做出了一个赚了X美元的产品”,这有点荒谬。

如今,替代价值更加重要。在2010年代,一个“替代级”工程师还算可以:也许不值得晋升,但仍值得支付工资,因为写代码的固定成本很高。现在,写代码每月只需一百美元。你能做什么是GPT-5.6-Sol或Claude Opus 5在你的位置上不会做的?为什么值得为你多付两三个数量级的钱?

这是个可怕的想法。但如果你假装LLM其实不会写代码、这一切都是骗局,或者假装LLM写的代码本质上差到会让使用它的公司明年就倒闭,那对你自己毫无好处。我们不会在2027年一觉醒来,发现AI热潮已经结束,所有人又回到手写代码。你应该认真思考,在中期和长期,你能比模型做得更好的是什么。

领先于模型是一个移动的目标。2026年初,“对大型代码库做出可工作的修改”还属于这个类别,但现在已经不是了。因此,我怀疑你无法退回到某个需要更深专业知识的“硬核工程”领域。这在短期内可能有效,但不会永远有效。如果LLM能在黎曼猜想上找到更好的下界,它们很快[1]就能写出可靠的高性能内核驱动或GPU着色器之类的东西。

我认为更有用的做法是,去看看模型一直没有变得更好的任务,以及原则上很难变得更好的任务。最典型的两个例子是:

对代码库的深度熟悉

前沿LLM会犯什么错?它们会犯哪种编码错误?我已经很久没见过编码智能体直接产生幻觉,或者出现像差一错误那样简单的逻辑错误了。它们犯的错误往往是“无知之错”:

- 不知道代码库里有一个模块可以用,而不是重新实现某些逻辑
- 因为不知道System X是这类功能的标准位置,所以在错误的系统里做了修改
- 采用了与公司标准实践不一致的编码风格

其他时候则是“多疑之错”:

- 对一个理论上可能出错、但实际上只在配置中设置一次且从不更新的值,实现三重冗余检查
- 假设十毫秒的陈旧数据不可接受,于是设计一个复杂而不必要的系统来让它始终保持最新
- 在一些本应在出错时直接崩溃的代码(例如CLI工具,或可重启的k8s服务)中加入回退和“优雅”降级

这些错误有什么共同点?它们是一个聪明的工程师在没有系统上下文时可能会犯的错误:他们有能力解决问题,但对系统还不够熟悉,无法自信地说“是的,我们可以冒这个险,省掉额外的三千行代码”。除非有人攻破持续学习或真正大规模上下文窗口,否则这本身就是AI智能体运作方式的固有特征。如果你能发现这些错误,你就在提供真正的价值。

发现这些错误的唯一方法,就是熟悉代码库,并且对整个系统有整体了解。更多内容参见我的文章《你无法设计你不在其上工作的软件》。但这其中也有心理因素。你必须愿意自信地反驳智能体。

AI智能体可能非常有说服力。它们常常会卡在上面某类错误上,不愿意承担某个特定风险,于是不断回头,偷偷加入覆盖那种情况的代码(或者写出很有说服力的论证,说明为什么那种情况很重要)。要增加价值,你需要愿意说:“这很糟糕,我认为我们根本不需要X和Y,为什么我们不能用更简单的方式做Z?”这需要勇气。

你不能依赖其他AI智能体来互相审查工作。如果你使用同一个模型,它肯定会产生完全相同的假设和错误。但即使你使用不同的模型,它们也会因为同样的结构性原因,倾向于犯同样的错误——无知和多疑。实际上,AI驱动的审查循环更可能在这些问题上出错,因为现代AI已经被RL训练成无论如何都要找出几个吹毛求疵的问题。让一个批评型AI和一个执行型AI互相碰撞,是得到一万行多疑垃圾代码的好办法。

技术沟通

另一个可以在AI之上增加价值的领域是沟通。新模型更擅长编码,但矛盾的是,它们在写作上却越来越差。GPT-3.5和GPT-4有时具有类人的写作风格。GPT-4o引入了现代的“slop”个人语型,而更新的Anthropic模型则说“Claudish”:一种奇怪的、半巴洛克半截断的沟通方式,没有人喜欢。也有几个亮点——GPT-4.5还算可以,我很喜欢o32[2]——但总体而言,LLM并不擅长写作。这里有两个原因。

首先,好的写作不是一个可验证的领域。如果你想让模型擅长数学或编码,你可以生成问题并自动打分。但你无法为“好写作”打分。如果你试图让人类来打分——例如通过OpenAI早期的RLHF尝试——你得到的是那种以单段落形式阅读时会让普通人觉得惊艳的写作。这就是“每句话塞进三百种修辞手法”风格的起源。我认为原则上可以精挑细选一些有品味的人来做这件事,但存在一些显而易见的问题[3],阻止了这种事情发生。

其次,实验室们一直执迷于能力而非沟通。当你试图训练一个能够开创新科学领域或替代软件工程师的模型时,你可能会用一些沟通能力来交换。事实上,我认为我们可以确切地看到这种情况是如何发生的。如果你观察模型内部的推理token,它们往往有奇怪的用词和古怪的截断语法:

> RESOLUTION: charge the current-leg’s OWN saved-prefix occupancy EAGERLY: when leg i saves e1..et: ALSO commit their occupancy AT LEG i

如果你把它翻译成规范的英语,你可能会得到读起来像Claudish的东西:

> Charge the current-leg’s saved-prefix occupancy on a clean, eager path: when leg i saves e1..et, commit the occupancy at leg i.

我怀疑,某些LLM那种奇怪的外星人式写作风格,是因为你在阅读该模型内部思维链的半直译,而这种思维链为了追求更好的问题解决能力,已经变得几乎不可理解。把Claudish翻译成好英语出奇地难:你不仅要理解原文那种曲折、压缩的语言,还需要理解模型正在解决的问题的技术能力。

正因为如此,技术沟通可能是一项出人意料地持久的技能。在Peter Watts的小说《Blindsight》中,世界充满了认知增强的人类。主角是一名“综合者”(synthesist):他的工作是在这些用缩写和手势说话的天才与其他人之间充当翻译层。Watts的想法是,沟通能力很可能在很大程度上独立于智力——甚至与智力负相关。一个“天才之国”可能仍然需要一群普通的聪明人,把天才的洞见翻译给其他人。

如果你是在和人类沟通,由人类来写内容也有巨大的优势。我们中的许多人正在变得“AI盲”:当遇到AI生成的内容时,会产生一种本能反射,让我们停止阅读。这就像人们可以忽略网站上闪烁的广告牌或侧边栏广告的反射。如果你把一份计划中的技术战略以AI写成的文档传阅,你的大多数同事将不得不在物理上强迫自己逐字阅读。

结论

无论你做什么,都不要做一个“肉身代理”(meat proxy):一个只是把请求复制到AI智能体中、然后把它们的输出当作自己工作成果提交的人。这样做简直就是求着被开除,因为按定义你自己没有增加任何价值。即使你有一个巧妙的、由多个智能体组成的系统——所谓的“软件工厂”——你仍然站在危险的地面上。当你的系统功能进入企业级AI工具(而且它们一定会),你就是可抛弃的。

你需要找到某种方式,利用你的专业知识去做模型做不到的事情。完全不使用AI比做肉身代理要好,因为你可能会在某些事情上比模型做得更好,但更聪明的做法是弄清楚AI能做什么,然后让自己去填补那些空白。目前,主要存在两个空白:对系统技术细节的熟悉,以及清晰而有说服力地写出这些细节的能力。

[1] 如果你在想“但LLM现在就能做这些事情!”,那就换成你选的高难度软件工程例子。

[2] 虽然这可能是“谢天谢地,它不像4o那样说话”的反应。

[3] 定义好的品味很难,不能保证AI实验室的研究人员一开始就有好的品味,没有人会对例子达成一致,多数用户可能甚至不喜欢它,你无法得到足够多的人来产生你所需的数据量,等等。

阅读原文
📚 相关主题 软件工程职业发展

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新