
AI 五分钟解了你一周的 bug,然后你不开心了

onevcat 前阵子写了一篇文章,标题叫《当编程变得不再有趣》。
起因是一个 iOS 崩溃。他维护的 Kingfisher 在 iOS 26.5 上出了一类新 crash,死在 Data 拷贝深处,和大块内存分配失败有关。按他的经验,搭内存压力测试床、翻 crash log、读汇编,至少搭进去一个周末。
他把问题丢给 Fable,本意只是让它先分析几种可能性。五分钟后,它回了一段话:用 dyld 的 interpose 机制拦截了 malloc 全家,编了一个动态库,凡超过 100MB 的分配一律拒绝,配合 mock server,崩溃栈一字不差地出现了。
它没有列”可能的原因”和”排查清单”,跳过猜测,直接拿了证据。
更让他绝望的是另一件事。他让 Fable 给缓存加个统计功能,一个小活。做完后 Fable 顺口说:这里有个 bug。MemoryStorage 用 Set 记录缓存键,NSCache 内存吃紧时自动清理对象但不通知 Set,于是 Set 里留下了一批”亡灵键”。他翻 git blame——那段代码是他 2018 年写的,七年了,几千条 issue,无数双眼睛扫过,谁都没看见。Fable 只是路过,顺手修了。
施法乐趣
onevcat 用了一个准确的比喻:他从”魔法师”退到了”祈愿者”。
编程的乐趣来自施法本身。你理解问题、拆解问题、用自己的手写出解决方案,看着它跑起来。“我亲手搞定了一件难事”的满足感,是很多人入行的原因。
现在 Agent 把施法这一步包了。你还是要理解问题、拆解问题,但”亲手写出解决方案”越来越不属于你。留给你的是想清楚要许什么愿,然后验证 Agent 许的对不对。
我自己也有类似的感受。以前花一下午调通一个棘手的问题,和今天让 Agent 三分钟搞定同样的事,体验完全不同。后者更高效,但少了什么——不是结果,是过程,那种和问题搏斗的过程。

这不是 bug,是 feature
但如果诚实地想一想,那种搏斗的乐趣,恰恰是效率的敌人。
你花一个周末搭测试床、翻汇编、复现崩溃,成就感很强。但团队和用户等的是修复,不是你的成就感。五分钟确认问题并给出修复方案,对他们来说才是正确答案。
编程的乐趣被剥夺,不是 AI 的副作用,是它的主要效果。 AI 的核心价值就是用机器时间替换人的时间,而编程里最耗时间的部分——调试、排查、试错——正好是最有趣的部分。它们被拿走不是意外,是目的。
接受这一点很难。因为这意味着你引以为豪的技能正在变成和打字速度一样的东西——有用,但不再稀缺。
新的调试对象
onevcat 在文章结尾说,他的工作重心从面向用户的功能开发,转向了帮团队搭 Agent 工作流。他说了一句话值得拿出来单独看:
“调试对象从内存和线程,换成了流程、习惯和人心。”
Agent 能写代码、修 bug、做重构,但它不能帮团队建立使用 Agent 的工作方式。它判断不了哪些任务该让 Agent 做、哪些不该,决定不了 Agent 的输出应该怎么验收,处理不了”同事不信任 Agent 代码”这种心理障碍。这些是人的活。

而做这些活需要的能力,和写代码时锻炼的能力有大片交集:拆问题、系统思考、在模糊条件下做判断。区别是对象变了——从代码变成了人和流程。
我自己做这个转变的体会是:新的乐趣确实存在,但它和旧的完全不一样。 旧的像解谜,反馈明确,跑通了就是赢了。新的更像种地,反馈周期长,种下去不知道什么时候收,甚至不确定种对了没有。
不是所有人都能从第一种乐趣跳到第二种。但如果你守着旧位置不动,你面对的不是 Agent 取代你,而是一种更持久的消耗:每天看着 Agent 几分钟完成你的拿手活,然后你负责检查它的作业。
一个自测
如果你也觉得”编程不再有趣了”,问自己一个问题:当 Agent 用你想不到的方式秒杀了一个问题,你的第一反应是什么?
如果是”它怎么做到的,我要搞懂这个方法”——你还在学习,施法乐趣会换一种形式回来。
如果是”这本来应该是我来解的”——你守的不是价值,是领地。这种感觉只会越来越疼。
想清楚自己要许什么愿,并不比背熟咒语来得容易。 但这已经是我们这代程序员必须走的路了。