从单体到群体:多 Agent 系统的涌现智能

从单体到群体:多 Agent 系统的涌现智能作为一名在分布式系统 机器学习算法落地都踩过不下百个坑的老码农 最近一年我被 涌现智能 Emergent Intelligence 和 多 Agent 协作 Multi Agent System MAS 这两个词刷爆了 GitHub Trending arXiv 首页和技术社群的聊天记录 去年 ChatGPT Plugins 刚出来时我还在怀疑 会不会只是个插件套壳的缝合怪

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



作为一名在分布式系统、机器学习算法落地都踩过不下百个坑的老码农,最近一年我被“涌现智能(Emergent Intelligence)”和“多 Agent 协作(Multi-Agent System, MAS)”这两个词刷爆了GitHub Trending、arXiv首页和技术社群的聊天记录。去年ChatGPT Plugins刚出来时我还在怀疑「会不会只是个插件套壳的缝合怪」,但今年看到OpenAI的GPT-4o Mini Agent协作完成了一个完整的开源电商后台原型(包含数据库设计、API接口、前端基础框架,甚至还有单元测试),看到Devin-like工具链里Agent能自动拆解需求、查文档、写代码、调试提交、复盘优化的闭环,我彻底坐不住了——这根本不是单个大模型的能力延伸,而是一群「具备基础认知、能分工协作、会反馈学习」的小“程序员”组成的虚拟团队,表现出了单个Agent完全没有的、远超预期的复杂能力,这就是今天要聊的「从单体到群体的涌现智能」。


痛点引入:单个大模型的“天花板焦虑”与传统协作系统的“僵化困境”

在开始今天的正文之前,我想先问屏幕前的你几个问题:

  1. 你有没有试过用单个GPT-4o写一份超过300页、包含专业实验数据、图表标注规范、中英文双语对照的学术论文初稿?它可能开头写得挺好,但到第50页就开始重复概念、数据出错、逻辑混乱;
  2. 你有没有试过用单个Claude 3 Opus重构一个有100万行以上遗留代码的微服务模块?它可能能看懂前50个核心类,但后面的依赖关系梳理、历史Bug规避、兼容性测试完全无能为力;
  3. 你有没有用过企业里传统的RPA机器人协作系统?它虽然能处理一些流程固定的工作(比如财务报销审核、发票录入),但只要流程有1%的灵活调整(比如发票抬头写错了但备注有特殊说明、报销单里有一笔跨部门的差旅费需要额外审批),就会直接报错或者需要人工介入。

这些问题本质上暴露了两类系统的核心缺陷

  • 单 Agent(或者说单大模型)系统:虽然具备强大的通用认知、自然语言处理、代码生成能力,但存在上下文长度限制(哪怕是GPT-4o Turbo的128K上下文,也存不下一个完整的企业级代码库)、注意力分散问题(长文本里的关键细节容易被忽略)、专业领域垂直能力不足(比如同时精通分子动力学模拟和药物化学合成的大模型,目前还非常罕见且昂贵)、复杂任务拆解与执行效率低(单个模型在思考复杂任务时容易“钻牛角尖”,不会像人类团队那样分工协作);
  • 传统固定规则协作系统(比如RPA、企业OA里的审批流):虽然能处理高重复性、低复杂度的任务,但存在规则僵化(需要人工编写每一条规则,规则数量呈指数级增长就会维护困难)、缺乏认知能力(无法理解自然语言、无法处理模糊或非结构化数据)、无法自主学习(规则不会随着业务变化自动更新)、协作成本高(不同机器人之间的交互接口需要人工定制,适配新业务需要很长的开发周期)。

那有没有一种系统,既能结合单大模型的通用认知能力,又能结合人类团队的分工协作、自主学习、灵活应变能力呢?答案就是——多 Agent 系统的涌现智能

解决方案概述:什么是多 Agent 系统?什么是涌现智能?

核心概念先铺垫(后面会深入讲)

在深入之前,我先给这两个核心概念下个简单的、技术博主风格的定义(后面会有学术定义和数学模型支撑):

  1. Agent(智能体):可以简单理解为「具备环境感知能力、自主决策能力、行动执行能力、反馈学习能力的“虚拟个体”」——它可以是一个大模型(比如GPT-4o Mini、Claude 3 Haiku),可以是一个传统的算法模型(比如图像识别模型、预测分析模型),可以是一个RPA机器人,甚至可以是一个物理机器人(比如波士顿动力的Spot、大疆的无人机);
  2. 多 Agent 系统(MAS):就是「由多个Agent组成的、Agent之间能通过某种通信协议交互、能共同完成单个Agent无法完成的复杂任务的系统」——它可以是虚拟的(比如Devin-like工具链里的“需求分析师Agent”“架构师Agent”“前端工程师Agent”“后端工程师Agent”“测试工程师Agent”“DevOps工程师Agent”),可以是物理的(比如一群搜救无人机、一群仓库搬运机器人),也可以是虚实结合的(比如一群虚拟客服Agent配合一个物理客服机器人);
  3. 涌现智能(EI):就是「多 Agent 系统在没有外部明确的“全局控制者”、没有预先设定好“每一步具体怎么做”的情况下,通过Agent之间的局部交互、自主决策反馈学习,表现出的单个Agent完全没有的、复杂的、有序的、有价值的全局行为或能力」——比如蚂蚁搬家(单个蚂蚁不知道整个蚁巢的位置,不知道要搬多少食物,但通过触碰触角传递信息素、跟随前面的蚂蚁的轨迹,最后能把食物高效地搬回蚁巢)、比如鸟群飞行(单个鸟不知道整个鸟群的迁徙路线,不知道要怎么避开障碍物,但通过观察周围6-7只鸟的位置和速度,最后能形成有序的“V”字形或“波浪形”,高效地避开障碍物、节省体力)、比如我们刚才提到的Devin-like工具链里的虚拟团队协作完成电商后台原型。
解决方案的三大核心优势

相比于单 Agent 系统和传统固定规则协作系统,基于涌现智能的多 Agent 系统有三大核心优势:

  1. 能力超加性(Superadditivity):也就是我们常说的「1+1>2」,甚至「1+1>100」——比如单个GPT-4o Mini可能写不好一个完整的电商后台,但10个不同专业的Mini Agent协作,就能写出一个功能完整、质量不错的原型;
  2. 鲁棒性(Robustness):也就是系统的「容错能力强」——比如仓库里的一群搬运机器人,如果其中1-2台机器人坏了,其他机器人会自动调整分工,继续完成搬运任务;比如鸟群里的1-2只鸟被天敌抓走了,其他鸟会自动调整队形,继续迁徙;
  3. 灵活性(Flexibility):也就是系统的「应变能力强」——比如如果电商需求突然变化(比如从“B2C电商后台”变成“C2C二手交易平台后台”),基于涌现智能的多 Agent 系统不需要人工重新编写所有规则,只需要需求分析师Agent重新拆解需求,其他Agent就会自动调整分工、学习新的知识,完成新的任务;比如如果仓库里的货物摆放位置突然变化,搬运机器人会自动重新规划路径,完成搬运任务。

最终效果展示:用AutoGen写一个“智能代码审查小组”的原型

说了这么多,可能屏幕前的你还是有点抽象——没关系,我先给你看一个我用微软开源的AutoGen框架(目前最流行的多 Agent 协作框架之一)写的“智能代码审查小组”原型的最终效果,先吸引一下你的兴趣。

原型的功能介绍

这个“智能代码审查小组”原型包含3个Agent:

  1. 代码提交者Agent:它的作用是“模拟程序员提交代码”——你可以给它一段Python代码(比如一个简单的排序算法、一个有Bug的Web接口),它会把这段代码提交给审查小组;
  2. 代码审查员Agent(由3个不同的子Agent组成,分别是“代码风格审查员Agent”“逻辑正确性审查员Agent”“安全性审查员Agent”):它的作用是“审查代码”——风格审查员会检查代码是否符合PEP8规范,逻辑正确性审查员会检查代码是否有逻辑Bug(比如边界条件错误、死循环、内存泄漏),安全性审查员会检查代码是否有安全漏洞(比如SQL注入、XSS攻击、命令注入);
  3. 代码合并者Agent:它的作用是“合并代码或者返回修改意见”——如果审查小组的3个子Agent都通过了审查,它会把代码“合并到主分支”;如果有一个或多个子Agent没通过审查,它会把所有子Agent的修改意见整理成一份结构化的报告,返回给代码提交者Agent。
原型的运行截图(文字模拟,因为我没法直接贴图,后面会给你完整的代码,你可以自己运行看效果)

假设我给代码提交者Agent一段有Bug的Python代码:

# 这段代码是一个“计算阶乘”的函数 def factorial(n):

result = 1 for i in range(n): result *= i return result 

# 测试代码 print(factorial(5)) # 预期输出是120 print(factorial(0)) # 预期输出是1(数学上0! = 1) print(factorial(-3)) # 预期输出应该是报错或者提示输入无效

那原型的运行过程大概是这样的:

  1. 代码提交者Agent:收到代码,把它提交给审查小组;
  2. 代码风格审查员Agent:检查代码,发现“没有文档字符串(docstring)”“变量名可以更清晰吗?i可以改成current_num?”“测试代码没有使用unittest或者pytest框架”,给出修改意见;
  3. 逻辑正确性审查员Agent:检查代码,发现三个严重的逻辑Bug:
    • 循环范围是range(n),也就是从0到n-1,所以当n=5时,循环会执行5次,但乘的是01234=0,输出是0,不符合预期;
    • 没有处理n=0的情况,当n=0时,循环范围是range(0),也就是不执行循环,result是1,这个是对的,但没有明确的注释说明;
    • 没有处理n<0的情况,当n=-3时,循环范围是range(-3),也就是不执行循环,result是1,这是错误的;
  4. 安全性审查员Agent:检查代码,发现这段代码是纯数学计算,没有安全漏洞,通过审查;
  5. 代码合并者Agent:整理三个子Agent的修改意见,返回给代码提交者Agent,一份结构化的报告大概是这样的:
# 代码审查报告

代码基本信息

  • 提交时间:202X-XX-XX XX:XX:XX
  • 提交者:代码提交者Agent
  • 代码功能:计算阶乘
  • 代码语言:Python

审查结果

  • 代码风格审查:❌ 不通过
  • 逻辑正确性审查:❌ 不通过
  • 安全性审查:✅ 通过

修改意见

代码风格审查员Agent

  1. 请为factorial函数添加文档字符串(docstring),说明函数的功能、输入参数、输出结果、异常情况;
  2. 建议将循环变量i改为更清晰的变量名,比如current_num
  3. 建议使用unittest或者pytest框架编写测试代码,而不是直接使用print语句。

逻辑正确性审查员Agent

  1. 严重Bug:循环范围错误,请将range(n)改为range(1, n+1)——这样当n=5时,循环会执行5次,乘的是1*2*3*4*5=120,符合预期;
  2. 建议优化:虽然n=0时当前代码能输出1,但建议在函数开头添加明确的判断逻辑,提高代码的可读性;
  3. 严重Bug:没有处理n<0的情况,请在函数开头添加判断逻辑,如果n<0,抛出ValueError异常,提示“输入必须是非负整数”。

下一步操作

请根据修改意见修改代码,然后重新提交审查。

是不是很强大?这个原型只花了我不到200行Python代码,而且用的都是免费的API(比如OpenAI的GPT-4o Mini API,或者你也可以用本地的开源大模型,比如Llama 3 8B)——后面我会给你完整的代码,包括环境安装、系统架构设计、核心实现源代码,你可以自己运行玩一玩。


在深入讲解多 Agent 系统的核心原理和实现之前,我先给你列一下今天这篇文章需要的开发环境、软件版本、依赖库,以及需要读者具备的前置知识——如果你已经具备这些条件,可以直接跳过这一部分;如果你不具备,没关系,我会给你提供相关的学习资源链接,你可以花1-2天时间补一下基础。

环境/工具

硬件要求
  • CPU:至少4核8线程(如果用本地的开源大模型,比如Llama 3 8B,至少需要8核16线程);
  • 内存:至少16GB(如果用本地的开源大模型,至少需要32GB内存,或者16GB内存+16GB以上的显存);
  • 显存:如果用OpenAI的API,不需要显存;如果用本地的开源大模型,比如Llama 3 8B,至少需要8GB显存(如果用4-bit量化,至少需要4GB显存);
  • 硬盘:至少20GB可用空间(如果用本地的开源大模型,至少需要50GB可用空间)。
软件要求
  • 操作系统:Windows 10/11、macOS 12+、Linux(推荐Ubuntu 22.04 LTS);
  • Python:Python 3.10+(推荐Python 3.11,因为AutoGen框架在Python 3.11上运行得更快);
  • 代码编辑器:VS Code(推荐,因为有很多AutoGen和Python的插件可以用)、PyCharm;
  • 大模型API
    • 如果你有钱,可以用OpenAI的GPT-4o Mini API(最便宜,效果也不错,价格是\(0.15/1M输入tokens,\)0.6/1M输出tokens)、GPT-4o API(效果最好,但价格贵,\(5/1M输入tokens,\)15/1M输出tokens);
    • 如果你不想花钱,可以用本地的开源大模型,比如Meta的Llama 3 8B、Mistral的Mistral 7B、阿里巴巴的Qwen 2 7B;
    • 如果你想用国内的API,可以用百度的文心一言API、阿里巴巴的通义千问API、腾讯的混元API、智谱AI的GLM-4 API。
依赖库

今天这篇文章会用到以下几个核心依赖库:

  1. pyautogen:微软开源的多 Agent 协作框架,目前GitHub上有超过30K stars,是最流行的多 Agent 协作框架之一;
  2. openai:OpenAI的官方Python SDK,用来调用OpenAI的API;
  3. transformers:Hugging Face的官方Python SDK,用来加载和运行本地的开源大模型;
  4. accelerate:Hugging Face的官方Python SDK,用来加速本地大模型的加载和运行;
  5. bitsandbytes:Hugging Face的官方Python SDK,用来对本地大模型进行量化(比如4-bit量化、8-bit量化),减少显存占用;
  6. python-dotenv:用来加载.env文件里的环境变量(比如OpenAI的API密钥)。

依赖库的安装命令我会在后面的“项目介绍与环境安装”部分给你,这里先列出来。

基础知识

今天这篇文章需要读者具备以下几个前置知识:

  1. Python编程基础:至少要会写Python函数、类、循环、判断语句,会使用pip安装依赖库,会使用VS Code或PyCharm编写和运行Python代码——如果你不具备这些基础,可以去看一下廖雪峰的Python教程:https://www.liaoxuefeng.com/wiki/02400;
  2. 大语言模型(LLM)基础:至少要知道什么是大语言模型、什么是prompt engineering、什么是上下文长度、什么是token——如果你不具备这些基础,可以去看一下吴恩达的《Prompt Engineering for Developers》课程(免费,在Coursera上):https://www.coursera.org/learn/prompt-engineering;
  3. 分布式系统基础(可选,但推荐):至少要知道什么是分布式系统、什么是节点、什么是通信协议、什么是容错——如果你不具备这些基础,可以去看一下MIT的《6.824: Distributed Systems》课程(免费,在YouTube上):https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbc3YJ_lBfu;
  4. 机器学习基础(可选,但推荐):至少要知道什么是监督学习、什么是无监督学习、什么是强化学习——如果你不具备这些基础,可以去看一下吴恩达的《Machine Learning》课程(免费,在Coursera上):https://www.coursera.org/learn/machine-learning。

在深入讲解多 Agent 系统的核心原理和实现之前,我先给你系统地梳理一下今天这篇文章会涉及到的所有核心基础概念——包括学术定义、技术实现、核心属性、常见分类,这样你后面看核心原理和实现的时候就不会一头雾水了。

核心概念一:Agent(智能体)

学术定义

Agent的概念最早可以追溯到20世纪50年代的人工智能(AI)领域,当时的AI研究者们把“能够感知环境、自主决策、执行行动的实体”称为Agent——不过当时的Agent非常简单,比如一个下棋的程序、一个语音识别的程序,都可以被称为Agent。

随着AI技术的发展,Agent的定义也在不断完善——目前最被广泛接受的Agent学术定义来自于斯坦福大学的计算机科学家Michael Wooldridge和Nicholas R. Jennings,他们在1995年发表的论文《Intelligent Agents: Theory and Practice》中给出了这样的定义:

An agent is a computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives.
(翻译:Agent是一个位于某个环境中的计算机系统,它能够在这个环境中采取自主行动,以实现其设计目标。)



后来,Wooldridge在2009年出版的《An Introduction to MultiAgent Systems》(第二版,被誉为多 Agent 系统领域的“圣经”)中,又对这个定义进行了补充,增加了Agent的核心属性高级属性

核心属性(Wooldridge提出的“弱Agent”属性)

Wooldridge把Agent分为“弱Agent(Weak Agent)”“强Agent(Strong Agent)”——弱Agent是指具备以下4个核心属性的计算机系统,这也是目前大多数多 Agent 系统中的Agent所具备的属性:

  1. 情境性(Situatedness):Agent必须位于某个环境(Environment)中,并且能够通过传感器(Sensors)感知环境的状态——比如一个仓库搬运机器人的环境是仓库,传感器是摄像头、激光雷达、超声波传感器;比如一个大语言模型Agent的环境是“对话历史上下文”和“外部知识库(比如RAG检索到的文档)”,传感器是“文本输入接口”;
  2. 自主性(Autonomy):Agent必须能够在没有外部明确的直接干预下,控制自己的内部状态和行动——比如一个仓库搬运机器人不需要人工实时控制它的每一步移动,它可以自己规划路径、避开障碍物;比如一个大语言模型Agent不需要人工告诉它“下一步该说什么”,它可以根据对话历史上下文和自己的知识,自主生成回复;
  3. 反应性(Reactivity):Agent必须能够及时地感知环境的变化,并对环境的变化做出适当的反应——比如一个仓库搬运机器人如果突然看到前面有一个障碍物,它会立即停下来或者重新规划路径;比如一个大语言模型Agent如果用户突然改变了话题,它会立即调整回复的内容;
  4. 主动性(Pro-activity):Agent不能只被动地对环境的变化做出反应,它还必须能够根据自己的设计目标,主动地采取行动——比如一个仓库搬运机器人的设计目标是“把货物从A区搬到B区”,它会主动地去A区找货物,而不是等货物自己过来;比如一个大语言模型Agent的设计目标是“帮助用户写一份学术论文初稿”,它会主动地问用户“论文的主题是什么?”“论文的目标期刊是什么?”“论文需要包含哪些内容?”,而不是等用户把所有信息都告诉它。
高级属性(Wooldridge提出的“强Agent”属性)

强Agent是指在弱Agent的4个核心属性的基础上,还具备以下3个或更多高级属性的计算机系统——目前大多数基于大语言模型的Agent都可以被称为强Agent:

  1. 社交能力(Social Ability):Agent必须能够通过某种通信协议(Communication Protocol)与其他Agent(或人类)进行交互——比如一个仓库搬运机器人可以通过WiFi与其他搬运机器人交互,告诉它们“我正在走这条路径,请不要过来”;比如一个大语言模型Agent可以通过文本消息与其他大语言模型Agent交互,比如“我已经完成了数据库设计,接下来需要你完成API接口设计”;
  2. 推理能力(Reasoning Ability):Agent必须能够根据自己的知识和感知到的环境状态,进行逻辑推理、因果推理、概率推理等——比如一个仓库搬运机器人可以根据“仓库的地图”和“当前的位置”,推理出“从A区到B区的最短路径是什么”;比如一个大语言模型Agent可以根据“用户的需求”和“自己的编程知识”,推理出“应该用什么技术栈来开发这个项目”;
  3. 学习能力(Learning Ability):Agent必须能够根据自己的经验(比如过去的行动、过去的反馈),不断地优化自己的决策和行动,提高自己的性能——比如一个仓库搬运机器人可以根据“过去的路径规划经验”,不断地优化自己的路径规划算法,缩短搬运时间;比如一个大语言模型Agent可以根据“用户的反馈”和“代码审查员Agent的修改意见”,不断地优化自己的代码生成能力。
常见分类

Agent可以根据不同的维度进行分类,下面是几种最常见的分类方式

  1. 根据Agent的实现技术分类
    • 基于规则的Agent(Rule-Based Agent):这种Agent的决策和行动是由人工预先设定好的规则控制的——比如传统的RPA机器人、传统的聊天机器人(比如早期的淘宝客服机器人);
    • 基于算法的Agent(Algorithm-Based Agent):这种Agent的决策和行动是由传统的机器学习算法(比如图像识别算法、预测分析算法、强化学习算法)控制的——比如仓库搬运机器人的路径规划算法(通常是A*算法或Dijkstra算法)、推荐系统Agent(通常是协同过滤算法或深度学习算法);
    • 基于大语言模型的Agent(LLM-Based Agent):这种Agent的决策和行动是由大语言模型控制的——这也是目前最流行、最强大的Agent类型,比如我们刚才提到的AutoGen框架里的Agent、Devin-like工具链里的Agent、GPT-4o Mini;
  2. 根据Agent的环境感知范围分类
    • 局部感知Agent(Local-Sensing Agent):这种Agent只能感知自己周围的一小部分环境——比如蚂蚁(只能感知自己周围的几只蚂蚁和信息素)、鸟群里的鸟(只能感知自己周围的6-7只鸟);
    • 全局感知Agent(Global-Sensing Agent):这种Agent可以感知整个环境的状态——比如一个控制整个仓库搬运机器人的中央控制器Agent(不过这种Agent通常不符合多 Agent 系统的“去中心化”要求,因为如果它坏了,整个系统就会瘫痪);
  3. 根据Agent的行动是否同步分类
    • 同步Agent(Synchronous Agent):所有Agent的行动都是同步执行的——比如一群同步运动的机器人;
    • 异步Agent(Asynchronous Agent):Agent的行动是异步执行的——这也是大多数多 Agent 系统中的Agent所具备的属性,比如Devin-like工具链里的Agent(需求分析师Agent先拆解需求,然后架构师Agent再设计架构,异步执行)。

核心概念二:多 Agent 系统(MAS)

学术定义

和Agent一样,多 Agent 系统的概念也最早可以追溯到20世纪50年代的AI领域——当时的AI研究者们尝试用多个简单的Agent来模拟复杂的人类社会或生物群体,比如蚂蚁群体、鸟群、鱼群。

目前最被广泛接受的多 Agent 系统学术定义同样来自于Wooldridge和Jennings,他们在1995年发表的论文《Intelligent Agents: Theory and Practice》中给出了这样的定义:

A multi-agent system (MAS) is a system composed of multiple interacting intelligent agents. The agents in a MAS can be homogeneous (all agents have the same design objectives and capabilities) or heterogeneous (agents have different design objectives and capabilities).
(翻译:多 Agent 系统是由多个交互的智能体组成的系统。多 Agent 系统中的智能体可以是同质的(所有智能体具有相同的设计目标和能力),也可以是异质的(智能体具有不同的设计目标和能力)。)



后来,Wooldridge在2009年出版的《An Introduction to MultiAgent Systems》(第二版)中,又对这个定义进行了补充,增加了多 Agent 系统的核心特征常见架构

核心特征

多 Agent 系统通常具备以下5个核心特征

  1. 去中心化(Decentralization):多 Agent 系统中没有一个明确的“全局控制者”——所有Agent都是自主的,它们通过局部交互来实现全局目标;这也是多 Agent 系统和传统的分布式系统(比如微服务系统,虽然也是由多个节点组成的,但通常有一个明确的服务注册中心和配置中心)的最大区别;
  2. 交互性(Interactivity):多 Agent 系统中的Agent必须能够通过某种通信协议进行交互——交互的内容可以是“请求帮助”“共享信息”“协商合作”“竞争资源”等;
  3. 异构性(Heterogeneity,可选但常见):多 Agent 系统中的Agent通常是异质的——也就是它们具有不同的设计目标、不同的能力、不同的实现技术;比如Devin-like工具链里的“需求分析师Agent”(擅长自然语言处理和需求拆解)、“架构师Agent”(擅长系统架构设计)、“前端工程师Agent”(擅长前端开发),就是异质的;
  4. 动态性(Dynamicity):多 Agent 系统的环境是动态变化的Agent的数量也是动态变化的——比如仓库里的货物摆放位置会动态变化,搬运机器人的数量也会动态变化(比如坏了1台,或者新增了2台);
  5. 协作性(Collaboration)或竞争性(Competition,可选):多 Agent 系统中的Agent通常是协作的——也就是它们共同完成单个Agent无法完成的复杂任务;不过有些多 Agent 系统中的Agent是竞争的——比如电子游戏里的多个AI玩家,它们会竞争资源、竞争胜利;还有些多 Agent 系统中的Agent是既协作又竞争的——比如市场经济里的多个企业,它们会协作完成供应链,但又会竞争客户和市场份额。
常见架构

多 Agent 系统的架构可以根据不同的维度进行分类,下面是几种最常见的架构方式

  1. 根据Agent之间的交互方式分类
    • 黑板架构(Blackboard Architecture):这是一种最早的多 Agent 系统架构——它由三个部分组成:

 
     
    
       
  1. 黑板(Blackboard):一个共享的公共数据存储区,所有Agent都可以往黑板上写数据,也可以从黑板上读数据;
  2. 知识源(Knowledge Sources, KSs):也就是我们所说的Agent,每个知识源都具备不同的能力,它们会根据黑板上的内容,自主地决定是否要采取行动;
  3. 控制单元(Control Unit):一个简单的协调者,它会决定哪个知识源可以优先使用黑板;
    黑板架构的优点是“实现简单,Agent之间的耦合度低”,缺点是“黑板可能会成为性能瓶颈,控制单元可能会成为单点故障”;
    黑板架构的典型应用场景是“语音识别系统”“图像识别系统”“医疗诊断系统”;










  • 联邦架构(Federated Architecture):这是一种目前比较流行的多 Agent 系统架构——它由多个“联邦(Federation)”组成,每个联邦由多个Agent组成,每个联邦都有一个“联邦协调者(Federation Coordinator)”,联邦协调者负责协调联邦内部的Agent之间的交互,以及联邦之间的交互;
  •  联邦架构的优点是“扩展性好,容错能力强,Agent之间的耦合度低”,缺点是“联邦协调者可能会成为性能瓶颈和单点故障”;
    联邦架构的典型应用场景是“Devin-like工具链”“企业级多 Agent 系统”;



  • 去中心化架构(Decentralized Architecture):这是一种最符合多 Agent 系统核心特征的架构——它没有明确的“全局控制者”或“联邦协调者”,所有Agent都是平等的,它们通过局部交互来实现全局目标;
  •  去中心化架构的优点是“扩展性最好,容错能力最强,Agent之间的耦合度最低”,缺点是“实现难度大,全局行为难以预测和控制”;
    去中心化架构的典型应用场景是“蚂蚁群体模拟”“鸟群飞行模拟”“区块链网络(虽然区块链网络不是严格意义上的多 Agent 系统,但它的架构是去中心化的)”;



  • 根据Agent的决策方式分类
    • 集中式决策架构(Centralized Decision-Making Architecture):这种架构中有一个明确的“全局决策Agent”,它会收集所有其他Agent的信息,然后做出全局决策,再把决策下发给其他Agent执行;
  •  这种架构的优点是“全局行为容易预测和控制”,缺点是“扩展性差,容错能力差,全局决策Agent可能会成为性能瓶颈和单点故障”;
    这种架构的典型应用场景是“早期的仓库搬运机器人系统”;



  • 分布式决策架构(Distributed Decision-Making Architecture):这种架构中没有明确的“全局决策Agent”,所有Agent都是自主的,它们会根据自己的信息和局部交互,做出局部决策,然后执行;
  •  这种架构的优点是“扩展性好,容错能力好”,缺点是“全局行为难以预测和控制”;
    这种架构的典型应用场景是“蚂蚁群体模拟”“鸟群飞行模拟”;



  • 混合式决策架构(Hybrid Decision-Making Architecture):这种架构结合了“集中式决策架构”和“分布式决策架构”的优点——它有一个“简单的全局协调者”,负责制定“全局目标”和“全局规则”,然后所有Agent都是自主的,它们会根据全局目标、全局规则、自己的信息和局部交互,做出局部决策,然后执行;
  •  这种架构的优点是“扩展性好,容错能力好,全局行为相对容易预测和控制”,缺点是“实现难度中等”;
    这种架构的典型应用场景是“目前大多数基于大语言模型的多 Agent 系统”“现代的仓库搬运机器人系统”。



    常见分类

    多 Agent 系统可以根据不同的维度进行分类,下面是几种最常见的分类方式

    1. 根据Agent的同质/异质性分类
      • 同质多 Agent 系统(Homogeneous MAS):系统中的所有Agent都是同质的——也就是它们具有相同的设计目标、相同的能力、相同的实现技术;

     这种系统的典型应用场景是“蚂蚁群体模拟”“鸟群飞行模拟”“仓库搬运机器人系统(如果所有搬运机器人都是一样的)”; 

  • 异质多 Agent 系统(Heterogeneous MAS):系统中的Agent是异质的——也就是它们具有不同的设计目标、不同的能力、不同的实现技术;
  •  这种系统的典型应用场景是“Devin-like工具链”“智能客服系统(虚拟客服Agent+物理客服Agent)”“医疗诊断系统(医生Agent+护士Agent+检验师Agent)”; 

  • 根据Agent之间的关系分类
    • 协作多 Agent 系统(Collaborative MAS):系统中的Agent是协作的——也就是它们共同完成单个Agent无法完成的复杂任务;
  •  这种系统的典型应用场景是“Devin-like工具链”“仓库搬运机器人系统”“智能客服系统”; 

  • 竞争多 Agent 系统(Competitive MAS):系统中的Agent是竞争的——比如电子游戏里的多个AI玩家;
  • 混合多 Agent 系统(Hybrid MAS):系统中的Agent是既协作又竞争的——比如市场经济里的多个企业;
  • 根据环境的动态性分类
    • 静态环境多 Agent 系统(Static Environment MAS):系统的环境是静态不变的——比如一个模拟的棋盘游戏环境;
    • 动态环境多 Agent 系统(Dynamic Environment MAS):系统的环境是动态变化的——比如真实的仓库环境、真实的交通环境;
  •  这也是大多数实际应用的多 Agent 系统所具备的特征。 

    核心概念三:涌现智能(EI)

    学术定义

    涌现智能的概念最早可以追溯到20世纪70年代的复杂性科学(Complexity Science)领域——当时的复杂性科学研究者们发现,很多复杂的系统(比如蚂蚁群体、鸟群、鱼群、人类社会、大脑)都表现出了“单个组成部分完全没有的、复杂的、有序的、有价值的全局行为或能力”,他们把这种现象称为“涌现(Emergence)”,把这种全局行为或能力称为“涌现智能”。

    目前最被广泛接受的涌现智能学术定义来自于圣塔菲研究所(Santa Fe Institute,全球最著名的复杂性科学研究机构)的计算机科学家John H. Holland(他也是遗传算法的发明者),他在1998年出版的《Emergence: From Chaos to Order》一书中给出了这样的定义:

    Emergence is the phenomenon whereby a system exhibits properties that are not explicitly present in any of its individual components, nor can they be easily predicted or deduced from the properties of the individual components.
    (翻译:涌现是一种现象,即一个系统表现出的属性,既不存在于任何单个组成部分中,也不能从单个组成部分的属性中轻易地预测或推导出来。)



    后来,随着多 Agent 系统技术的发展,涌现智能的定义也被扩展到了多 Agent 系统领域——目前多 Agent 系统领域的涌现智能学术定义是:

    Emergent intelligence in multi-agent systems is the phenomenon whereby a multi-agent system exhibits global behaviors or capabilities that are not explicitly present in any of its individual agents, nor can they be easily predicted or deduced from the properties of the individual agents, nor are they explicitly programmed into the system by a human designer.
    (翻译:多 Agent 系统中的涌现智能是一种现象,即一个多 Agent 系统表现出的全局行为或能力,既不存在于任何单个Agent中,也不能从单个Agent的属性中轻易地预测或推导出来,也不是由人类设计者明确地编程到系统中的。)



    核心特征

    多 Agent 系统中的涌现智能通常具备以下5个核心特征

    1. 不可还原性(Irreducibility):涌现智能不能被还原为单个Agent的属性的简单叠加——也就是我们常说的「1+1>2」,甚至「1+1>100」;比如蚂蚁搬家的行为,不能被还原为单个蚂蚁的属性的简单叠加;比如鸟群飞行的行为,不能被还原为单个鸟的属性的简单叠加;
    2. 不可预测性(Unpredictability):涌现智能不能从单个Agent的属性和局部交互规则中轻易地预测或推导出来——也就是说,哪怕你知道每个Agent的所有属性,知道所有Agent之间的局部交互规则,你也不能轻易地预测系统会表现出什么样的全局行为或能力;比如你知道单个蚂蚁的所有属性(比如能感知周围的几只蚂蚁、能释放和感知信息素、能搬运比自己重50倍的食物),知道所有蚂蚁之间的局部交互规则(比如跟随前面的信息素浓度最高的轨迹、如果找到食物就释放更多的信息素),你也不能轻易地预测蚁群会选择哪条路径搬运食物;
    3. 自组织性(Self-Organization):涌现智能是由Agent之间的局部交互自发形成的——不需要外部明确的“全局控制者”,也不需要人类设计者明确地编程;比如蚂蚁搬家的行为,是由蚂蚁之间的局部交互自发形成的;比如鸟群飞行的行为,是由鸟之间的局部交互自发形成的;
    4. 鲁棒性(Robustness):涌现智能具有很强的容错能力——如果系统中的1-2个Agent坏了,或者环境发生了变化,系统会自发地调整,继续表现出有序的全局行为或能力;比如蚂蚁群体中如果1-2只蚂蚁坏了,其他蚂蚁会自动调整分工,继续搬运食物;比如鸟群中如果1-2只鸟被天敌抓走了,其他鸟会自动调整队形,继续迁徙;
    5. 适应性(Adaptivity):涌现智能具有很强的应变能力——如果环境发生了变化,系统会自发地调整自己的全局行为或能力,以适应新的环境;比如如果仓库里的货物摆放位置发生了变化,搬运机器人会自发地重新规划路径,继续搬运货物;比如如果鸟群的迁徙路线上出现了一个新的障碍物,鸟群会自发地调整队形,避开障碍物。
    常见类型

    多 Agent 系统中的涌现智能可以根据不同的维度进行分类,下面是几种最常见的分类方式

    1. 根据涌现智能的表现形式分类
      • 行为涌现(Behavioral Emergence):系统表现出的涌现智能是一种有序的全局行为——比如蚂蚁搬家的行为、鸟群飞行的行为、鱼群游动的行为;
      • 能力涌现(Capability Emergence):系统表现出的涌现智能是一种单个Agent完全没有的复杂能力——比如我们刚才提到的Devin-like工具链里的虚拟团队协作完成电商后台原型的能力;
      • 结构涌现(Structural Emergence):系统表现出的涌现智能是一种有序的全局结构——比如蚁巢的结构、蜂巢的结构、人类社会的组织结构;
    2. 根据涌现智能的形成时间分类
      • 短期涌现(Short-Term Emergence):系统表现出的涌现智能是在短时间内形成的——比如鸟群避开障碍物的行为;
      • 长期涌现(Long-Term Emergence):系统表现出的涌现智能是在长时间内形成的——比如蚁巢的结构、人类社会的组织结构;
    3. 根据涌现智能的可控制性分类
      • 可控涌现(Controllable Emergence):系统表现出的涌现智能是可以被人类设计者通过调整Agent的属性或局部交互规则来控制的——比如我们可以通过调整鸟群模拟中单个鸟的“观察周围鸟的数量”“速度调整系数”等参数,来控制鸟群的队形;
      • 不可控涌现(Uncontrollable Emergence):系统表现出的涌现智能是很难被人类设计者控制的——比如人类社会的某些行为(比如股市的波动)。
    经典案例

    多 Agent 系统中的涌现智能有很多经典的案例,下面是几个最著名的案例

    1. 雷诺兹的鸟群模拟(Reynolds’ Boids):这是最著名的涌现智能模拟案例之一——1987年,计算机科学家Craig Reynolds提出了一个简单的鸟群模拟模型,叫做“Boids”,这个模型只给每个Boid(也就是模拟的鸟)设定了3条简单的局部交互规则
      1. 分离(Separation):不要和周围的Boid靠得太近;
      2. 对齐(Alignment):朝着周围Boid的平均方向飞行;
      3. 凝聚(Cohesion):朝着周围Boid的平均位置飞行;

     就是这3条简单的局部交互规则,却让Boids表现出了非常复杂的、有序的全局行为——比如形成“V”字形或“波浪形”的队形、避开障碍物、跟随领头的Boid、遇到危险时会分散然后重新聚集;
    这个模型后来被广泛应用于电影特效(比如《指环王》里的军队场面、《海底总动员》里的鱼群场面)、游戏AI(比如电子游戏里的鸟群、鱼群、军队AI)、机器人集群控制(比如无人机集群、仓库搬运机器人集群);



  • 蚁群优化算法(Ant Colony Optimization, ACO):这是最著名的基于涌现智能的优化算法之一——1992年,计算机科学家Marco Dorigo提出了蚁群优化算法,这个算法的灵感来自于蚂蚁觅食的行为
    蚂蚁在觅食时,会释放一种叫做“信息素(Pheromone)”的化学物质,其他蚂蚁会感知到信息素的浓度,并选择信息素浓度最高的路径;如果某条路径上的蚂蚁越多,信息素的浓度就越高,就会吸引更多的蚂蚁走这条路径;同时,信息素会随着时间的推移而挥发,这样如果某条路径不再被蚂蚁使用,信息素的浓度就会逐渐降低,蚂蚁就会选择其他路径;
    就是这种简单的局部交互规则,却让蚁群能够自发地找到从蚁巢到食物源的最短路径
    蚁群优化算法后来被广泛应用于旅行商问题(TSP)车辆路径问题(VRP)车间调度问题(JSP)网络路由问题等组合优化问题;

















  • 群体智能机器人(Swarm Robotics):这是基于涌现智能的物理多 Agent 系统的典型应用——群体智能机器人是由多个简单的、低成本的、同质的机器人组成的,它们通过局部交互来实现全局目标;
    比如哈佛大学的RoboBees项目——RoboBees是一群只有硬币大小的微型机器人,它们可以飞行,可以通过局部交互来实现群体飞行、群体觅食、群体筑巢等目标;
    比如苏黎世联邦理工学院的MarXbot项目——MarXbot是一群模块化的机器人,它们可以通过局部交互来连接在一起,形成不同的结构(比如蛇形结构、六足结构),以适应不同的环境;
    群体智能机器人后来被广泛应用于搜救任务(比如地震后的废墟搜救)、环境监测(比如海洋环境监测、森林环境监测)、军事任务(比如侦察任务、攻击任务)等领域。


















  • 小讯
    上一篇 2026-04-09 22:22
    下一篇 2026-04-09 22:20

    相关推荐

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
    如需转载请保留出处:https://51itzy.com/kjqy/252962.html