智能体核心概念
智能体这个领域的几个基础概念集中在这里:判据、分类、结构。
定义与四要素
智能体:能够通过传感器(Sensors)感知其所处环境(Environment),并自主地通过**执行器(Actuators)采取行动(Action)**以达成特定目标的实体。
| 要素 | 含义 |
|---|---|
| 环境 | 智能体所处的外部世界 |
| 传感器 | 感知环境状态:摄像头、麦克风、雷达,或 API 返回的数据流 |
| 执行器 | 对环境施加影响:机械臂、方向盘;执行一段代码、调用一个服务 |
| 自主性 | 基于感知和内部状态独立决策,而非被动响应刺激或执行预设指令 |
判据落在自主性上。 严格按这个定义,被动响应外部刺激、或只会执行预设指令的程序不算智能体。
四个要素构成一个闭环,缺任何一环都退化成「程序」。
┌─────────────────────────────────────────────────┐
│ 环境 │
│ 外部世界。对 LLM 智能体来说就是 API、用户输入、 │
│ 其他行动者,以及它们的返回 │
└───────┬─────────────────────────────┬───────────┘
│ 感知 ▲ 施加影响
▼ │
┌────────────────────┐ ┌────────────────────┐
│ 传感器 Sensors │ │ 执行器 Actuators │
│ 摄像头 / 麦克风 / 雷达│ │ 机械臂 / 方向盘 │
│ API 返回的数据流 │ │ 执行代码 / 调用服务 │
└─────────┬──────────┘ └────────▲───────────┘
│ 感知序列 │ 动作
▼ │
┌───────────────────────────────────────┴─────────┐
│ 智能体:基于感知与内部状态自主决策 │
│ 架构(Architecture)= 运行它的计算平台 │
│ 程序(Program)= 智能体函数的那个可行近似 │
└─────────────────────────────────────────────────┘智能体函数是「感知序列 → 动作」的映射,数学上是一张可能无限大的表;程序是找出可行近似的那段代码。判据落在自主性上:被动响应外部刺激、或只会执行预设指令的程序不算智能体。
架构与程序:智能体是怎么实现的
Russell & Norvig, Artificial Intelligence: A Modern Approach, 4th ed., 2020 把实现拆成两个概念:
- 架构(Architecture):运行智能体的计算平台(含传感器与执行器)
- 程序(Program):实现**智能体函数(Agent Function)**的那个具体实现
智能体函数是数学意义上的映射——「感知序列 → 动作」。它是一个可能无限大的表;智能体程序则是找出可行近似的那段代码。AI 的核心挑战就在于:用少量代码产生理性行为,而不是靠一张巨大的查表。
一个基本智能体程序反复做四件事:
1. 取当前感知作为输入
2. 可选:用这个感知扩充对环境的模型(即更新「状态」)
3. 可选:基于更新后的状态 + 关于环境如何演化、动作如何影响环境的硬编码知识,
算出有助于选择下一步动作的信息
4. 选择动作第 4 步的三条路径正好对应三种智能体类型:查规则表(反射)、搜索与规划(目标)、效用函数(效用)。第 2、3 步是可选的——省掉它们就是最简单的反射型。
理性智能体
定义:选择能最大化性能度量期望值的动作,给定截至目前的感知序列与智能体内置的知识。
理性依赖四个要素,任何一个变化都会改变「理性」的答案:
- 性能度量——定义成功的程度
- 感知序列——完整的感知历史
- 智能体对环境的知识
- 智能体可用的动作
三条容易被混为一谈的不等式:
理性 ≠ 全知(omniscient) —— 理性基于已有感知,不是基于世界的真实状态
理性 ≠ 先知(clairvoyant) —— 理性不预测未来,只最大化期望值
∴ 理性 ≠ 成功 —— 运气不好时,理性的选择也会失败传统智能体的五级阶梯
Russell & Norvig 的分类,也是后面所有「智能体类型」讨论的底座。
| 层级 | 决策依据 | 典型例子 |
|---|---|---|
| 简单反射 | 「条件-动作」规则,只用当前感知 | 恒温器 |
| 基于模型的反射 | 内部世界模型,追踪无法被直接感知的方面 | 隧道中的自动驾驶:看不到前车,仍维持对其位置与速度的判断 |
| 基于目标 | 搜索与规划,选择导向特定未来状态的行动 | GPS 导航用 A* 规划最优路径 |
| 基于效用 | 为世界状态赋效用值,最大化期望效用 | 时间最短 + 最省油 + 避开拥堵的多目标权衡 |
| 学习型 | 性能元件 + 学习元件,用行动结果修正策略 | AlphaGo Zero 通过自我对弈发现超出人类既有知识的策略 |
五级阶梯的每一级都在补上一级的缺口,其中有两处是质变。
① 简单反射 条件-动作规则,只用当前感知
│ 局限:只在环境完全可观察、且决策仅凭当前感知就够时有效
│ 不满足时会出现两类失败 —— 放弃最优动作,或陷入无限循环
▼ 缺口:没有任何东西告诉它「上一步试过了」
② 基于模型的反射 从感知中抽取信息,维护一个世界状态的表示
│ 模型含两样:世界如何演化 + 智能体的动作如何影响世界
│ ▶ 第一次质变:感知 → 动作 变成 感知 → 状态 → 动作
│ 处理后能看到「看不到但确实存在」的东西
▼ 缺口:行为仍硬编码在规则里,没有「告诉它要做什么」的入口
③ 基于目标 接受一组目标状态,自己搜索与规划出路径
│ ▶ 第二次质变:把「做什么」和「怎么做」分开
▼ 缺口:目标只有二值区分,表达不了「更好的达成」
④ 基于效用 接受一个把状态映射到实数的效用函数
│ 需要比较两个都达成目标、但代价不同的方案时,连续刻度才有必要
▼
⑤ 学习型 性能元件 + 学习元件,用行动结果修正策略
└─ 学习能力横切前四级,不是并列的第五级简单反射的局限,正是阶梯的驱动
简单反射智能体只在环境完全可观察、且决策可以仅凭当前感知做出时才有效。不满足时会出现两类失败:放弃最优动作,或者陷入无限循环——因为没有任何东西告诉它「上一步试过了」。
由此引出「状态」:与其只存感知,不如从感知中抽取相关信息并维护一个世界状态的表示。这就是基于模型的反射智能体,它的「模型」包含两样东西:
- 世界如何演化(与智能体的动作无关的那部分变化)
- 智能体的动作如何影响世界
有了状态,智能体的行为不再被当前感知完全决定,可以处理「看不到但确实存在」的东西。这是阶梯上第一次质变:从「感知 → 动作」变成「感知 → 状态 → 动作」。
目标与效用的区别
前两级的行为是硬编码在规则里的——没有办法「告诉它要做什么」,只能事先把每条规则都写好。要获得自主性,必须能把「做什么」和「怎么做」分开:我们说目标,它自己找路径。
| 层级 | 接受什么输入 | 局限 |
|---|---|---|
| 基于目标 | 一组目标状态 | 目标只有二值区分——达成或不达成,无法表达「更好的达成」 |
| 基于效用 | 一个把状态映射到实数的效用函数 | —— |
目标式智能体的现实问题:目标通常不能靠单个动作达成,于是需要搜索与规划——找出能达成目标的动作序列,这正是 AI 的两个子领域。
效用式的引入是因为目标只给出「满意 / 不满意」的粗糙二分。一旦需要比较两个都达成目标、但代价不同的方案(更快?更省油?更少走弯路?),就需要效用函数给出连续刻度。
三个分类维度
| 维度 | 取值 |
|---|---|
| 决策架构 | 反应式 / 模型式 / 目标式 / 效用式(即上表前四级),学习能力横切 |
| 时间与反应性 | 反应式 / 规划式 / 混合式 |
| 知识表示 | 亚符号主义 / 符号主义 / 神经符号主义 |
反应性 vs 规划性的权衡。 反应式智能体从感知到行动近乎直接映射,延迟低、开销小,代价是短视、易陷局部最优(安全气囊的毫秒级响应、高频交易)。规划式智能体先用世界模型评估不同行动序列的后果再动手,有远见但时间与计算成本高,环境变化快时可能错过行动时机(棋手预想十几步)。LLM 智能体属于混合式——在「思考-行动-观察」循环里,把审议(思考阶段)和反应(行动与观察阶段)拆成一系列微循环。
知识表示三派。
| 范式 | 优势 | 缺陷 |
|---|---|---|
| 亚符号主义(连接主义) | 模式识别强、对噪声鲁棒、能处理图像声音等非结构化数据 | 黑箱不可解释;纯逻辑推理差;会产生看似合理却错误的幻觉 |
| 符号主义 | 透明可解释,推理步骤可完整追溯 | 脆弱:依赖完备规则体系,「知识获取瓶颈」——任何未被覆盖的新情况都可能让系统失灵 |
| 神经符号主义 | 融合两者 | —— |
卡尼曼的双系统理论是现成的类比(KAHNEMAN D. Thinking, Fast and Slow. 2011):系统 1(快、直觉、并行)≈ 亚符号主义;系统 2(慢、有条理、逻辑)≈ 符号主义。LLM 智能体是神经符号主义的实践范例——内核是神经网络,工作过程中又生成思想、计划、API 调用这些明确的符号。
任务环境
PEAS:把环境写清楚
描述任务环境的框架是 PEAS:
| 字母 | 问的问题 |
|---|---|
| Performance | 智能体怎么知道自己在做该做的事? |
| Environment | 智能体在与什么交互? |
| Actuators | 智能体如何影响环境? |
| Sensors | 智能体如何从环境获取信息? |
以本书的智能旅行助手为例,完整填一遍:
| 维度 | 内容 |
|---|---|
| 性能度量 | 行程合理性与用户满意度;工具调用成功率;达成用户约束(预算、日期、偏好);任务完成所需轮数 |
| 环境 | 航司与酒店预订 API、天气服务、景点搜索;其他用户的预订行为与动态调价系统 |
| 执行器 | 调用天气/航班/酒店 API;检索景点;生成自然语言回复 |
| 传感器 | 用户输入;各 API 的返回数据(JSON);上一步动作的执行结果 |
原书表 1.2(智能旅行助手的 PEAS 描述)以图片形式给出,具体条目无法从文本提取。上表是按 PEAS 四项自行填写的,仅用于示范怎么填。
任务环境定义了「问题」,理性智能体是这个问题的解。 所以 PEAS 写不出来,后面所有设计都是猜的。
环境分类的七个维度
R&N 给出一套正交的分类维度。每个维度的前一个选项,都让智能体的工作更容易:
| 维度 | 两端 | 判据 |
|---|---|---|
| 可观察性 | 完全可观察 / 部分可观察 | 传感器能否检测到与动作选择相关的全部方面 |
| 确定性 | 确定性 / 随机性(含策略性) | 下一个状态是否完全由当前状态和动作决定。策略性(strategic)= 除了其他智能体的动作之外都是确定的 |
| 回合性 | 回合式 / 序贯 | 当前决策是否影响后续决策。回合式环境里只有当前(或最近的)感知相关,每次都是独立的一次性动作 |
| 静态性 | 静态 / 半动态 / 动态 | 智能体思考时环境是否会变。半动态= 环境不变,但思考太久会降低性能度量 |
| 离散性 | 离散 / 连续 | 适用于状态集、感知集、动作集、以及时空的解释 |
| 智能体数量 | 单智能体 / 多智能体 | 环境中是否存在其他智能体。多智能体还要看它们是漠不关心、合作还是竞争 |
| 知识 | 已知 / 未知 | 智能体是否事先知道所有动作的结果(如国际象棋里知道棋子被吃就会离场) |
「难」是叠加的。 如果一个智能体处在随机、动态、部分可观察、多智能体、未知、序贯、连续的环境里,它的工作会难得多——七个维度的不利端全占了。
几个经典例子的落点(来自 R&N 的示例表):
| 环境 | 可观察 | 确定性 | 回合性 | 静态性 | 离散 | 单/多智能体 |
|---|---|---|---|---|---|---|
| 单人纸牌 | 否 | 是 | 否 | 是 | 是 | 单 |
| 双陆棋 | 是 | 否 | 否 | 半动态 | 是 | 多 |
| 网络购物 | 否 | 部分 | 否 | 半动态 | 是 | 多(拍卖除外) |
| 出租车驾驶 | 否 | 否 | 否 | 否 | 否 | 多 |
多智能体的四种关系值得单独记:漠不关心、合作、竞争。竞争环境里还需要「随机化行为」——可预测的策略会被对手利用。
环境分类的七个维度里,前一个选项都让智能体的工作更容易。
维度 容易端 ←────────────────────────→ 困难端
可观察性 完全可观察 ────────────────────── 部分可观察
确定性 确定 ──────────────────────────── 随机(含策略性)
回合性 回合式 ────────────────────────── 序贯
静态性 静态 ──────── 半动态 ──────────── 动态
离散性 离散 ──────────────────────────── 连续
智能体数量 单智能体 ──────────────────────── 多智能体
知识 已知 ──────────────────────────── 未知
难点是叠加的:随机 + 动态 + 部分可观察 + 多智能体 + 未知 + 序贯 + 连续,
七个不利端全占,就是最难的那一类环境。
LLM 智能体实际落在哪:四条不利端同时成立
部分可观察 ──▶ 必须有记忆(存已获得的状态)与主动探索(补齐信息)
随机性 ──▶ 要能处理不确定性、监控变化、及时重新决策
多智能体 ──▶ 其他用户、自动化脚本、动态调价系统都是行动者
序贯 + 动态 ──▶ 循环必须持续运行并适应变化,不能假设环境静止LLM 智能体的数字环境落在哪
对照上面七个维度,LLM 智能体所处的环境有四个特性值得单独拎出来(这是原书强调的四条):
| 环境特性 | 对照七维分类 | 对应工程要求 |
|---|---|---|
| 部分可观察 | 部分可观察 | 记忆(存已获得的状态)+ 探索(主动补齐信息) |
| 随机性 | 随机性 | 处理不确定性、监控变化、及时重新决策 |
| 多智能体 | 多智能体(其他用户、自动化脚本、调价系统) | 快速响应,把其他行动者纳入策略 |
| 序贯 + 动态 | 序贯 + 动态 | 循环必须持续运行并适应变化,不能假设环境静止 |
「部分可观察」是这一层最硬的约束——它直接决定了 10-智能体记忆系统 和 02-Agent Loop 的形状。而「序贯」意味着不能把 03-ReAct 的每一步当成独立回合处理。
Workflow 与 Agent 的边界
Workflow 让 AI 按部就班执行指令,Agent 赋予 AI 自由度去自主达成目标。
| 维度 | Workflow | Agent |
|---|---|---|
| 分支从哪来 | 编写时由人枚举 | 运行时由模型推理产生 |
| 覆盖不到的分支 | 系统失灵或走兜底 | 可能自行得出合理处理 |
| 结果可复现性 | 同输入必同输出 | 同输入可能不同输出 |
| 可审计性 | 每条路径可追溯 | 推理链需要额外记录 |
判据是决策逻辑是否需要在运行时确定,而不是任务复杂度。环境越确定、分支越可枚举,Workflow 越够用。这跟 Rule 与 LLM 的边界 是同一类问题:边界画不清时,混合方案(Workflow 管确定性主干,Agent 管开放语义分支)比纯某一种更可靠。
协作架构的三种范式
| 范式 | 编排单位 | 代表 | 主要代价 |
|---|---|---|---|
| 单智能体自主循环 | 一个智能体的「思考-规划-执行-反思」迭代 | BabyAGI、AutoGPT | 上下文容量是硬上限 |
| 多智能体协作 | 角色之间的对话 | 角色扮演式:CAMEL;组织化工作流 + SOP:MetaGPT、CrewAI;对话网络:AutoGen、AgentScope | 通信开销与角色协调成本 |
| 高级控制流架构 | 状态图上的节点与边 | LangGraph | 需要显式建模流程,换来循环、分支、回溯、人工介入 |
越靠下的范式,流程中被预先定义的部分越多、可审计性越强;越靠上,运行时自主决策的比例越高。
三种协作范式沿「预定义了多少」这条轴排列,越往下可审计性越强。
预定义少、运行时自主决策的比例高
▲
│ ① 单智能体自主循环
│ 编排单位:一个智能体的「思考-规划-执行-反思」迭代
│ 代表:BabyAGI、AutoGPT
│ 代价:上下文容量是硬上限
│ └─ 流程里几乎没有预定义的部分,全靠模型临场决定
│
│ ② 多智能体协作
│ 编排单位:角色之间的对话
│ 三种组织方式:角色扮演(CAMEL)/ 组织化工作流 + SOP(MetaGPT、CrewAI)
│ / 对话网络(AutoGen、AgentScope)
│ 代价:通信开销与角色协调成本
│ └─ 预定义了「有哪些角色」,没预定义「它们怎么谈」
│
│ ③ 高级控制流架构
│ 编排单位:状态图上的节点与边
│ 代表:LangGraph
│ 代价:需要显式建模流程
│ └─ 换来的是循环、分支、回溯、人工介入都能被表达出来
▼
预定义多、可审计性强相关
- 02-Agent Loop —— 上面这些概念的运行结构
- 10-智能体记忆系统 —— 「部分可观察」这个约束的直接产物
- Rule 与 LLM 的边界 —— Agent 侧的同源问题:确定性交给规则、开放语义交给模型
参考
- Datawhale. Hello-Agents 第一章. https://hello-agents.datawhale.cc/
- RUSSELL S, NORVIG P. Artificial Intelligence: A Modern Approach[M]. 4th ed. London: Pearson, 2020.
- KAHNEMAN D. Thinking, Fast and Slow[M]. New York: Farrar, Straus and Giroux, 2011.
- https://wikibooks.cn/wiki/Artificial_Intelligence/AI_Agents_and_their_Environments 、https://cs.lmu.edu/~ray/notes/agents/
YJ