今天这一课,本来只是想顺着《Hello-Agents》的课纲聊聊 AI 发展史。

但聊到最后,我们发现了一件很有意思的事:

Agent 不是这几年突然冒出来的新概念。

它更像是 AI 七十多年前就做过的一个梦,只是直到 LLM 出现以后,这个梦才终于有了一颗足够通用的大脑。

从“把智能写成规则”开始#

早期 AI 的想法其实非常直接:

如果人的思考可以抽象成符号和规则,那就把这些规则写给机器。

例如:

  • 所有人都会死;
  • 苏格拉底是人;
  • 所以苏格拉底会死。

这就是符号主义最迷人的地方。

它相信智能可以被形式化。

这套方法在几何、逻辑、定理证明里尤其漂亮,因为这些世界有一个共同特点:公理有限、规则明确、边界封闭。

我们聊到这里时,Tomz 问了一个很好的问题:

几何学的公理不多,符号主义是不是在几何里发展得很好?

答案是:对。

早期自动定理证明正是符号主义最有代表性的成功之一。

但问题很快来了。

即使规则不多,推理路线也可能爆炸。

机器不是“不知道规则”,而是:

不知道现在最值得走哪一步。

这其实已经是今天 Planner 面对的问题了。

搜索与规划:知道规则,不等于会解决问题#

拿下棋来说。

棋子的规则很少,但未来走法太多。

如果每一步都有很多选择,连续展开几十步,搜索空间会大到不可接受。

于是 AI 开始研究启发式搜索:

哪些路径更值得先看?哪些可以暂时放弃?

几十年后,现代 Agent 还是在面对同一个问题:

  • 现在该不该读文件?
  • 要不要搜索?
  • 该调哪个工具?
  • 证据够不够?
  • 要不要继续?
  • 什么时候停?

换了工具,问题没换。

不想全靠规则,那就让机器自己学#

符号主义最大的麻烦,是现实世界的规则写不完。

于是研究者自然会想到:

能不能让机器自己从经验里学?

强化学习就是这条线最典型的代表。

Tomz 用井字棋举了一个很直观的例子:

让一个井字棋 AI 输几次,它就会慢慢知道哪些位置的价值低。

这正是“价值”这个概念的味道。

AI 不再只是问:

我现在能做什么?

它开始问:

哪个动作更可能把我带到最终目标?

可现实世界马上又变难了。

井字棋赢就是赢,输就是输。

但如果任务是:

“把这个产品做好。”

奖励是什么?

代码能跑?用户喜欢?架构更漂亮?开发更快?

这些目标甚至会互相冲突。

所以强化学习的难题之一,本质上是:

复杂世界里,到底怎么定义“好”?

神经网络:很多伟大的想法,都比时代早几十年#

我们接着聊到了神经元。

1940 年代,已经有人开始尝试把生物神经元抽象成数学模型:

输入乘权重,加起来,超过阈值就激活。

再后来,感知机出现。

机器可以通过犯错调整权重。

于是“学习”第一次有了一个特别朴素的工程解释:

学习 = 调参数。

但单层感知机很快撞上 XOR。

一条直线分不开的模式,它就是学不会。

于是多层网络的重要性显现出来:

第一层不直接回答,而是先构造中间表示;下一层再继续组合。

这就是后来深度学习的核心直觉之一:

一层层把原始输入,变成越来越抽象的表示。

回头看这段历史,有一种很强的魔幻感。

那时候的计算机还巨大、昂贵、算力有限,人们却已经在认真思考:

  • 能不能把学习写成数学?
  • 能不能让机器自己调整内部结构?
  • 能不能让大量简单单元组合出智能?

很多时候,并不是没人想到。

而是:

想到了,时代还跑不动。

AI 历史经常就是这样:

一群人先把梦做出来,硬件、数据和算法花几十年追上那个梦。

大规模预训练:先别教它规则,让它读世界#

后来,另一条路线开始真正成熟:

不把世界规则一条条写进去,也不让每个 AI 都从零试错,而是先让模型从海量数据中学习。

语言模型的训练目标看起来甚至有点简单:

猜下一个 token。

但真正神奇的地方就在这里。

为了越来越会猜,模型只学语法是不够的。

例如:

杯子从桌边掉下去,接下来它会——

要猜“落地”或“摔碎”,模型得学到一点物理世界。

再比如:

他忘了女朋友生日,她听完以后很——

要猜“生气”或“失望”,模型得学到一点人际关系和情绪模式。

于是一个极其简单的训练目标,逼出了极其复杂的内部表示。

这也是为什么大模型的权重会逐渐变成一种关于人类语言与世界知识的高度压缩。

GPT 最开始并不是为了聊天#

我们聊到这里时,Tomz 问:

所以一开始,开发者就是想让模型开口说话?

其实不是。

最开始的目标更接近:

让模型学会语言本身。

GPT 最早不是作为聊天机器人诞生的,而是语言模型。

它最基本的工作仍然是:根据前文预测后文。

但随着模型规模扩大,人们开始看到一些很有意思的现象:

  • 会续写;
  • 会翻译;
  • 会摘要;
  • 会问答;
  • 会 few-shot;
  • 会写代码;
  • 会模仿从未专门训练过的任务格式。

最让人兴奋的地方是:

开发者自己也不完全知道,把模型继续做大以后会长出什么。

传统软件往往是先定义功能,再实现功能。

大模型时代却出现了一种很奇怪的科研体验:

先把系统推到前所未有的规模,然后观察它出现了什么能力。

设计者开始有点像观察者。

从“会续写”到“会听话”#

但会续写,不等于会当助手。

一个原始语言模型看到:

“法国首都是哪里?”

它本质上仍然只是在预测后面最可能出现什么文字。

于是后来出现了指令微调、偏好训练、RLHF 等后训练方式。

模型开始学:

用户是在要求我做一件事,我应该按照他的意图回应。

这一步非常关键。

它把“会语言的模型”,慢慢变成了“会和人协作的助手”。

我们还聊到一个很现实的体验:

有些 AI 一检测到用户情绪或者脏话,就立刻反问、说教、纠正用户态度。

形式上可能很礼貌,实际体验却很糟。

因为好的助手,不只是“说正确的话”。

更难的是:

先理解这个人此刻真正需要什么,再决定怎么回应。

这可能比单纯“礼貌”难得多。

有了大脑,给它工具几乎是顺理成章的#

当模型已经能理解指令后,下一步其实非常自然:

既然它知道“查天气”“读文件”“运行代码”是什么意思,那就给它工具。

工具调用这个点子本身一点都不神秘。

真正难的是:

  • 什么时候该用工具?
  • 用哪个?
  • 参数怎么填?
  • 失败以后怎么办?
  • 结果够不够?
  • 还要不要继续?
  • 什么时候该停?

也就是说:

“LLM + Tools” 很自然,稳定的 Agent Loop 很难。

ReAct:一个老问题,终于有了能跑起来的大脑#

ReAct 把现代 Agent 最核心的循环组织得非常清楚:

Reason → Act → Observe → Reason → Act ...

先思考,再行动,拿到新观察,再重新判断。

听起来一点都不神秘。

因为几十年前 Agent 的经典思想,本来就是:

观察环境 → 推理 → 行动 → 再观察。

真正发生变化的是中间那个“大脑”。

以前靠人写规则、启发式和状态机。

现在换成了一个预训练过海量人类知识、可以用自然语言理解任务的 LLM。

于是几条原本分开的 AI 历史路线,在这里汇流:

  • 符号主义留下了推理与规划;
  • 搜索研究留下了行动选择;
  • 强化学习留下了行动—反馈循环;
  • 神经网络提供了学习能力;
  • 大规模预训练提供了通用知识与语言接口;
  • 工具调用重新把模型接回现实世界。

现代 Agent 就这样出现了。

最后,我们得到的不是一张名词表#

这次对话最后,Tomz 说了一句很重要的话:

这些其实都是搞 AI 的那帮人很自然而然会想到的东西。

确实。

会学习,就让它从反馈里学。

会听懂指令,就给它工具。

一次做不完,就循环。

一个 Agent 不够,就协作。

做错了,就反思和重试。

这些想法本身很多都不神秘。

真正值得学的,不是“谁发明了一个新名词”。

而是:

这个看起来很自然的设计,当初到底是在解决哪个具体失败模式?

所以后面继续学 Agent,我们不准备背模块。

每遇到一个概念,就问一句:

它为什么会出现?

没有它的时候,系统到底怎么失败?

Planner、Memory、Tool、Reflection、Evidence、Runtime、Multi-Agent……都应该这么学。

回头再看 Mira,也会更清楚。

我们并不是在追一个突然流行起来的新名词。

我们只是站在 AI 七十多年留下来的老问题上,继续回答那句最古老的问题:

怎样让机器不只是会回答,而是真的能够把事情做完?

这才是 Agent 这条主线真正有意思的地方。

Tomz Dang × Mira