一晃又有好几个月没更新了,上次文章末尾还留了个“作业”,想聊一聊 AI Coding 时代的研发组织变化。不过任鑫和徐文浩在播客《AI 炼金术》[1] 里已经讲得挺透彻,我暂时也没想到什么特别的补充。今天还是随便聊聊最近使用 AI Coding 时冒出的一些随想。
一个类比引发的思考
大概两个月前,我听了一期《AI 炼金术》的播客,主要内容是徐文浩和王建硕讨论 AI Coding 过程中,人是否还要去阅读 AI 生成的代码。
其中提到一个很典型的类比:当前的 coding agent,就像是一个把自然语言转换成程序语言的编译器。如果这个类比成立,那么绝大多数情况下,我们确实不需要去读那些编译出来的代码。
我在之前的实践过程中,也经历过工作方式的摇摆:从看代码,到不看代码,现在又逐渐回归看代码。
总体来说,我还是更同意徐文浩的观点。一方面,coding agent 这个编译器并不是确定性逻辑,自然语言本身也存在大量模糊之处,这和人们对软件执行的确定性预期并不一致。所以在软件项目中,我们仍然主要对代码本身做版本管理,而不是管理 prompt / spec。
另一方面,作为维护这个编译器的人,杠杆最大的工作之一,就是实际去看它的直接产出物。如果非要限定自己只关注写出来的软件功能是否正常,那反而是退而求其次去观测间接反馈,反馈速度和清晰程度都会打不少折扣。
最后,这个编译器 还有个很不一样的特质:它产出的结果,会成为其后续工作 context 的一部分并产生影响。如果没有及时理解这第一手的反馈信息,等到软件不 work 的时候,可能已经积累了巨大的技术债。
从 Cursor 和 Anthropic 今年早些时候发布一些 self-driving codebases 的研究之后,所谓“软件黑灯工厂”的热度已经明显回落。相信如果坚持完全不看任何代码,只让 agent 端到端地干活,几个月内就可能制造出连 agent 都解决不了的 bug。
Understanding is the new bottleneck.
AI 时代是否还需要记忆知识
从这个思考延展开来,会涉及一个很多人可能都思考过的问题:AI 能回答各种问题,甚至能帮助我们推理和思考了,为什么我们还需要记忆和理解?
最近 AI for math 领域的进展很快,比如 OpenAI 前阵子宣布解决了 Navier–Stokes 方程问题。但数学家们跳出来说,他们研究数学的主要目标并不是获取一个证明,而是寻求理解。
我的切身体验也类似:如果缺乏对一个领域的记忆和理解,思考能力会受到很大影响,甚至未来无法提出合理的问题来指引 agent。
历史上也有不少相关研究。比如人的工作记忆容量,大概就是 4 到 7 个记忆块。如果缺乏事实记忆,每个细节都需要去问一下 AI 这是怎么回事,记忆槽位很快就会被占满。如果缺乏 high-level 的理解,那么每个记忆块中的内容也会过于细碎,无法进行有效思考。
在 Herbert Simon 1974 年的文章 How Big is a Chunk [2] 中,研究者分析了国际象棋大师是如何习得高超技能的。他们发现,初学者看到的是这里一个兵、那里一个车等一个个独立的棋子;相比之下,大师们看到的是更复杂的“棋块”,他们会把棋子组合成整体,并能从比单个棋子更高的抽象层面进行思考。
研究人员估计,国际象棋大师在训练期间会记住 25000 到 100000 个这样的棋块模式。正是这种记忆,让他们的推理和思考更加高效,远超常人。
所以,即使我们有了 Google,有了 AI,更好的记忆力依然能带来更强的思考能力。
当然也不仅仅是记忆。就像读一篇论文时,如果仅仅知道每个符号代表的含义,组合起来可能仍然是天书。这些背后高层次模式的归纳学习,需要深入理解才能运用自如,所谓“压缩即智能”。
我们形成的 mental model,像是坚实的大陆;而 in-context learning,只是一叶扁舟,能探索的思维空间非常有限。
有意思的是,这与大语言模型当前的学习和推理方式也有很多相似之处:
- 训练到模型权重中的知识,很像我们通过理解形成的 mental model,拥有非常高的思考和推理效率。
- 而 agent 工作过程中临时获取的新知识与概念(in-context learning),很像我们临时去 Google 查了放进 working memory 的内容,效率相对较低,而且很容易“注意力涣散”。
所以总结来说,不光是在代码领域,各种高阶思考与技能,仍然需要我们记忆和理解大量知识。
当然,也不是所有信息都值得被记住。Google 时代,大家可能会判断“这个信息未来是否搜得到”;在 AI 时代,我们可能要判断的是:“这个信息是否会影响我的思考和行动方式?”
是否能把思考也外包给 AI
读到这里你可能会问:前面都在假设人还需要思考。但从 word2vec 到 AlphaFold,再到思维电路[3],AI 的 mental model 在容量和复杂度上,看起来完全可以轻松超越人类。
如果有朝一日,AI 的思考能力都超过人类了,我们何不整体外包算了?
一个显而易见的答案是:AI 无法承担责任。不过今天不讨论这个分支。
沿着学习与思考这条线,AI 目前也还没有完全超越人类。尤其是学习,要超过人类,还需要解决两大难题:如何在线持续学习,以及如何提升学习的样本效率。
持续学习“前沿”知识
就拿软件开发领域来说吧,让 coding agent 写一些传统业务代码,比如登录、对话交互、管理后台等,基本都是信手拈来。因为模型已经在训练过程中见过大量类似代码知识。这种情况下,我们经常可以提高自己的思考层级,几乎不太需要关注具体实现细节的知识。
但到了 agent 产品开发,情况就大不相同了。你会明显感觉到,LLM 在吸收这些新知识、改变自己 mental model 方面,明显弱于人类的学习和适应速度。
比如 23 年的时候,如果你让模型写一个通过自然语言交互判断用户意图的功能,它很可能会给你写一堆正则表达式,或者下载个 RoBERTa 之类的模型来做 fine-tune,而不知道直接用 chat completions API。
即使到了 26 年,你还是会在做类似任务时,发现模型在这块的一些 mental model 没有跟上来:有时候不知道让模型“背诵”长 ID 是个不好的实践;有时候会固守早年 LLM 的幻觉问题,做一些没必要的设计;有时候不理解 agentic 的工作模式,又回到 LLM workflow 的范式中去,等等。
虽然模型也有 in-context learning 的能力,可以比较快地学习领会这些新概念。但如果没有 mental model 的变化,要把各种细枝末节全都塞进 context 里说清楚,其实不太现实。
在这方面,人的 in-context learning 和 mental model 更新是持续进行的(或许底层还有海马体、新皮层等多个组件参与),因此在很多知识前沿的探索和思考上,效率高了不少。
目前对于这个问题,我们在 agent 中更多是以一种多组件系统的方式来缓解:
- 快学习:通过 context 工程、自动提取 memory、动态生成 skill、test-time training 等机制,让 agent 在工作过程中不断积累和进化。但这会受到注意力机制的限制,如果新知识累积多了却缺乏“内化”,会极大影响思考效率。
- 慢学习:每隔一段时间,对模型进行重新训练(尤其是有算法架构演进时)或者 continued training,更新模型的 mental model。
未来这两种机制的有机融合,或许也会借助模型本身,实现更加自动化和高效的 RSI。
当然,也有对这种方式不满意的大佬。例如提出“The Bitter Lesson”的 Sutton,就搞了个 Oak Lab,希望打造能在部署后真正持续学习的模型。
另外也有很多人提出,AI 似乎无法超越现有分布去提出一个全新概念,从而大幅改变我们思考的空间和问题的可能性。比如从经典力学到相对论、把熵的概念拓展到信息论领域等等。
但我的感受是,模型其实可以提出新概念与新理论,只是验证这些概念是否有用,很可能是一个漫长的过程。这也引出了下一个问题。
样本效率问题
模型另一个广受诟病的问题,是学习中的样本效率太低。就以前面举例的 agent 开发来说,即使已经有一些 agent 类开源项目可以在模型训练中被学习,其思维方式的演进速度仍然不理想。像相对论这样依赖实验做真实验证的,更是漫长等待叠加极少量反馈。
这种根本性限制,使得模型的智能水平呈现“锯齿状”。即便都是写代码,那些容易构造 reward 的场景,模型表现就非常强;但一些方案和架构设计,由于反馈延迟较长、样本少、环境也在不断变化,导致很难快速提升模型效果。
用正则表达式写一个对话智能,然后通过各种模拟测试用例验证,就属于样本量丰富的场景,模型很擅长。但这个系统能不能在真实环境中很好地 scale,有没有足够好的用户体验,当 LLM 出现后是否还是最优解,就属于反馈稀疏的领域了。
再加上我们越来越倾向于把更长程的任务交给 agent 去解决,这个问题会越来越凸显。甚至获取反馈的时间,正在成为制约模型 training 迭代的一个关键瓶颈。
Simulation
接下来回到我们对 scaling law 的信仰,开始大开脑洞。
既然 reality throughput 是瓶颈,我们能不能用 computation 换 reality?
人类很多时候也并不是等到现实世界给出“大结局”才拿到反馈信号。我们会在大脑中推演、模拟,用脑力计算来替代现实世界几个月甚至几年的变迁。
AI 也可以这样做,比如经典 AlphaGo 中的 value network;再比如让 AI 帮忙做对抗性 code review,这不也是一种 AI 的脑内模拟,可以大大丰富奖励信号。
最近读哈萨比斯的传记[4],感觉他对 AI 强大的模拟能力极为乐观:通过“广义进化论”演化出来的自然存在,必然能被“经典图灵机”理解和创造。就像 AlphaFold 那样,我们可以绕过现实实验,直接进行蛋白质结构预测。
但这样的模拟能力是否有天花板?很容易想到一些相关研究:
- 作为观测者,我们所拥有的信息无法达到完备。因此像混沌系统这类,就很难在长时间尺度上做准确预测。
- 计算不可约性[5]:即使像 game of life 这样简单规则的系统,我们都无法找到一种“捷径”来进行预测。
- 宇宙内部的 agent,在理论上无法完美预测这个宇宙的所有问题。这与“预测行为本身会影响预测结果”是类似的意思,参考 Physical limits of inference[6]。
最后一点尤其有趣,让人想到 Active Inference[7] 的理论。人类不仅会根据真实世界的反馈更新自己的 mental model,也会采取主动行为,让真实世界变得更符合自己的 mental model。
即使在采取行动时,人也会综合考虑“改变世界”和“获取信息”这两项因素。这对应我们前面论证过的:现实总是存在一个推演与模拟能够达到的“压缩极限”。
这种原生接入现实世界的 agency,在目前的 AI agent 系统中还很少体现。
思考会被解决吗
回顾前面的内容,我发现人类拥有的快速持续学习能力,很可能是因为我们天然就是在生存压力驱使下进化出来的 online agent。
但这个优势是永久的吗?很可能不是。不要忘了我们的“外层算法”进化论本身,其实是样本效率相当低下的。在 RSI 的框架下,相信 AI 能以更快的效率,进化出一个能够解决这两个问题的内层学习算法。
到那个时候,我们还剩下什么呢?或许应该忘掉效用价值,去关注体验本身。
即使 AI 已经读过世界上所有文学作品,能给出极其深刻的分析,我仍然愿意自己慢慢阅读和体会。
你觉得这一天会在多久之后到来?

参考资料
[1] AI 炼金术: https://www.xiaoyuzhoufm.com/podcast/63e9ef4de99bdef7d39944c8
[2] How Big is a Chunk: https://augmentingcognition.com/assets/Simon1974.pdf
[3] 思维电路: https://www.anthropic.com/news/tracing-thoughts-language-model
[4] 哈萨比斯的传记: https://book.douban.com/subject/38357884/
[5] 计算不可约性: https://book.douban.com/subject/1468622/
[6] Physical limits of inference: https://arxiv.org/abs/0708.1362
[7] Active Inference: https://book.douban.com/subject/35651491/