一.什么是 Agent?
在人工智能领域,"Agent"(我们称之为"智能体")不是什么神秘的概念。你可以把它想象成任何一个能自主感知环境并采取行动以达成特定目标的东西。
一个最简单的例子就是你家里的恒温器。
-
它能感知 (Perceive) 温度。
-
它能行动 (Act) 来打开或关闭空调/暖气。
-
它的目标 (Goal) 是维持你设定的温度。
所以,一个 Agent 必须具备两个核心能力:感知 和行动。
例如我们通过一个实例来看:
设计一个"智能盆栽" Agent
设计一个能自动照顾自己的"智能盆栽" Agent。
这是所有工程师在项目开始前最重要的一步:系统设计和定义。
为了精确地描述一个 Agent,我们通常使用一个叫做 PEAS 的框架。这是我们今天最重要的知识点。
| 框架 | 描述 | "智能盆栽" Agent 的例子 |
|---|---|---|
| P (Performance) | 性能度量:我们如何判断 Agent 做得好不好? | 1. 保持植物存活和健康。2. 最大化节省水和电。 |
| E (Environment) | 环境:Agent 在哪里工作? | 1. 盆栽所在的房间。2. 土壤、空气、光线。 |
| A (Actuators) | 执行器:Agent 可以做什么动作? | 1. 浇水泵(可以打开/关闭)。2. LED 生长灯(可以打开/关闭/调节亮度)。3. (可选)一个小的扬声器,在缺水时发出提醒。 |
| S (Sensors) | 传感器:Agent 可以感知到什么信息? | 1. 土壤湿度传感器。2. 光照强度传感器。3. (可选)温度和空气湿度传感器。 |
Agent 的类型
Agent 可以很简单,也可以很复杂,这取决于它的"大脑"是哪种类型。
-
简单反射 Agent (Simple Reflex Agent)
-
工作方式:完全基于当前的感知来行动。"如果...那么..."。
-
盆栽例子 :如果 土壤湿度低于30%,那么打开水泵。这是一种简单的应激反应。
-
-
基于模型的反射 Agent (Model-Based Reflex Agent)
-
工作方式:它维护一个内部的"世界模型",会考虑过去的状态。
-
盆栽例子 :Agent 记得它"5分钟前刚刚浇过水"。所以如果土壤湿度仍然很低,它会判断可能是传感器坏了,而不是继续疯狂浇水。
-
-
基于目标的 Agent (Goal-Based Agent)
-
工作方式:它有明确的目标,并且会思考"什么样的行动能帮我达成目标?"
-
盆栽例子:它的目标是"让植物在下午3点前恢复健康状态"。它可能会计算出,现在开始浇水,并在1小时后打开生长灯,是达成这个目标的最佳路径。
-
-
基于效用的 Agent (Utility-Based Agent)
-
工作方式:它不仅有目标,还能衡量不同结果的"好坏程度"(效用)。它追求"幸福感"最大化。
-
盆栽例子:它知道"保持植物健康"很重要,但"节约用水"也很重要。它会在多个目标之间做权衡,找到一个最优解,比如:稍微让植物渴一点,但能节省50%的水,这是一个很好的"效用"。
-
二.从"感知"到"行动"的桥梁
如果我们已经定义了 Agent 的"五官"(Sensors)和"四肢"(Actuators),那么,它的"大脑"是如何工作的呢?
这个"大脑"在学术上被称为 Agent 函数 (Agent Function)。
Agent 函数 是一个抽象的数学描述,它定义了 Agent 将会采取的任何一个行动,都取决于它到目前为止所感知到的完整历史序列。
Action = f ( Percept Sequence )
这个概念有点抽象,对吧?在实际工程中,我们不可能把无限长的历史都存起来。所以我们编写的是 Agent 程序 (Agent Program)。
Agent 程序 是 Agent 函数的具体实现。它运行在 Agent 的物理架构(比如扫地机器人的芯片)上,它只根据当前的感知(可能还有一些内部存储的状态)来决定下一步的行动。
举个例子:
-
感知 (Percept): 扫地机器人的悬崖传感器返回
true(意味着前方是悬崖)。 -
Agent 程序 (Program): 内部的一段代码
if cliff_sensor == true: return "stop_and_turn_left" -
行动 (Action): 执行器接收到 "stop_and_turn_left" 指令,立刻停止前进马达,并启动左转马达。
这就是一个最简单的 感知 -> 思考 -> 行动 的完整闭环。