AI智能体:导论(第一部分)
AI 智能体:从零开始构建智能体(第二部分)
AI 智能体:框架篇(第三部分)
在这篇文章中,我们来聊聊不同类型的 AI 智能体,它们是怎么实现的,有哪些实际应用,以及各自的优点和缺点。从简单的“反射型智能体”到复杂的“多智能体系统”,我们会一起看看这些模型是如何驱动自动化、辅助决策,以及解决各种智能问题的。
人工智能里的智能体,可以根据它们的行为对感知到的智能和能力产生的影响来分类,比如:
- 简单反射型智能体 (Simple reflex agents)
- 基于模型的智能体 (Model-based agents)
- 基于目标的智能体 (Goal-based agents)
- 基于效用的智能体 (Utility-based agents)
- 学习型智能体 (Learning agents)
- 分层智能体 (Hierarchical agents)
- 多智能体系统 (Multi-Agent Systems, MAS)

了解了每种智能体的特点,我们就能更好地改进它们的性能,让它们做出更棒的行动。下面,咱们就来详细看看这些 AI 智能体。
简单反射型智能体,就像它的名字一样,只在特定动作或条件发生时才会“行动”。这类 AI 智能体只会根据预先设定好的一套规则来反应,做决定的时候不会考虑过去的经验。所以,它们只适合做一些不需要动脑筋的简单任务。

class SimpleReflexVacuumAgent: def __init__(self): self.location = "A" self.actions = [] def perceive_and_act(self, current_location, is_dirty): if is_dirty: self.actions.append Agent 智能体("Suck") print(f"Cleaned {current_location}") else: if current_location == "A": self.actions.append("MoveRight") self.location = "B" else: self.actions.append("MoveLeft") self.location = "A" print(f"Moved to {self.location}") # 执行 agent = SimpleReflexVacuumAgent() percepts = [("A", True), ("A", False), ("B", True), ("B", False)] for loc, dirt in percepts: agent.perceive_and_act(loc, dirt)
这段代码实现了一个直接的“刺激-反应”机制,也就是说,智能体会根据对环境的感知(房间脏不脏)来触发预先设定好的清洁动作。
工作原理:简单反射型智能体是按照“条件-动作”规则来工作的,也就是说,它们只会对当前的输入(感知)做出直接反应,不会考虑过去的经验。这类智能体特别适合用在这样的环境里:
- 完全可观察(智能体能完全掌握环境的状态)。
- 确定性(根据动作就能预测结果)。
机制:智能体按照预先设定好的一套规则来决定做什么。
举个例子,一个吸尘器智能体可以在两个地方(A 和 B)之间来回移动,只有发现脏东西的时候才会开始吸尘。 因为它只根据当前的情况来行动,所以它不会记住之前的状态,也不会考虑过去的决定。
适用场景:这类智能体特别适合做那些简单的、基于规则的任务,这些任务不需要根据历史数据来做决定。一些常见的例子包括:
- 自动客服:一个基于规则的聊天机器人,能识别像“重置密码”这样的关键词,然后给出预先设定好的操作指南。
- 智能温控器:当温度低于某个特定值时,自动打开暖气。
- 工业自动化:一些基本的物联网设备,只对直接输入做出反应,不需要复杂的处理。
- 设计和实现起来很简单,不需要太多计算资源。
- 能对环境变化做出实时反应。
- 在传感器输入准确、规则设计合理的情况下,非常可靠。
- 不需要大量的训练,也不需要复杂的硬件。
- 难以适应变化的部分可观察环境。
- 没有记忆能力来存储先前的互动信息。
- 不具备通过学习来不断改进决策的能力。
基于模型的智能体是简单反射型智能体的升级版,它能记住环境的内部状态,从而应对部分可观察的情况。 这种智能体不仅会根据当前的感知来行动,还会结合一个代表不可见世界的内部状态。它的内部状态会根据两方面来更新:
- 环境在不受智能体影响的情况下是如何变化的。
- 智能体的动作会对环境产生什么影响。
还有一种更谨慎的基于模型的反射型智能体,它会在行动之前,先考虑一下可能产生的后果。

class ModelBasedVacuumAgent: def __init__(self): self.model = {"A": "Unknown", "B": "Unknown"} self.location = "A" def update_model(self, loc, status): self.model[loc] = "Clean" if status else "Dirty" def decide_action(self, current_loc, is_dirty): self.update_model(current_loc, is_dirty) if is_dirty: return "Suck" elif self.model["A"] == "Clean" and self.model["B"] == "Clean": return "Shutdown" else: return "MoveRight" if current_loc == "A" else "MoveLeft" # 使用 agent = ModelBasedVacuumAgent() print(agent.decide_action("A", True)) # 输出:Suck
通过维护一个“世界模型”和资源状态,即使传感器有局限性,智能体也能做出明智的决策。
基于模型的反射型智能体也是按照“条件-动作”规则来决定在特定情况下该做什么。不过,和简单反射型智能体不同的是,它会维护一个内部状态,来跟踪环境的变化,从而做出更好的决策。这样一来,即使在部分可观察的环境里,它也能有效地工作。
基于模型的反射型智能体的工作流程可以分为 4 个关键步骤:
- 感知:智能体利用传感器来感知周围环境的当前状态。
- 建模:根据观察到的信息,构建一个关于环境的内部模型。
- 推理:智能体评估内部模型,然后根据预先设定好的规则或经验,来决定最佳行动方案。
- 行动:智能体执行选定的动作。
适用场景:基于模型的反射型智能体在很多行业都有广泛应用,特别是在那些需要动态适应和实时决策的系统里:
- 智能库存管理:AI 系统可以跟踪库存水平,分析采购历史,预测需求变化。
- 金融交易系统:自动交易智能体可以维护市场模型,同时对实时的价格变化做出反应。
Amazon Bedrock 就是一个很典型的基于模型的反射型智能体。
Amazon Bedrock 是什么?
Amazon Bedrock 是一项由 AI 驱动的服务,它利用基础模型来:
- 模拟操作
- 从真实数据中获取洞察
- 预测结果
- 做出明智的决策,从而进行优化和规划
Amazon Bedrock 的工作原理:
- 它会利用实时数据不断改进自己的模型。
- 它能预测可能出现的情况,并通过模拟来优化决策。
- 它会动态调整模型参数,确保适应性和效率。
通过基于模型的推理,Amazon Bedrock 展示了 AI 在复杂环境中如何增强决策能力。
- 增强的感知和记忆:智能体维护一个内部模型,来跟踪环境的长期变化。
- 更好的决策:和简单反射型智能体不同,它能利用历史数据进行推理,从而应对部分可观察环境中的不确定性。
- 优化的任务执行:通过掌握环境信息,这类智能体能更高效地导航,并预测未来的情况。
- 构建和维护模型可能需要大量的计算资源。
- 模型可能无法很好地捕捉真实环境的复杂性。
- 模型无法预测所有可能出现的情况。
- 模型需要经常更新,才能保持最新状态。
- 模型可能难以解释和理解。
基于目标的智能体是 AI 驱动的系统,它会利用环境信息来实现特定的目标。和简单反射型或基于模型的智能体不同,这类智能体会确定达到预期结果所需的最佳决策和行动顺序。
这类智能体会利用搜索算法和启发式方法,来找到实现目标的最有效路径。由于它们具有结构化的决策过程,所以特别适合需要战略规划和适应性的复杂任务。

目标驱动的行为:以目标为导向的智能体会选择能最大程度推进目标的行动,通常会用到搜索和规划算法。
目标追踪:智能体会评估当前状态与目标之间的差距,选择能缩小差距的行动。复杂的实现可能会用到图遍历算法。
class GoalBasedAgent: def __init__(self, target): self.goal = target self.actions = [] def path_planning(self, current_state): # 简化的 A* 寻路逻辑 if current_state == self.goal: return "Goal achieved" return "Move closer" if current_state < self.goal else "Adjust path" agent = GoalBasedAgent(100) print(agent.path_planning(75)) # 输出:Move closer
适用场景:基于目标的智能体特别适合需要结构化规划和适应性的任务。一些典型的应用包括:
- 自动驾驶汽车:AI 汽车能规划路线,安全到达目的地,同时动态调整以避开障碍物。
- 机器人:基于目标的机器人可以执行复杂的任务,比如仓库自动化、太空探索和工业操作。
- 计算机视觉和自然语言处理:AI 模型可以分析图像、视频和文本,从中提取有意义的信息,并做出相应的反应。
Google Bard 就是一个基于目标的智能体,它的目标是为用户的问题提供准确、高质量的回答,并选择能帮助用户找到相关信息的行动。虽然它也是一个学习型智能体,但它的目标导向性确保了它的回答能满足用户的需求。
- 容易实现和理解。
- 能高效地实现特定目标。
- 可以根据目标完成情况轻松评估性能。
- 可以和其他 AI 技术结合,创建更高级的智能体。
- 非常适合定义明确、结构化的环境。
- 可以用于各种应用,比如机器人、游戏 AI 和自动驾驶汽车。
- 只能实现特定目标。
- 无法适应不断变化的环境。
- 对于变量太多的复杂任务,效率不高。
- 需要大量的领域知识来定义目标。
基于效用的智能体是 AI 驱动的决策者,它会根据“效用函数”来选择行动。效用函数用来衡量一个结果有多好。和基于规则或基于目标的智能体不同,这类智能体会评估多种可能的行动,然后选择预期效用最高的那个,从而做出更灵活、更适应性的决策。
在复杂和不确定的环境中,当需要比较多个选项并动态做出最佳选择时,这类智能体特别有用。

量化决策:这类智能体利用效用函数来评估行动结果,优化的是最大预期值,而不是单纯地实现或不实现目标。
优化逻辑:效用函数会将多个因素综合成一个单一的指标,从而可以比较性质不同的结果。
def utility_function(cost, time, risk): return (0.5 * (1/cost)) + (0.3 * (1/time)) - (0.2 * risk) actions = [ {"cost": 200, "time": 5, "risk": 0.1}, {"cost": 300, "time": 3, "risk": 0.2} ] best_action = max(actions, key=lambda x: utility_function(x['cost'], x['time'], x['risk'])) print(f"Optimal action: {best_action}")
为了确定最佳行动方案,基于效用的智能体会遵循一个结构化的流程:
- 环境建模:智能体构建一个关于周围环境的表示,这个表示可以很简单,也可以非常复杂。
- 效用评估:利用概率分布和预先定义好的效用函数,评估每个可能结果的预期效用。
- 决策:智能体选择预期效用最高的行动,以最大程度地提高成功率。
- 持续优化:这个过程会在每个决策点重复进行,让智能体能动态适应不断变化的情况。
适用场景:基于效用的智能体广泛应用于注重优化的应用中,包括:
- 资源分配:选择分配计算能力、带宽或资金的最有效方式。
- 调度和规划:根据各种限制条件,选择任务的最佳时间段。
- 推荐系统:在预算和旅行时间之间找到平衡,推荐最佳的机票。
- 游戏 AI:在策略类电子游戏和模拟中进行决策。
购物卡智能体是一款 AI 工具,它的目标是帮助持卡人最大程度地利用卡片获得奖励和福利,它就是一个基于效用的智能体。
购物卡智能体 的工作原理:
- 它会给不同的用户行为(比如购物、支付账单、兑换奖励)分配数值(效用分数)。
- 然后,它会比较每种情况下可能的行动,根据效用值来权衡利弊。
- 它利用启发式方法和 AI 技术来简化和提高决策效率。
通过不断选择预期效用最高的行动,购物卡智能体能确保用户获得尽可能多的经济利益。
- 处理不确定性:能在动态和不可预测的环境中做出最佳决策。
- 比较决策:评估多个选项,并选择最佳的行动方案。
- 灵活适应:根据不断变化的输入和结果调整策略。
- 需要一个准确的环境模型,否则会导致决策错误。
- 计算成本高,需要大量的计算。
- 不考虑道德或伦理因素。
- 人类难以理解和验证。
AI 学习型智能体是一种软件智能体,它能从过去的经验中学习,并不断提高自己的性能。和基于规则的系统不同,这类智能体一开始只有基本的知识,然后通过机器学习技术自动适应。
通过不断分析反馈和互动,学习型智能体能改进自己的行为,这使得它们非常适合动态和不断变化的环境。
学习型智能体主要由四个部分组成:
- 学习元素:负责根据环境中的经验进行学习和改进。
- 评判元素:评估智能体的性能,并提供改进反馈。
- 性能元素:根据学习元素和评判元素的见解,执行外部行动。
- 问题生成器:提出新的行动,以产生能促进学习的信息经验。

自适应智能系统:学习型智能体通过经验来提高性能,通常会用到强化学习框架。
学习机制:Q 表会根据收到的奖励进行更新,逐渐优化行动选择。
import numpy as np class QLearningAgent: def __init__(self, states, actions, alpha=0.1, gamma=0.9): self.q_table = np.zeros((states, actions)) self.alpha = alpha self.gamma = gamma def learn(self, state, action, reward, next_state): max_future_q = np.max(self.q_table[next_state]) current_q = self.q_table[state, action] new_q = (1 - self.alpha) * current_q + self.alpha * (reward + self.gamma * max_future_q) self.q_table[state, action] = new_q # 初始化智能体,有 5 个状态和 4 个动作 agent = QLearningAgent(5, 4) agent.learn(1, 2, 10, 3)
AI 学习型智能体在一个持续的反馈循环中运行,这使得它们能够观察、学习和适应:
- 观察:智能体利用传感器或输入源从环境中收集数据。
- 学习:利用算法和统计模型分析数据,识别模式并改进知识。
- 行动:根据学到的见解,智能体在环境中做出决策并采取行动。
- 反馈:智能体收到奖励、惩罚或环境提示,以评估其性能。
- 适应:利用反馈,智能体更新其知识和决策过程,不断改进。
这个循环会不断重复,让智能体能改进决策,并适应不断变化的环境。
适用场景:学习型智能体在需要持续改进和个性化的场景中特别有用:
- 电商个性化:AI 驱动的推荐系统会分析用户行为,以改进定向广告。
AutoGPT(由 Significant Gravitas 开发)就是一个很好的学习型智能体例子。
AutoGPT 的工作原理:
假设用户想买一部智能手机,并让 AutoGPT 对市场上排名前十的智能手机进行市场调研。
- AutoGPT 会分析各种来源的产品功能、评论和规格。
- 它会使用一个子智能体程序来验证网站的可信度,以确保可靠性。
- 最后,它会生成一份综合报告,列出排名前十的智能手机品牌的优缺点。
通过观察、分析和改进流程,AutoGPT 能不断提高性能,这使得它成为学习型智能体的典型代表。
- 智能体能根据 AI 的决策将想法转化为行动。
- 学习型智能体能遵循基本的命令(比如口头指令)来执行任务。
- 和执行预定义动作的经典智能体不同,学习型智能体能随着时间不断进化。
- AI 智能体会考虑效用指标,这使得它们更贴近现实。
- 容易做出有偏见或错误的决策。
- 开发和维护成本高。
- 需要大量的计算资源。
- 依赖大量数据。
- 缺乏人类的直觉和创造力。
分层智能体是一种结构化的 AI 系统,其中高层智能体负责监督低层智能体。这种结构能有效地管理任务,确保将复杂的目标分解成可管理的子任务。层次结构中的层数取决于系统的复杂性。
这类智能体广泛应用于需要协调和确定多个任务优先级的领域,比如机器人、制造和运输。

分层架构:分层智能体采用多个抽象层,高层处理战略决策,低层管理战术执行。
委托逻辑:主管智能体负责管理子系统的协调,体现了分布式责任架构。
class SupervisorAgent: def __init__(self): self.subagents = { "security": SecurityAgent(), "climate": ClimateAgent() } def coordinate(self, sensor_data): if sensor_data["intruder"]: self.subagents["security"].activate() else: self.subagents["climate"].adjust(sensor_data["temp"]) class SecurityAgent: def activate(self): print("Security protocols engaged") class ClimateAgent: def adjust(self, temp): action = "Cool" if temp > 72 else "Heat" print(f"Climate system: {action} activated") # 系统执行 smart_home = SupervisorAgent() smart_home.coordinate({"intruder": True, "temp": 68})
分层智能体的运作方式类似于一个公司组织,任务在不同的层级进行组织和管理:
- 高层智能体:定义广泛的目标,规划战略,并将任务分解成更小的子目标。
- 中层智能体(如果适用):充当协调者,确保在高层和低层智能体之间有效地分配任务。
- 低层智能体:执行分配的子任务,并向高层智能体报告进度。
这种结构化的方法能确保在复杂环境中高效执行、优化资源和实现可扩展性。
适用场景:分层智能体非常适合需要结构化任务执行的大型企业。一些典型的应用包括:
- 工业自动化:管理具有多个生产阶段的制造流程。
- 自主机器人:协调高层导航和低层电机控制。
- 运输系统:优化交通控制和物流。
Google 的 UniPi 是一种创新的分层 AI 智能体,它将文本和视频作为通用接口,使其能够学习各种环境中的各种任务。
UniPi 的工作原理:
- 高层策略:根据各种输入(包括文本和视频)生成指令和演示。
- 低层策略:通过模仿和强化学习来执行任务。
高层策略能适应各种环境,而低层策略会根据反馈改进执行策略。
通过将高层推理与低层执行相结合,UniPi 展示了分层 AI 在高效处理复杂、多步骤任务方面的强大能力。
- 可扩展的任务管理:能够处理大型系统中的多个相互依赖的任务。
- 提高效率:将复杂问题分解成可管理的子任务,从而提高执行速度。
- 适应性:分层结构允许动态确定任务优先级和进行协调。
- 使用层次结构解决问题时会产生复杂性。
- 固定的层次结构限制了在变化或不确定环境中的适应性,阻碍了智能体调整或寻找替代方案的能力。
- 分层智能体遵循自上而下的控制流,即使低层任务已准备就绪,也可能导致瓶颈和延迟。
- 层次结构可能缺乏跨不同问题领域的可重用性,需要为每个领域创建新的层次结构,这既费时又需要专业知识。
- 训练分层智能体具有挑战性,因为需要标记的训练数据和精心的算法设计。由于涉及的复杂性,应用标准的机器学习技术来提高性能变得困难。
多智能体系统(MAS)并不是一种不同类型的 AI 智能体。更确切地说,它们是多个智能体的集合,这些智能体相互协调,并作为一个整体运作。

这可以包括简单反射型智能体、基于目标的智能体,或上面提到的任何其他类型的智能体。
与分层智能体不同,MAS 中的每个智能体都有自己的目标和能力,但会与其他智能体互动,以实现共同目标或优化个体结果。
- 去中心化:决策分布在多个智能体之间。
- 协作和竞争:智能体根据具体情况进行合作或竞争。
- 可扩展性:它们可以通过分配工作负载来处理大规模问题。
- 专业化:单个智能体可以专注于系统内的特定任务。
多智能体系统相当复杂,适用于大规模环境。
一个很好的例子是医疗保健 AI 系统,它使用多个智能体来进行患者护理协调、医院资源优化和药物输送。每个智能体都扮演着重要的角色,并且可以独立运行。
但是,在一个系统中,这些智能体可以帮助管理拥有数百或数千人的整个医院。
- 可扩展,适用于复杂、大规模的应用。
- 提供冗余和鲁棒性,即使一个智能体出现故障,任务也可以继续。
- 智能体之间的协调可能很复杂。
- 如果智能体有相互竞争的目标,可能会产生冲突。
AI 智能体的分类呈现了一个从反应式架构到复杂学习系统的连续体,每种类型都在不同的行业中找到了独特的应用。正如医疗保健协调网络和自主制造系统所展示的,在多智能体框架内战略性地组合不同类型的智能体,可以解决前所未有的复杂问题。提供的代码示例和架构模式提供了具体的实现蓝图,同时强调了正确系统设计的重要性。
我会定期更新干货和学习笔记。喜欢的话,记得点个关注 ,不错过后续精彩内容!

发布者:Ai探索者,转载请注明出处:https://javaforall.net/243709.html原文链接:https://javaforall.net
