最近软件圈有个很诱人的说法:AI 来写代码,人类退到上层,只负责写规格、编排任务、审核结果。
听起来像工程师终于“升维”了。Lars Faye 在《Agentic Coding is a Trap》里泼了冷水:人离代码越远,未必更高级,也可能只是更看不见系统怎么坏掉。
这篇文章真正反对的不是 Claude、Copilot 或其他 LLM 辅助编码。作者承认,LLM 对学习、探索、解释概念、生成草稿都有长期价值。他反对的是把全代理工作流默认化:让 AI 大规模写代码,人类在后面追着审。
Agentic Coding 被吹成什么,又漏掉了什么
Agentic Coding 大致是这样一套流程:人写需求和规格,AI 代理拆计划、改文件、跑实现,人再 review、纠偏、重试。
更激进的玩法,是同时开多个 agent。像开多条生产线。代码产出很快,问题也被放大得很快。
它常被包装成“规格驱动开发”的未来。程序员不再亲手写实现,而是写清楚意图,管理 AI 输出。
Faye 的反对点很直接:这不是单纯换工具,而是在改软件生产关系。过去工程师通过写代码建立系统心智模型;现在这一步可能被代理吞掉。
| 代价 | 具体表现 | 谁会先感到疼 |
|---|---|---|
| 系统复杂度上升 | 为了压住 AI 的非确定性,测试、审查、回滚、提示词流程都要变厚 | 技术负责人、维护团队 |
| 技能萎缩 | 写、读、调代码的肌肉变弱 | 新人工程师,也包括长期不碰实现的资深工程师 |
| 供应商锁定 | Claude Code 等服务一旦变价、限流或停摆,工作流会被卡住 | 依赖单一模型平台的团队 |
| token 成本不确定 | 模型价格、调用量、重试次数都在变 | 要做预算和采购的管理者 |
最刺眼的是 Anthropic 自己提到的“监督悖论”:有效使用 Claude 需要监督,而监督 Claude 又依赖那些可能被 AI 过度使用削弱的编码技能。
这句话很要命。
你得足够懂,才知道 AI 哪里错。可你越少亲手写,就越可能不够懂。
这不是 FORTRAN,也不只是更高抽象
支持者常拿历史类比说事:过去有人不信 FORTRAN,不信编译器,不信云计算;今天质疑 AI 代理,也许只是老派工程师害怕新工具。
这个类比只像一半。
FORTRAN、编译器、云计算,确实提高了抽象层。它们大体是在稳定规则上封装低层细节。LLM 代理不同,它把概率性和模糊性引进了生产链路。
更模糊,不等于更高级。
写代码也不只是敲字符。很多工程师是在写类型、拆函数、调整目录结构时,才真正想明白系统该长什么样。
代码不是计划之后的体力活。代码本身就是计划的一部分。
如果流程变成“写规格—等 AI 生成—人工审核”,少掉的不只是劳动,还有摩擦。工程能力往往就在摩擦里长出来。
新人最容易受影响。过去他们通过读错、写错、调错,慢慢建立判断力。现在如果直接接触的是 AI 生成的大段实现,他们学到的可能是如何接受答案,而不是如何形成答案。
资深工程师也不是天然安全。长期不碰细节,只看 PR 和摘要,心智模型会变薄。系统一旦出问题,没人能只靠“我大概知道业务意图”去修复杂 bug。
Simon Willison 也提过类似担忧:如果你对应用能做什么、怎么工作的模型不够牢,每加一个功能都会更难推理。
至于一些研究和材料提到的调试能力下降,比如 Anthropic 相关材料中出现过 47% 的说法,不能直接当成行业定论。证据还没到那个强度。
但它至少提醒一件事:工具替你绕过困难时,也替你绕过训练。
AI 要留在手边,不要坐上主位
我更在意的不是 AI 会不会写错代码。人也会写错。
真正危险的是团队把“出代码速度”当主指标,把 review 当万能保险,把 token 消耗当先进生产力的仪表盘。
这样会把优先级倒过来。过去好工程师先追求理解、简洁、可维护,再谈速度。全代理流程天然先给你速度和规模,再逼你补理解。
天下熙熙,皆为利来。模型厂商当然希望开发能力变成持续 token 消费。
过去一个工程师靠键盘、编辑器和脑子能完成的事,未来可能先要接上某家模型服务、某套 agent 工作流、某个订阅账单。
这不是阴谋论,是商业结构。供应商锁定未必让公司立刻出事,但会抬高平台议价权。基础开发能力一旦外包,团队就得接受外部价格、能力边界和服务稳定性的约束。
对软件工程师来说,比较现实的做法不是拒绝 AI,而是保留手感:
- 用 AI 解释陌生代码、生成草稿、补测试、做探索;
- 关键模块、核心架构、复杂调试,仍要亲手过一遍;
- 不要只看 AI 摘要,要能回到代码本身;
- 每周保留一定比例的纯手写、纯调试、纯阅读训练。
对技术负责人和正在采购 AI 编码工具的团队,动作要更硬一点:
| 管理动作 | 目的 | 不做的后果 |
|---|---|---|
| 给 AI 使用分级 | 区分脚手架、测试、业务逻辑、核心基础设施 | 所有代码都被同一种流程吞掉 |
| 要求关键 PR 说明人类判断 | 让工程师解释取舍,而不是只贴生成结果 | review 变成形式确认 |
| 保留非 AI 路径 | 确保模型不可用时还能开发和修复 | 工作流被供应商状态绑架 |
| 记录 token 成本和重试率 | 看清真实效率,不只看产出速度 | 账单和返工成本被隐藏 |
| 给新人安排手写训练 | 维持基本编码、调试、阅读能力 | 培养出只会指挥 agent 的开发者 |
接下来最该观察的,不是某个模型又快了多少,而是三个变量。
一是 AI 生成代码进入主干后的维护成本。短期 demo 很漂亮,半年后的修改和排障才算账。
二是团队对单一模型供应商的依赖度。越依赖,迁移成本越高,采购谈判越被动。
三是工程师的代码心智模型有没有变薄。这个最难量化,却最要命。
我的判断很简单:AI 编码工具应该留在手边,不该坐上主位。让它加速局部工作,没问题;让它默认接管实现,再让人类在几千行生成代码后扮演“清醒的审核者”,这就有点自欺。
工程管理者要问的不是“我们用了多少 AI”,而是“团队还剩多少不依赖 AI 的判断力”。这才是下一轮软件组织的分水岭。
