觉醒前夜:从规则系统到自主智能体
第 1 章 觉醒前夜:从规则系统到自主智能体
1.1 SHRDLU 的遗产:1968 年那个困惑的下午
1968 年冬,MIT 人工智能实验室。Terry Winograd 坐在一台连接着小型机械臂的 PDP-6 计算机前,输入了一行英文:"Pick up a big red block."(拿起一个大的红色方块。)屏幕上的程序 SHRDLU 准确执行了命令——机械臂伸向积木世界,抓起那块红色立方体,放到了指定位置。Winograd 继续追问:"Grasp the pyramid."(抓住那个金字塔。)机械臂再次精准动作。SHRDLU 看起来无所不能:它能理解指代、记忆上下文、规划动作、甚至回答关于自己行为的元问题。
然而,当 Winograd 故意写下一句语法相似但语义越界的话——"Find a block which is taller than the one you are holding and put it into the box."(找一个比你正在拿着的那个更高的方块,放进盒子里。)——程序突然停住了。光标闪烁片刻,屏幕打出那句后来被无数教科书引用的话:
> "I don't know what that word means." > (我不知道那个词是什么意思。)
那一瞬间,SHRDLU 暴露了整个符号主义时代的隐疾:它的"理解"是一张由人类手工编织的语义网,而网外之物,对它而言就是虚无。它从未真正"知道"方块是什么——它只是被告知"block 这个 token 对应于积木世界里具有特定坐标范围的多面体"。当指令中出现了"taller than"这种需要比较、度量、物理直觉才能成立的谓词,且该谓词从未被预先编码时,整套系统便轰然失效。
半个多世纪过去,当我们回望 AI Agent 的演化史,SHRDLU 像一尊被供奉在玻璃柜里的圣物——技术上堪称精妙,哲学上却留下了一个未解的追问:一台机器究竟要"理解"多少,才能被称为一个智能体? 而这个追问,直到 2023 年大语言模型驱动的自主智能体浪潮席卷全球,才给出了第一份勉强令人满意的答卷。
本章的目的,不是歌颂新一代 Agent 的胜利,而是要追问:为什么是现在?为什么不是 1990 年代专家系统如日中天之时,不是 2016 年 AlphaGo 击败李世石的震撼之夜,而是 2023 年春 AutoGPT 横空出世的那个 GitHub 凌晨?为此,我们将穿越符号主义、行为主义、连接主义三个时代,剖析现代 LLM Agent 的三大本质跃迁,提炼智能体的最小定义,并亲手构建一个 30 行代码的"Hello Agent"——它足够简单,简单到能让你看清整套认知大厦的地基。
1.2 三个时代:符号、行为、连接
要理解"为什么是现在",必须先理解"为什么不是以前"。AI Agent 的发展史并非线性进步,而是三条路径在不同时间窗口的此消彼长。我将其归纳为三个时代,每个时代都给出了"智能体应当如何运作"的某种回答,也都留下了独特的遗产与局限。
1.2.1 符号主义时代(Symbolic Era,1956—1990):精心编织的语义蛛网
符号主义的核心信念简洁而诱人:智能 = 对符号的逻辑操作。如果能把世界建模为一系列命题,再用一阶谓词逻辑(First-Order Logic)作为推理引擎,那么"思考"就变成了一种形式化的演绎活动。Agent 在此框架下被构想为一个三段式结构:感知(将世界翻译为符号)、思考(运用规则推导)、行动(执行符号对应的物理动作)。
这一时代的代表作包括:
- **DENDRAL**(1965—)——斯坦福大学 Edward Feigenbaum 与 Joshua Lederberg 合作,用于从质谱数据推断有机化合物分子结构。它把化学家经验编码为 IF-THEN 规则,证明了"领域知识"的力量。在某些特定任务上,它的性能超过了人类博士。
- **MYCIN**(1972—)——同样是斯坦福的产物,用于诊断细菌感染并推荐抗生素。它引入了"置信因子"(Certainty Factor)来应对医学推理中的不确定性,并首次引入了**解释模块**——能告诉医生"我为什么这么判断"。MYCIN 的诊断准确率据称达到了 72%,高于当时的人类专家平均水平。然而,它从未被实际临床使用,因为系统使用门槛太高、可移植性太差。
- **SHRDLU**(1968—)——前面提到的积木世界奇观,是 Winograd 的博士论文成果,展示了自然语言接口在受限环境下的可能性。
符号主义 Agent 的辉煌与困境,可以用一句话概括:它能解决它知道怎么解决的问题,但无法面对它不知道的问题。这背后是著名的"知识获取瓶颈"(Knowledge Acquisition Bottleneck)——人类专家知识必须由知识工程师手工编码,规则库膨胀到上万条后,维护与推理效率都急剧下降。更致命的是,框架问题(Frame Problem)从未被真正解决:在一个变化的世界里,如何高效地判断"什么没变"?"什么不需要重新推理"?符号系统需要显式地列举每一种"不变",这在开放世界里是不可能的。
1.2.2 行为主义时代(Behaviorist Era,1990—2017):从规则到奖励
20 世纪 80 年代末,连接主义神经网络在经历第二次低谷时,AI Agent 研究的重心转向了另一种思路:与其让机器"理解"世界,不如让它在与世界的交互中"学会"如何行动。这条路径的旗手是强化学习(Reinforcement Learning, RL)。
RL 的核心范式是:Agent 在环境 $E$ 中执行动作 $a_t$,环境返回奖励 $r_t$ 和新状态 $s_{t+1}$,Agent 通过试错学习一个策略 $\pi(a|s)$,使得累积奖励 $\mathbb{E}[\sum_t \gamma^t r_t]$ 最大化。数学上,这可以写为:
$$ \pi^* = \arg\max_\pi \mathbb{E}_\tau \sim \pi \left[ \sum_{t=0}^{T} \gamma^t r_t \mid s_0 \right] $$
其中 $\gamma \in [0, 1)$ 是折扣因子,$\tau$ 是状态-动作-奖励序列(trajectory)。
这一时代的代表作属于游戏领域:
- **TD-Gammon**(1992)——Gerald Tesauro 用时序差分学习(Temporal Difference Learning)训练西洋双陆棋程序,达到接近世界冠军的水平。
- **Deep Q-Network (DQN)**(2013, DeepMind)——首次将深度卷积网络与 Q-Learning 结合,在 Atari 49 款游戏中 29 款超越人类水平。论文发表在 NIPS 上,开启了深度强化学习时代。
- **AlphaGo**(2016)——击败李世石。技术上融合了蒙特卡洛树搜索(MCTS)、策略网络、价值网络,是符号搜索与神经网络的首次大规模成功联姻。
- **AlphaStar**(2019)——在《星际争霸 II》中击败人类职业选手,展示了多智能体协作与长程策略的能力。
行为主义 Agent 的突破与边界同样清晰:它擅长在有明确定义奖励函数的环境中达到超人水平,但在奖励稀疏、规则开放、需要语言沟通的任务上则步履维艰。AlphaGo 不会告诉你它为什么走第七路——它没有"解释"模块;AlphaStar 也不能和你聊聊昨天看的电影——它没有语言界面。强化学习 Agent 本质上是"沉默的优化器",它被设计来最大化数字奖励,而非与人类协作。
1.2.3 连接主义时代(Connectionist Era,2017—至今):语言作为通用接口
2017 年,Google 团队发表论文《Attention Is All You Need》,提出 Transformer 架构。这篇论文最初并未引发公众关注,但它悄然开启了第三个时代:连接主义的新浪潮。真正的临界点出现在 2022 年 11 月——ChatGPT 发布。两个月内月活突破 1 亿,成为人类历史上增长最快的消费级应用。但对 Agent 研究者而言,2023 年 4 月的 AutoGPT 才是真正的"破晓时刻"。
AutoGPT 由游戏开发者 Toran Bruce Richards 创建。它的工作原理简单到令人震撼:把一个大语言模型(如 GPT-4)放进一个循环里,每次循环都让模型自己决定下一步该做什么,然后用代码去执行这个决定,结果再喂回给模型。它的 GitHub 仓库在数周内斩获 10 万 Star,引发了 BabyAGI、AgentGPT、MetaGPT 等一系列模仿与变体。一夜之间,"AI Agent"从一个学术术语变成了 Hacker News 的热词。
这一时代的代表性系统包括:
- **AutoGPT**(2023)——任务分解 + 工具调用 + 长期记忆的早期范式。
- **BabyAGI**(2023)——任务优先级排序 + 向量数据库存储。
- **MetaGPT**(2023)——多智能体协作模拟软件公司,展示了角色分工与工作流。
- **LangChain / LlamaIndex**(2022—)——构建 LLM Agent 的工程基础设施。
- **OpenAI Assistants API**(2023.11)——原生支持 Function Calling、Code Interpreter、Retrieval 的官方框架。
- **Anthropic MCP(Model Context Protocol)**(2024.11)——为 Agent 工具生态制定开放标准的尝试。
连接主义时代的 Agent 与前两代相比,呈现出质变而非量变。我们将在 1.3 节详细剖析这种质变的来源。
```mermaid flowchart LR A["1960s-1990s<br/>Symbolic Era<br/>DENDRAL, MYCIN, SHRDLU"] --> B["1990s-2017<br/>Behaviorist Era<br/>AlphaGo, DQN, AlphaStar"] B --> C["2017-Present<br/>Connectionist Era<br/>AutoGPT, LangChain, MCP"] A --> D["Limitation: Knowledge bottleneck"] B --> E["Limitation: Sparse rewards, no language"] C --> F["Breakthrough: Language as universal interface"] D --> G["Modern LLM Agent"] E --> G F --> G ```
从这张时间轴可以清晰看到:三个时代并非简单替代,而是层层叠加。现代最强的 Agent 系统往往同时包含三个时代的元素——LLM 提供语言理解(连接主义)、Prompt 模板与 Chain-of-Thought 体现规则结构(符号主义)、RLHF / RLFT 训练阶段体现行为主义奖励。但主导范式已经从"手工规则"迁移到了"语言驱动的自主推理"。
1.3 现代 LLM Agent 的三大本质跃迁
如果说现代 LLM Agent 与传统 AI Agent 之间的区别仅仅是"用了更大的模型",那我们将无法解释为什么 2018 年的 BERT、2020 年的 GPT-3 没有引发 Agent 浪潮。真正的差异在于三个结构性的跃迁。
1.3.1 跃迁一:从结构化输入到自然语言理解
传统 AI Agent 的输入是高度结构化的——传感器读数、数据库查询结果、固定的特征向量。现代 LLM Agent 的输入是自然语言,且这种语言是开放域的。
这不是简单的接口升级。当 SHRDLU 接到 "Find a block which is taller than the one you are holding" 这类未预设的指令时,它崩溃了,因为它的"理解"依赖于一套有限词汇表和手工语义规则。而 GPT-4 接到 "I'm planning a surprise birthday party for my 7-year-old nephew who loves dinosaurs, can you suggest three activities and a backup plan in case it rains?" 这类问题,能直接生成一份结构合理、内容翔实的回答。
更深层的差异在于指令遵循的鲁棒性。在 2022 年的一篇重要论文《Sparks of Artificial General Intelligence: Early experiments with GPT-4》中,微软研究院测试了 GPT-4 在多个领域的表现,发现它对未见过的指令组合仍能保持高准确率。这种能力被称为分布外泛化(Out-of-Distribution Generalization, OOD Generalization),其数学本质可粗略理解为:
$$ P_\theta(y \mid x_{\text{novel}}) \approx P_\theta(y \mid x_{\text{train-like}}) $$
其中 $x_{\text{novel}}$ 是训练分布外的输入,$x_{\text{train-like}}$ 是训练分布内的输入。在 LLM 出现之前,没有任何 AI 系统在如此宽泛的输入空间中实现过这种近似。
1.3.2 跃迁二:从刚性规则链到灵活推理链
传统专家系统的推理路径是预定义的——知识工程师需要预先规划好 IF-THEN 规则的触发顺序、处理优先级、回退机制。一旦遇到规则冲突或缺失,系统会陷入死锁或静默失败。
现代 LLM Agent 的推理路径是生成式的。每一步,模型根据当前上下文(包括用户输入、工具返回、历史动作)重新计算下一步动作。著名的 Chain-of-Thought(CoT)技术、ReAct 框架、Tree-of-Thoughts 都是为了让模型"暴露"自己的推理过程,从而提升可靠性。
这种灵活性带来了一个看似矛盾的结果:没有显式规则的 Agent 反而比有显式规则的 Agent 更可靠。原因在于:LLM 在万亿级 token 上预训练时,已经隐式地"见过"了几乎所有常见任务的解决范式。当你问"如何订一张从北京到上海的机票",它不需要被显式编程"先查航班、再选时间、再比价、再下单",它从训练数据中归纳出了这个流程,并能根据用户偏好(如"要靠窗")动态调整。
当然,灵活性的代价是幻觉(Hallucination)——模型可能编造不存在的 API、虚构不存在的工具参数、给出看似合理但实际错误的推理。这正是为什么工具调用(Function Calling)和验证循环(Verification Loop)变得至关重要:让 Agent 的"思考"与外部世界的"事实"建立硬连接。
1.3.3 跃迁三:从封闭世界到可操作的开放接口
传统 AI Agent 几乎是"自闭"的——它们感知世界的方式仅限于预先部署的传感器,行动的方式仅限于预先定义的执行器。一个 MYCIN 系统无法给患者发邮件、查询实时医学文献、预约门诊——它被锁在知识工程师编织的语义笼子里。
现代 LLM Agent 的革命性突破在于工具调用(Tool Use / Function Calling)。2023 年 6 月,OpenAI 在 GPT-4 和 GPT-3.5-turbo 上原生支持 Function Calling,模型可以以结构化 JSON 输出"调用哪个函数、传入什么参数",由外部代码负责执行,再把结果喂回给模型。这看似简单的工程改进,实际上打开了无限扩展的大门:
- Agent 可以调用搜索引擎获取实时信息
- Agent 可以操作数据库进行增删改查
- Agent 可以控制浏览器执行网页交互
- Agent 可以发送邮件、调用 API、操作文件系统
- Agent 可以运行代码、执行计算、生成图表
- Agent 可以调用其他 Agent,形成多智能体系统
工具调用本质上是把 LLM 从"一个封闭的概率模型"变成了"一个可以与外部世界双向通信的认知核心"。这种架构上的开放性,使得 Agent 的能力上界不再由模型参数规模唯一决定,而是由模型智能 + 工具生态的组合决定。
```mermaid flowchart TD U["User Input<br/>Natural Language"] --> P["Perceive<br/>Parse intent, extract constraints"] P --> T["Think<br/>LLM reasoning, plan generation"] T --> D{"Action Decision"} D -->|Internal| A1["Direct response"] D -->|External| A2["Function Call<br/>(JSON structured)"] A2 --> E["Execute<br/>Run code, query API, control device"] E --> O["Observation<br/>Return result/error"] O --> P A1 --> Out["Final Output"] ```
这张图展示了我们称之为 Perceive-Think-Act Loop 的最小循环。它不是某家公司的专利,而是所有现代 LLM Agent 的共同骨架。1.4 节我们将正式定义这个循环。
1.4 智能体的最小定义:感知—思考—行动循环
到目前为止,我们一直在使用"智能体"这个词,但它的精确定义在不同文献中并不统一。Russell & Norvig 的经典教材《Artificial Intelligence: A Modern Approach》将 Agent 定义为"任何能够通过传感器感知环境并通过执行器作用于环境的实体"。这个定义过于宽泛——一只恒温器也算 Agent,但它显然不是我们关心的对象。
在本书中,我们采用一个更聚焦的操作性定义:
> **一个现代 LLM 智能体(LLM-based Agent)是一个系统,它以大语言模型为认知核心,以感知—思考—行动(Perceive-Think-Act