- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
本课是 AI-For-Beginners 课程第 23 课(属于 "Other AI Techniques" 部分),聚焦Multi-Agent Systems(多智能体系统)。文章从"涌现(emergent)智能"这一核心思想出发,介绍智能体(Agent)的定义与分类、多智能体系统的典型应用场景,并通过开源的多智能体建模环境NetLogo手把手演示如何用极简规则模拟鸟群、交通、人群等复杂系统;最后深入"深思式智能体(Deliberative Agents)"的通信要素与 BDI 架构。读完本文,你将能独立打开并运行 NetLogo 内置模型、理解
create-turtles/ask/breed等核心建模语法,并具备为一个真实问题设计多智能体解决方案的思维框架。
什么是多智能体系统:协同产生智能
多智能体系统(Multi-Agent Systems)在 1990 年代作为人工智能的一个研究方向兴起,其背景是互联网与分布式系统的快速成长。经典 AI 教科书《Artificial Intelligence: A Modern Approach》在介绍 AI 时,正是从多智能体系统的视角展开论述的。
这一方向所依赖的核心思想被称为涌现(emergent)或协同(synergetic)方法,其基本论断是:
许多相对简单的智能体(agents)组合在一起后,其整体行为可能比系统本身更加复杂(或更加"智能")。
理论上,这一思想建立在集体智能(Collective Intelligence)、涌现论(Emergentism)与演化控制论(Evolutionary Cybernetics)等原则之上。它们共同指出:当低层级系统被合理地组合成高层级系统时,高层级系统会获得某种"额外价值"——这就是所谓的元系统跃迁原则(principle of metasystem transition)。
换句话说:智能不一定要写进某个单一的程序里,它可以从大量简单个体的交互中"冒"出来。这正是多智能体系统与传统单智能体 AI 最本质的差异。
智能体(Agent)的定义与分类
多智能体方法的核心概念是Agent(智能体)——一个"生活在某个环境中、能够感知环境并对环境施加影响"的实体。这是一个非常宽泛的定义,因此智能体有许多不同的类型与分类方式:
| 分类维度 | 类型 | 特征描述 |
|---|---|---|
| 推理能力 | 反应式(Reactive) | 通常只有简单的"请求—响应"式行为,看到什么就做什么 |
| 推理能力 | **深思式(Deliberative) | 具备某种逻辑推理和/或规划能力 |
| 代码执行位置 | 静态(Static) | 运行在某个固定的网络节点上 |
| 代码执行位置 | 移动(Mobile) | 可以在不同网络节点之间迁移自己的代码 |
| 行为模式 | 被动(Passive) | 没有明确目标,只会对外部刺激做出反应,不会主动发起行动 |
| 行为模式 | 主动(Active) | 拥有自己要追求的目标 |
| 行为模式 | 认知(Cognitive) | 涉及复杂的规划与推理 |
从上表可以看出,"智能体"这个概念横跨了从"极简触发器"到"复杂推理器"的整个光谱。后面我们会在 NetLogo 中看到最简单的反应式智能体如何工作,也会讨论更复杂的深思式智能体需要具备哪些能力。
多智能体系统的典型应用场景
多智能体系统如今已广泛应用于众多领域,以下四类最为典型:
- 游戏领域:大量非玩家角色(NPC)都运行着某种 AI 逻辑,它们本质上就是一个个智能体。
- 视频制作:渲染包含人群的复杂 3D 场景时,通常采用多智能体模拟来生成逼真的人群行为。
- 系统建模:用多智能体方法模拟复杂系统的行为。例如多智能体方法曾被成功用于预测 COVID-19 的全球传播;同样的思路也可以用来模拟城市交通,观察交通规则的改变会如何影响整体车流。
- 复杂自动化系统:让每个设备都作为独立智能体工作,使整个系统不再是一个僵化的单体(monolith),从而更加健壮、更具弹性。
理解多智能体系统的直观途径是"多智能体建模(Multi-Agent Modeling)"。下面我们就用开源建模环境NetLogo亲手体验一把。
上手 NetLogo:一个面向多智能体建模的编程环境
NetLogo 是一个基于 Logo 编程语言改进而来的多智能体建模环境。Logo 语言最初是为了向儿童传授编程概念而设计——你可以控制一个名为turtle(海龟)的智能体,让它移动并留下轨迹,从而绘制出各种复杂的几何图形。这种"可视化理解智能体行为"的方式,让 NetLogo 成为学习多智能体系统的绝佳起点。
你可以从 NetLogo 官网下载安装程序并本地运行。安装完成后,打开任意模型即可体验。
核心语法:创建与指挥智能体
在 NetLogo 中,可以用create-turtles命令一次性创建多个 turtle,然后用ask让所有 turtle 执行某组动作。例如下面的代码创建 10 只 turtle,并让它们全部向前移动 10 步:
create-turtles 10 ask turtles [ forward 10 ]当然,让所有 turtle 做完全相同的事并不有趣,因此我们可以用ask有选择地指挥某一类turtle——例如那些位于某个点附近的 turtle。我们还可以通过breed命令创建不同"品种(breed)"的 turtle:
breed [cats cat]注意breed需要同时给出复数形式和单数形式(这里是cats和cat),因为不同命令会使用不同形式以增强代码可读性。
✅ 本课不深入讲解 NetLogo 语言本身。如果你想系统学习,可以参考社区著名的 "Beginner's Interactive NetLogo Dictionary" 资源。
模型库:无需从零开始的起点
NetLogo 的一大优势是内置了一个可运行模型库(Models Library)。打开菜单File → Models Library,你会看到按类别整理的大量模型:
比如我们可以打开Biology → Flocking(鸟群)模型,直接观察多智能体行为的经典案例。
主界面与世界的构成
打开模型后,你会进入 NetLogo 主界面。以自带的"狼与羊捕食(Wolf Sheep Predation)"模型为例,该模型模拟了在有限资源(草)条件下狼群与羊群的数量变化:
在这个界面上可以看到:
- Interface(界面)部分,其中包含:
- 主场地(field):所有智能体生活与活动的区域;
- 各类控件:按钮、滑块(sliders)等,用于控制与调整模拟参数;
- 图表(graphs):用于展示模拟过程中的参数变化(例如种群数量曲线)。
- Code(代码)标签页:内置编辑器,在这里编写 NetLogo 程序。
在绝大多数模型中,界面都设有Setup按钮(初始化模拟状态)与Go按钮(开始执行)。它们由代码中对应的处理过程(handler)实现,结构大致如下:
to go [ ... ]NetLogo 的世界由以下三类对象构成:
- Agents(turtles,智能体/海龟):可以在场地上移动并执行动作。通过
ask turtles [...]语法指挥它们,方括号中的代码由所有智能体以turtle 模式(turtle mode)执行。 - Patches(瓦片):场地上的正方形小区域,智能体生活其上。你可以引用同一瓦片上的所有智能体,也可以改变瓦片颜色等属性;同样可以用
ask patches让瓦片执行动作。 - Observer(观察者):一个独一无二的"上帝视角"智能体,控制整个世界。所有按钮的处理过程都以observer 模式(observer mode)执行。
✅ 多智能体环境的美妙之处在于:运行在 turtle 模式或 patch 模式下的代码,会被所有智能体在同一时刻并行执行。因此,只需编写很少的代码、定义好单个智能体的行为,就能让整个模拟系统表现出极其复杂的行为。这正是"小规则 → 大涌现"的生动体现。
Flocking 模型:三个简单规则如何造就鸟群
作为多智能体行为的经典范例,我们重点分析Flocking(鸟群)模型。鸟群飞行是一种复杂的集体模式:看着一群鸟飞翔,你会以为它们遵循某种集体算法,甚至拥有某种"集体智能"。然而,这种复杂行为实际上只源于一个朴素的机制——每只鸟(个体智能体)只观察短距离内的少数同伴,并遵循三条简单规则:
- 对齐(Alignment):朝邻近智能体的平均朝向(heading)转向;
- 聚合(Cohesion):尝试朝邻近智能体的平均位置转向(可理解为"长距离吸引");
- 分离(Separation):当离其他鸟过近时,试图移开(可理解为"短距离排斥")。
你可以运行 Flocking 示例直观观察这些行为,并调整参数,例如:
- 分离程度(degree of separation);
- 视野范围(viewing range):定义每只鸟能"看到"多远。
两个很有启发性的实验:
- 把视野范围调为0:所有鸟都"失明",鸟群行为立刻停止;
- 把分离程度调为0:所有鸟聚集到一条直线上。
✅ 切到Code标签页,你会看到对齐、聚合、分离这三条规则在代码中的实现位置。注意观察:代码是如何只引用那些"在视野内"的智能体的——这是整个鸟群现象成立的关键前提。
值得动手尝试的其他内置模型
模型库中还有几个很有教育价值的模型:
- Art → Fireworks(烟花):展示一场烟花如何被看作"多股独立火光流的集体行为";
- Social Science → Traffic Basic与Social Science → Traffic Grid:分别模拟一维与二维网格上的城市交通(带/不带红绿灯)。每辆车遵循以下规则:
- 若前方空间为空——加速(直到某个最大速度);
- 若看到前方障碍物——刹车(你还可以调节司机的"可视距离");
- Social Science → Party(聚会):模拟人们在鸡尾酒会上如何聚集成群。你可以尝试找到使群体"幸福感"最快上升的参数组合。
从这些例子可以看出:多智能体模拟是一种理解复杂系统的非常有效的方式——特别是当系统由许多遵循相同或相似逻辑的个体组成时。同样的技术也可以用来控制虚拟智能体,例如电脑游戏中的 NPC,或 3D 动画世界中的角色。
深思式智能体:从"反应"走向"推理与规划"
上面在 NetLogo 中看到的智能体都非常简单,它们只是按照某种算法对环境变化做出反应,因此属于反应式智能体(reactive agents)。然而,有些智能体能够推理并规划自己的行动,这类智能体被称为深思式智能体(deliberative agents)。
一个典型例子是:一个人工智能个人助理接到主人的指令——预订一趟度假行程。假设互联网上存在许多能帮忙的智能体,那么它需要逐一联系其他智能体,查询哪些航班可用、不同日期酒店的价格,并尝试协商出最优价格。当度假计划完成后并得到主人确认,它才能继续执行预订。
要完成这样的协作,智能体必须能够通信(communicate)。成功的通信需要具备以下要素:
- 标准的知识交换语言:例如知识交换格式(Knowledge Interchange Format,KIF)与知识查询与操作语言(Knowledge Query and Manipulation Language,KQML)。这类语言的设计基于言语行为理论(Speech Act theory);
- 协商协议:基于不同的拍卖类型(auction types)设计谈判流程;
- 共同本体(common ontology):所有智能体引用同一套概念并理解其语义,避免"各说各话";
- 能力发现机制:基于某种本体,让智能体能够发现"其他智能体各自能做什么"。
BDI 架构:信念—愿望—意图
深思式智能体远比反应式智能体复杂,因为它们不仅要对环境变化做出反应,还要能主动发起行动。为此,学界提出了一种经典架构——BDI 智能体(Belief-Desire-Intention,信念—愿望—意图):
- Beliefs(信念):智能体关于其环境的知识集合。它可被组织为知识库(knowledge base)或一组规则,智能体可将其应用于环境中某个具体情境。
- Desires(愿望):定义智能体"想做什么",即它的目标。例如上面个人助理智能体的目标是预订行程,而酒店智能体的目标是利润最大化。
- Intentions(意图):智能体为实现目标而计划执行的具体行动。行动通常会改变环境,并引发与其他智能体的通信。
面向多智能体系统的构建平台
市面上已有一些用于构建多智能体系统的平台,例如JADE(Java Agent DEvelopment Framework)。此外,业界还有综述论文对多智能体平台做过系统梳理,并回顾了多智能体系统的历史与各种使用场景。
结论:协同效应是多智能体系统的灵魂
多智能体系统可以呈现非常多样的形态,应用于许多不同的场景。但它们的共同点是一致的:
系统设计者聚焦于单个智能体的简单行为,而系统的整体复杂性则来自个体之间交互所产生的协同效应(synergetic effect)。
理解这一点,就能理解为什么"多智能体系统"既是一种建模工具,也是一种关于"智能如何产生"的深刻视角——复杂行为可以从简单规则的组合中自然涌现。
🚀 实战挑战:把本课带到现实世界
尝试构思一个能解决实际问题的多智能体系统。例如:
- 校车路线优化:一个多智能体系统需要做什么,才能优化校车路线?
- 面包房运营:多智能体系统在面包房里可以如何工作?
尝试回答:系统中的"智能体"是谁?它们的信念、愿望与意图分别是什么?它们需要如何通信?
课后练习:NetLogo 作业
本课配套的 NetLogo 作业 要求你:
- 从 NetLogo 模型库中选取一个模型,尽可能贴近真实地模拟一个现实情境;
- 一个好例子是:调整Alternative Visualizations文件夹下的Virus(病毒)模型,用它模拟 COVID-19 的传播——你是否能构建出一个贴近真实病毒传播过程的模型?
- 保存你的工作副本,并录制视频演示,说明模型与真实世界情境之间的联系。
这份作业非常适合用来巩固本课学到的全部核心概念:定义智能体、设计简单规则、观察涌现行为、评估模型与现实的契合度。
- 教程
- 人工智能
- 机器学习
- 深度学习
【免费下载链接】AI-For-Beginners
12 Weeks, 24 Lessons, AI for All!
相关推荐
VoltAgent多智能体系统构建:Supervisor与Sub-Agent协调实战
VoltAgent多智能体系统构建:Supervisor与Sub Agent协调实战 VoltAgent是一个强大的开源TypeScript AI Agent框
人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆Agent 工作流AI 评测MCP 服务MCP Clients语音多智能体系统优化指南:用Agent Lightning精准提升关键智能体
多智能体系统优化指南:用Agent Lightning精准提升关键智能体 在多智能体系统开发中,企业常面临智能体性能参差不齐、关键模块优化困难的挑战。传统优化方
人工智能强化学习AI Agent大模型如何利用Marquez解决数据治理难题:7个真实场景案例分析
如何利用Marquez解决数据治理难题:7个真实场景案例分析 Marquez是一款强大的开源数据治理工具,专注于收集、聚合和可视化数据生态系统的元数据,帮助团队
后端大数据
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考