我最近有个很矛盾的体验。
晚上打开 Codex 和 Claude Code,同时推进几件事。一个 agent 在改代码,一个在补文档,一个在查资料,另一个在跑测试。睡觉之前回头看,过去可能要一周才能做完的东西,一个晚上已经堆在仓库里了。
按产出来算,这当然是巨大的提效。
可第二天早上重新打开项目,我有时做的第一件事不是继续往前,而是从头读一遍昨天的产物。这个模块为什么这样拆?这个结论是验证过的,还是 agent 当时顺手选的?这份文档里哪句话是我的判断,哪句话只是模型写得很像我的判断?
代码未必有错,文档也未必不好。让我不舒服的是另一件事:它们明明是“我做的”,我却没有完全在场。
自己的产出开始把我甩在后面
我之前在《用得越多,想得越少:AI 时代的认知退化悖论》里写过,问题不在用不用 AI,而在谁先动脑。
重度使用 AI Coding 之后,我发现这只回答了一半。
现在更难的问题是:动过脑之后,产出真的完成了吗?当代码、文档、分析和方案同时从几个会话里涌出来,谁真正理解它们,谁能解释当时的取舍,谁愿意在三个月后继续维护?
模型的生产带宽可以不断加。Token 不够可以买,会话不够可以开,agent 不够可以并行。可我只有一套注意力,一套工作记忆,一个此刻能真正想清楚的问题。
AI 把生成变得近乎并行,人对复杂问题的理解却仍然高度串行。每切换一个任务,我都要重新加载目标、限制条件、已经排除的方向和下一步要验证的东西。会话可以压缩,人脑没有一个按钮,能把昨晚四条工作线完整恢复到内存。
所以,AI 时代最容易忽略的成本不是 token,而是自己的认知带宽。
我省下来的时间,可能只是欠给了明天
以前自己写一段代码,理解常常发生在写的过程里。变量为什么这样命名,状态为什么放在这里,这个边界为什么不能再往外扩,很多判断是在动手时逐渐形成的。
现在生成只要几分钟。理解不再和产出同步,成了一件可以推迟的事。
“先接受,回头再看。”
“测试过了,应该没问题。”
“让下一个 agent 接着做,它有上下文。”
这些话每说一次,都像从未来的自己那里借了一点时间。债务不会消失,只是换一种形式回来:重新阅读、恢复上下文、验证边缘情况、追问当时为什么舍弃另一条路。
我越来越觉得,AI Coding 里的认知债务其实很具体:产物先落地,理解留在后面。它不是大脑变笨的证据,也不意味着用了 AI 就一定退化。经手过不等于掌握过,完成过也不等于拥有过。
更麻烦的是,AI 省下来的时间很少真的留给理解。大多数时候,我会立刻再开一条任务。生产带宽刚释放,更多并发马上就把它填满。表面上每个 agent 都在忙,实际上排队等我验收的工作越来越多。
我一度把这种画面理解成效率。现在我更愿意把它理解成库存。
信任是在“为什么”答不出来时开始下降的
认知债务只留在自己这里,最多是第二天多花一点时间。可一旦把它交给别人,问题就变了。
一份 PR 表面上是一包代码,背后其实有一份没有写出来的承诺:我理解它为什么这样改,我做过第一轮验证,我能回答问题,出了问题我愿意继续接。
AI 可以帮我写完代码,不能自动替我签下这份承诺。
前阵子开源社区有一个 13K 行的 AI PR。代码量和 AI 参与都不是最麻烦的部分。提交者面对一个很基本的署名问题时,也说不清为什么会这样。维护者看到的就不只是一份待审代码,还是一大包没有明确主人的判断和未来的维护成本。
如果 reviewer 问我“为什么这里要这么设计”,我第一反应是回到会话里问 agent,那就说明第一轮理解并没有完成。我只是把省掉的认知工作原封不动交给了 reviewer。
这也是为什么我不认为 AI 会自动消灭代码所有权。所有权本来就不等于每一行都亲手写。它可以从“我写了这些字符”,上移到“我决定了意图和架构,我检查了关键假设,我愿意纠错和维护”。
让信任下降的不是 AI 写了多少,而是最后没有一个人能站出来说:我知道为什么,我确认过,我来负责。
我开始故意保留几段慢动作
这不是要退回手写一切。手工把 AI 代码再敲一遍,也不会神奇地把理解补回来。需要保留的摩擦,是那些会迫使我重新判断、预测和验证的动作。
我现在不再把“同时开了多少 agent”当成效率指标。能在回来时快速恢复、能完成验收的并发才有价值。否则只是在制造更多等待我理解的库存。
每次长会话结束,我会留一份很短的 Handoff。不是让 AI 总结今天做了什么,而是我自己写清四件事:目标是什么,已经做了哪些关键决定,还有什么没想明白,下一步要验证什么。它不是给 agent 看的日报,是给明天的我留的一条返回路径。
关键改动的 commit message,我也尽量自己写。AI 可以帮我润色,但第一版必须能用自己的话说明:为什么改,舍弃了什么,风险在哪里。如果写不出来,往往不是表达能力有问题,而是我还没有真正拥有这次修改。
测试同样重要,但我开始把“测试通过”和“我理解了”分开。测试可以证明一些结果,没办法替我回答意图和取舍。重要模块在交付前,我会逼自己复述一次。如果解释不了,就不算完成。
过去我最在意的是,怎样让 AI 一次做更多事。
现在我更在意的是,怎样让这些事做完之后,仍然有人理解它们。
AI 可以替我把东西做出来,但不能替我成为那个知道为什么、出了问题愿意负责的人。
产出可以外包,理解和责任不能。