整段历史可以压成一条线:
第一站:规则系统
符号主义(Symbolism):大型规则引擎
把现实里的概念变成程序能处理的符号,再写规则让程序推理。
对软件工程师来说,它就是大型规则引擎:
if (发烧 && 咳嗽) {
return '可能是呼吸道感染'
}- 规则少时,稳定、可解释、容易排错。
- 规则多了,就会出现条件爆炸、规则冲突和大量漏网情况。
专家系统(Expert System)
把某个领域专家的经验写成规则,让程序代替专家做判断。
- 知识库:
- 存事实和
IF-THEN规则,像领域规则配置。
- 存事实和
- 推理机:
- 读取事实、匹配规则、推出结论,像规则解释器和执行器。
即使今天的 Agent 虽然用了 LLM,但工具协议、权限、业务校验和停止条件仍然要靠明确代码。规则没有消失,只是不再承担全部智能。
规则系统为什么不够
- 知识获取瓶颈:专家经验很难完整。
- 常识问题:人默认知道的事,没写进系统就等于不知道。
- 脆弱性:输入超出规则范围,系统就可能失效。
- 框架问题:一次行动后,如果所有变化和不变都要写清,状态规则会迅速爆炸。
根因:开放世界里的输入、状态和例外写不完。
第二站:会说话不等于会做事
规则写不完之后,人们又遇到另一种错觉:系统只要说得像人,就好像真的会理解、会办事。
ELIZA
1966 年的聊天程序。它不理解句子意思,只做两件事:
- 用关键词和句式规则匹配用户输入。
- 把匹配到的片段塞进固定模板,改写成反问。
用户:I am feeling sad.
匹配:I am (.*)
回答:How long have you been feeling sad?对工程师来说,它就是正则 + 模板字符串。用户感觉在被倾听,程序其实只在改写文本。
ELIZA 效应
人一旦看到流畅、像人的输出,就容易把「说得像」当成「真理解了」。
这个错觉今天还在,只是从聊天升级到了办事:
| 看起来像 | 实际只说明 |
|---|---|
| 回答流畅、态度可靠 | 模型生成了一段像样的文本 |
| 模型输出了工具调用 | 它表达了「想调用」的意图 |
| 模型说「任务完成」 | 它生成了完成声明 |
真正成立的只有环境里的状态变化、工具返回值和事先约定的验收条件。Agent 工程要对抗的,正是这种把流畅输出误当成真实结果的习惯。
第三站:模型从数据里学规律
联结主义(Connectionism)
知识不再写成可读规则,而是存在神经网络的参数里。
- 符号主义:人写规则,程序执行。
- 联结主义:人提供数据和训练方法,模型自己调整参数。
今天的神经网络、Transformer 和 LLM 都来自这条路线。
Agent 开发者需要知道的三个模型词
| 名词 | 大白话 | 会不会改变模型参数 |
|---|---|---|
| 预训练 | 用海量通用数据训练出基础模型 | 会 |
| 微调 | 再用特定任务数据调整模型 | 会 |
| 上下文学习 | 在 prompt 里给说明和例子,让模型当场照着做 | 不会 |
Agent 开发通常工作在推理阶段:选择模型、组织上下文、定义工具、运行任务,而不是训练基础模型。
LLM 还不是 Agent
LLM 本质上是一个根据输入生成下一段内容的模型。它可以判断下一步,但它自己:
- 不知道外部系统此刻的真实状态。
- 不会自动把一句决定变成真实 API 调用。
- 不会天然保存完整任务状态。
- 不知道什么时候才算真正完成。
所以 LLM 是 Agent 的决策核心,不是完整的 Agent。
第四站:Agent 运行时
Agent 开发真正要做的是:在 LLM 外面补齐一个能持续办事的运行时。
while (!done) {
const observation = readEnvironment()
const action = llm.decide({ goal, observation, memory, tools })
const result = await execute(action)
memory.push(result)
}后面会反复遇到的核心名词
- 目标(Goal):这次任务最终要达到什么结果。
- 状态(State):任务现在进行到哪里,环境当前是什么样。
- 感知(Perception):从用户、工具或环境读取信息。
- 观察(Observation):一次读取或行动后拿到的具体结果。
- 规划(Planning):把目标拆成步骤,决定下一步做什么。
- 记忆(Memory):保存后续决策还需要的信息,不等于模型参数。
- 工具(Tool):Agent 可以调用的外部能力,例如搜索、API、终端和文件系统。
- 工具调用(Tool Call):模型表达想调用哪个工具、传什么参数;它还不是执行结果。
- 行动(Action):运行时真的调用工具,改变环境。
- 反思(Reflection):
根据执行结果检查问题并修正下一步,不等于重新训练模型。 - Agent Loop:把观察、决策、行动和新观察不断串起来,直到完成或触发停止条件。
可以先把现代 Agent 记成:
Agent = LLM + 状态 / 记忆 + 工具 + 执行循环 + 权限和停止边界。
两个后面会遇到,但现在不用深挖的方向
强化学习(Reinforcement Learning,RL)
强化学习解决的是:在和环境不断互动时,怎样靠试错学会更好的决策。
它不是先拿一份标好的答案集去学,而是:
- 观察当前状态。
- 按策略采取行动。
- 环境返回新状态,并给出奖励或惩罚。
- 用这个反馈更新策略,让以后更容易选到更好的行动。
AlphaGo 的自我对弈就是典型例子:看棋盘 → 落子 → 按胜负拿奖励 → 改策略。它追求的不是某一步即时奖励最大,而是整局的长期回报。
现在先只分清它和普通 Agent Loop:
| 普通 Agent Loop | 强化学习 | |
|---|---|---|
| 环境反馈怎么用 | 追加到上下文,本轮继续推 | 当成奖励,用来改策略 |
| 会不会改模型 / 策略参数 | 不会 | 会 |
| 影响范围 | 主要影响当前这次任务 | 影响以后同类情况怎么选 |
两者都在「和环境互动后再决定下一步」,所以容易混。记住一句就够:
Agent Loop 改的是这次任务的上下文;强化学习改的是以后怎么做决策的策略。
等读到 Agentic RL,再展开
State、Action、Reward、Policy。现在只要不把「上下文里继续推」误当成「已经在做强化学习」。
心智社会与多智能体
心智社会是 Marvin Minsky 的观点:复杂智能可以由很多只会做一件事的简单单元协作产生。
它启发了多智能体系统(MAS):多个能够独立决策的 Agent,通过分工和通信完成任务。
对工程师来说,先类比成模块或服务拆分:拆得开才有价值。 否则:任务不能真正分工时,多 Agent 只会增加通信、上下文丢失和排错成本。
历史名字,有个影响就行
| 名字 | 一句话解释 | 需要掌握到什么程度 |
|---|---|---|
| PSSH | 智能可以通过符号和符号运算实现的早期假说 | 听过即可 |
| MYCIN | 用规则辅助诊断感染的医疗专家系统 | 知道规则系统能在垂直领域有效 |
| SHRDLU | 在积木世界里完成理解、规划和行动的早期系统 | 知道封闭世界有效、开放世界难泛化 |
| ELIZA | 用模式匹配模拟聊天的早期程序 | 理解 ELIZA 效应 |
| Society of Mind | 复杂智能来自多个简单单元协作的理论 | 用于理解多智能体思想来源 |
其实可以忽略
别混淆这些词
| 容易混淆 | 区别 |
|---|---|
| LLM / Agent | LLM 是模型;Agent 是包含模型、状态、工具和循环的完整系统 |
| 模型参数 / 记忆 | 参数来自训练;记忆是运行任务时保存的信息 |
| 训练 / 推理 | 训练会更新参数;Agent 开发主要在推理时编排模型和工具 |
| 工具调用 / 工具执行 | 前者是模型生成调用意图;后者是运行时真的执行 |
| Agent Loop / 强化学习 | 前者在上下文里继续任务;后者通过奖励更新策略 |
| 单 Agent / 多 Agent | 前者一个决策循环;后者还要解决多个主体的通信和协调 |
历史和易混词先到这里。后面真正要学的,是让模型变成能办事系统的那几块:
- Agent 范式:
- 怎样规划、行动、观察和反思。
- Agent 框架:
- 怎样保存状态、编排节点和控制循环。
- 记忆与上下文:
- 什么信息该留下,怎样送回模型。
- 工具与协议:
- 模型怎样安全、稳定地连接外部能力。
- 评测:
- 怎样证明任务真的完成,而不是模型自己说完成。
考考你
智能体是怎么发展到今天这种形态?
- 早期系统靠人把知识写成规则,稳定、可解释,但开放世界的情况和例外写不完。
- LLM 改成从数据中学习,获得了语言理解和泛化能力;但模型本身只会生成下一步。
- 现代 Agent 再给 LLM 接上状态、工具、执行循环和安全边界,让模型能读取真实环境、采取行动,并根据结果继续调整。
专家系统和 LLM Agent 最大的区别是什么?
专家系统主要执行人提前写好的规则;LLM Agent 可以根据自然语言目标和当前环境动态决定下一步。前者更确定,适合规则清楚的场景;后者覆盖面更广,但必须用权限、校验和兜底控制不确定性。
LLM 和 Agent 的区别是什么?
LLM 是做理解、判断和生成的模型。Agent 是完整系统:LLM + 状态 + 工具 + 执行循环 + 安全边界。模型说要做什么,不等于系统已经做完。
为什么现代 Agent 是混合架构?
因为不同问题适合不同方法:
- 大模型:LLM 处理模糊语言和开放问题;
- 工程:代码、工具协议、权限和停止条件提供确定性;
- 运行时:把二者串成可执行闭环。
最后记住三句话
- 规则系统的问题不是没用,而是开放世界里的情况
写不完的,太多了,指数增长。 - LLM 解决了很多问题不必手写规则,但没有自动解决可靠执行。
- Agent 开发就是在模型外面补齐状态、工具、循环和边界,让语言判断变成真实行动。