
AI 编程代理的四个残酷真相:一个二十年老兵的禁令
拥有二十年软件工程经验的开发者从技能退化、成本泡沫、提示注入攻击和版权法律四个维度,解释了为什么他在专业工作中全面禁止 AI 编程代理生成生产代码,并认为你也应该认真考虑这一立场。
原文来源:Standup for Me — 一位拥有二十年软件工程经验的开发者从技能退化、成本泡沫、提示注入攻击和版权法律四个维度,解释了为什么他在专业工作中全面禁止 AI 编程代理生成生产代码。
作者从几年前就开始密切关注生成式 AI 的发展。早期他和大多数人一样,被 OpenAI 基于一篇相对小众的深度学习研究论文加上一点人类反馈强化学习所做到的事情震撼到了。当它生效时,那种效果绝对令人难以置信,一种如此有说服力的幻觉,让你相信它无所不能。
这篇文章写于 AI 编程代理" meteoric rise"(流星般崛起)的背景下。这种代理把你最喜欢的那款容易产生幻觉的 LLM 加上一个反馈循环,让它能生成一些真正令人印象深刻的结果。整个公司都在基于 AI 编程代理从头搭建,Notion、Spotify、Stripe 这样的老牌公司似乎也全面拥抱了这一趋势。毕竟,既然 AI 编程代理能比人类更快更便宜地完成工作,为什么还要让人类苦苦敲代码呢?
但作者决定站出来明确表态:基于 LLM 的 AI 编程代理,现在没有、将来也不应该有任何位置,用于生成他所专业构建的软件的生产代码。他认为你也应该认真考虑采取同样的立场。
技能退化:用得越多,越不会写代码
这是最容易理解但也最"软"的一个问题。软件工程师的工作正在发生剧变。有人把新角色描述为某种"软件工程经理",自己几乎不写代码,而是监督一群 AI 编程代理,就像管理一群人类初级工程师一样。
问题是,那些被降级为代码审查职责的工程师,技能会逐渐退化。即使他们一开始满怀热情想要提供最高水平的审查,但随着时间推移,他们会逐渐失去区分好代码和坏代码的能力,因为他们自己已经不再写代码了。实践和从他人那里获得反馈,对于维持和提升编码知识至关重要,但处于这种位置的工程师什么都得不到。
更现实的情况是,随着 AI 代理数量增加而审查人员减少,代码审查的负担会越来越重。出于纯粹的理智保护需求,审查人员会不可避免地变得懈怠。如果经验告诉你代理的代码 95% 以上时候都够好,你就不会付出应有的注意力,坏代码就会溜进去。你可以问人类同事"你为什么这么实现",然后走过去或打个视频电话面对面讨论。但你无法对 LLM 做同样的事情。你问它,它只会编造一个听起来合理的回答,因为它实际上并不知道。
作者也承认这个观点可能是"老头骂云"式的守旧。几十年前也有人抱怨高级编程语言会让程序员失去对系统底层行为的理解,而他们大部分都错了。今天的工程师不需要真正理解运行时如何分配和释放内存,但这并没有阻止他们构建有用且有价值的东西。作者的核心辩护是:这次感觉不一样。他承认这不是特别严谨的辩护,但补充说,他有二十年的专业软件工程经验来支撑这个论点。
成本泡沫:现在的低价是假象
这是作者自认分析能力最弱的领域,但他确信问题存在,而且没有人有解决方案。
生成式 AI 正处于一个泡沫之中,随时可能破裂。基本论点是:LLM 背后的技术配不上炒作,资金水龙头最终会干涸。科技巨头们正在往 GPU、内存、存储和数据中心上投入真正惊人的现金,但随着最初的新鲜感消退和 LLM 实际限制的显现,他们一直在努力证明这些巨额开支的合理性。帮你摆脱给老板和同事写废话邮件的麻烦固然方便,但这不是 justify 天文数字成本的杀手级功能。
过去一年左右,他们把 AI 编程代理当作"证明他们是对的"的论据,认为巨额投资终将得到回报。但冷酷的现实是,生成式 AI 模型对训练和运营它们的公司来说是** wildly unprofitable**(极度不盈利的),AI 编程代理一点都没有改变这一点。事实上,它们通过鼓励显著更多的使用量而加剧了问题。
科技巨头们遵循典型的硅谷模式:先建起来,以后再想办法赚钱。他们似乎在祈祷某种堪比 Google 原始《Attention Is All You Need》论文量级的惊人创新出现,来改善模型的成本效率,或者更好的是,发现通往通用人工智能的秘密配方。没有这种及时出现的创新,泡沫无疑会破裂,行业将迎来重大重组。
目前终端用户为生成式 AI 支付的价格,与训练和运行这些模型的实际成本完全脱节。最好的情况下,需要数量级的涨价和大幅降低使用上限。不仅仅是建造和训练基础模型的公司,所有那些以人为低价提供基于生成式 AI 工具的中间商,当成本突然飙升时也会陷入困境。爆炸半径会很大,很多人活不下来。
有人可能会说,即使那个时刻最终会到来,现在也不妨碍使用手头的工具。但作者不同意。最好不要从一开始就过度依赖 AI 编程代理,这样当风暴来临时,你会处于更有利的位置。
提示注入:无法根治的安全漏洞
提示注入现在已经是 LLM 的知名问题了,但值得简要回顾:LLM 本质上容易轻信,一个足够有动机的个体可以通过精心构造输入来欺骗 LLM 说出或做出它"不应该"做的事情。LLM 的工作只是预测扩展文本字符串中的下一个 token,它们缺乏真正的推理能力,难以区分合法提示和偷偷藏在上下文中的指令。
所有主要 LLM 提供商多年来都在针对新发现的提示注入方法做改进,但这些修复本质上不过是用胶带堵住沉船的漏洞。所有迹象都表明,提示注入利用的是 LLM 工作方式的基础性行为。换句话说,LLM 在可靠区分指令和数据方面的根本无能,是一个** very unlikely ever to be fully fixed**(非常不可能被完全修复)的问题。
到目前为止,行业主要处理的是用户在一对一聊天中试图让 LLM 突破系统提示的场景。但随着 AI 编程代理的快速普及,恶意外部人员发起协调攻击只是时间问题。他们会 poisoning 自己控制的网站,或者用恶意 LLM 指令塞满你的收件箱。你的编程代理在搜索网页寻找解决特定编码问题的示例时,或者在挖掘你的收件箱寻找与任务相关的邮件时,就会撞上这些恶意指令。
而且不仅仅是编程代理,任何有能力从不可信来源拉取上下文的 AI 代理都面临风险。如果代理运行在足够宽松的限制下(现在它们都这样),损害可能是真正灾难性的。在很多情况下,预期的是对你系统的完全入侵和你登录的所有账户的完全沦陷。Bruce Schneier 把这个新兴的攻击类别命名为"promptware",未来几年内随着坏人想出越来越新颖的方式偷偷把恶意提示注入代理的上下文,我们会看到很多这类攻击。
即使没有恶意攻击者,你的 AI 代理也可能因为幻觉或"失去线索"而决定删除你所有的文件、数据库或邮件。这个风险不值得承担。
版权与法律:AI 生成的代码不属于你
作者不是律师,但他认为这是一个很少被谈论却极其重要的问题。
在美国,生成式 AI 模型的输出不可获得版权保护。这一点至关重要,所以再说一遍:当你花那么多时间和精力精心编写提示,然后喂给 AI 模型时,它吐出来的代码,最多属于公共领域。你不拥有它。没有人拥有它。或者更准确地说,世界上每个人都拥有它。
美国版权局已经裁定生成式 AI 的输出不能被版权保护。此后这个问题也被提交到美国法院,法院同意了这一裁定,案件一路打到最高法院,最高法院选择不介入,让下级法院的判决成立:任何生成式 AI 的输出都不受版权保护。这目前只是美国的情况,但作为西方世界人口最多的国家,它的政治和经济影响力依然巨大。而且,有相似版权定义的其他国家很可能在可预见的未来得出相同结论。
想象一下,如果 Notion 从一开始就使用 AI 编程代理生成所有代码。那么他们所有的代码理论上现在都属于每个人。如果一个员工决定把源代码 dump 到网上,全世界都会突然拥有完全不受限制的访问权限,可以对其做任何想做的事情。公司甚至可能没有法律机制来限制员工分发法律上属于公共领域的东西。保密协议保护商业秘密,但能否用来阻止员工分享属于每个人的东西?
在现实世界中,Notion 的代码(至少到目前为止)几乎全部由人类编写。如果一个员工泄露了 Notion 的专有代码,竞争对手如果将其整合到自己的产品中,会面临灾难性的法律和财务处罚。版权保护起到了威慑作用。但在 AI 生成代码的假设世界中,任何人都可以直接启动服务器运行公开的代码,完全跳过公司花数年时间精心引导 AI 编程代理构建生产力套件的过程。
有人可能会反驳说,如果代码是用 AI 编程代理廉价生成的,那代码本身就不重要或有价值。但这完全忽略了研究问题、与同事讨论、编写规范以便 AI 编程代理将其转化为可用代码、以及之后的所有迭代和修订所投入的工作。即使写代码本身几乎不费力气,软件工程仍然是一个耗时的过程。讽刺的是,工程师花那么多时间编写和喂给 AI 编程代理的规范很可能受版权保护,但对保护公司利益来说完全无关紧要。
当代码库是人类生成和 AI 生成的混合体时,版权问题变得更加复杂。这可能给公司足够的法律掩护,只要它们维持一定基线的人类生成代码。或者世界各国政府会逐渐修改版权定义,把生成式 AI 的输出所有权赋予编写提示的人或组织。但只要《伯尔尼公约》和 TRIPS 协定还在,这就不是一件小事。作者的建议很简单:让人类写大部分或全部代码,跳过所有这些法律不确定性。
LLM 真正的用处是什么
作者并非全盘否定 LLM。他认为 LLM 在研究方面非常有用,前提是你仔细验证它告诉你的每一件事。当你遇到一个新包或 API 而你几乎没有经验时,能够向 LLM 请求生成一个示例代码块绝对很棒。当然,它们经常出错,很多时候你不能直接复制粘贴。
此外,随着 AI 编程代理成熟并真正实现全面的隔离保证,防止它们失控删除你的所有邮件,它们可以成为非程序员实现自己想法的好帮手,只要这些用户不打算基于结果构建商业业务。对于有经验但没有时间手动构建所有业余 side project 的程序员来说,也可能很有用。
写在最后
尽管作者对 AI 编程代理感到不安,但他清楚 LLM 和 AI 编程代理会以某种形式继续存在。如果这篇文章能让至少一些人更批判性地思考这项技术的利弊,那他就成功了。
文章末尾有一个产品推广:Standup for Me,一个 Slack 的每日站会机器人,由作者亲手编写和维护,没有一行 AI 生成的代码。它的核心功能是与 Google Calendar 和 GitHub 集成,自动拉取你昨天做过的事情和今天分配给你的任务,帮你写出有用的站会回复。小团队免费使用。
© 2026 四月 · CC BY-NC-SA 4.0
原文链接:https://aprilzz.com/ramble/ai-coding-agent-truths