生成式智能体模拟:《模拟人生》的 AI 版社会实验
生成式智能体模拟:《模拟人生》的 AI 版社会实验——从个体意图到群体自组织的技术解构与实践落地
摘要/引言
你有没有想过,当《模拟人生》里的小人不再是你鼠标点击下的提线木偶,而是拥有自我记忆、推理判断、动态情绪、社交目标的“活物”时,他们会在一个完全不受你干扰的虚拟小镇里做什么?会不会出现自发的节日庆典?会不会有人偷偷暗恋,有人因为抢工作吵架,甚至有人合伙开面包房失败后东山再起?
2023年4月,斯坦福大学与谷歌大脑联合发表的论文《Generative Agents: Interactive Simulacra of Human Behavior》(生成式智能体:人类行为的交互式模拟)给出了震撼性的答案——他们用25个基于GPT-4的生成式智能体,在一个像素风的“小镇春天”(Smallville)里,完全自主地生活了整整一周:有人组织了情人节派对(哦不对论文里是2月14日临时组织的诗歌朗诵会+情人节贺卡交换派对雏形),有人每天去咖啡馆当咖啡师、有人沉迷园艺忘记吃饭、有人通过聊天八卦交换信息形成小团体……整个过程中,研究人员只设定了初始的角色背景、居住地点、少量日程习惯,剩下的一切都是智能体之间的交互+环境触发+内部记忆/推理/反思循环自发产生的。这篇论文不仅引爆了AI圈,也让游戏、影视、教育、城市规划、公共政策等多个领域的从业者彻夜难眠——我们终于摸到了“模拟真实人类社会微观动力学”的门槛,而《模拟人生》的AI版,或许就是这个技术落地的第一个爆款场景。
你将从本文学到什么?
本文不会只停留在对Smallville实验的“吃瓜”层面,而是会作为一名从游戏AI转向通用AI社会模拟的资深工程师,带你从以下几个维度彻底拆解生成式智能体模拟技术:
- 核心概念与边界定义:搞清楚生成式智能体和传统游戏AI、大语言模型Agent、群体智能的区别到底在哪里;
- 技术架构的深度解剖:Smallville背后的“大脑”—记忆检索系统、推理规划系统、反思系统、行动执行系统到底是怎么工作的,以及它们之间的交互逻辑;
- 数学模型与算法实现:我会把论文中提到的相似度计算、时间窗口加权、反思触发机制等数学公式用通俗的语言+具体的Python代码实现出来,哪怕你是AI初学者也能看懂;
- 系统落地的最佳实践:从小镇环境的构建、角色初始prompt的设计、多Agent交互的调度优化,到模拟结果的可视化与分析,我会分享自己在复现Smallville简化版过程中踩过的坑;
- 跨领域的应用场景:除了游戏,生成式智能体模拟还能做什么?城市交通规划、疫情防控政策评估、教育场景的虚拟课堂、影视剧本的自动生成、甚至元宇宙的虚拟居民系统?
- 行业发展的历史、现状与未来:从1940年代的冯·诺依曼元胞自动机,到2000年代的《模拟人生》传统状态机AI,到2023年的Smallville,再到2024年GPT-4o+3D虚拟环境的尝试,生成式智能体模拟走过了怎样的道路?未来又会遇到哪些挑战(比如长期记忆的稳定性、伦理问题、计算成本)?
文章结构导航
为了让你更好地理解这篇万字长文,我先把全文的逻辑框架列出来:
- 第一部分:核心概念与问题背景——解决“是什么”和“为什么现在出现”的问题;
- 第二部分:Smallville实验的技术架构深度解析——从宏观到微观,拆解生成式智能体的“五脏六腑”;
- 第三部分:数学模型与核心算法实现——用Python代码把论文里的理论落地;
- 第四部分:简化版生成式智能体模拟系统的完整复现指南——从环境搭建到角色设计再到运行测试,手把手教你;
- 第五部分:跨领域应用场景与项目案例——看看这个技术除了《模拟人生》AI版还能怎么用;
- 第六部分:最佳实践、行业发展历史与未来趋势——分享经验、回顾过去、展望未来;
- 第七部分:结论与行动号召——总结全文,邀请你一起动手尝试。
准备好了吗?让我们一起进入这个充满“活物”的虚拟世界吧!
第一部分:核心概念与问题背景
1.1 核心概念
在正式开始之前,我们必须先明确几个最容易混淆的核心概念,因为很多时候你看到的“AI模拟人生”“AI社会实验”其实并不是真正的生成式智能体模拟。
1.1.1 生成式智能体(Generative Agent)
首先,我们来给出生成式智能体的严格定义(来自斯坦福大学Smallville论文的作者们):
生成式智能体是一种能够模拟可信人类行为的计算代理,它具有以下四个核心能力:
- 长期记忆(Long-Term Memory):能够存储自己的过去经历、与其他智能体的交互、环境的变化,并在需要的时候检索出相关的记忆片段;
- 推理与规划(Reasoning & Planning):能够基于当前的状态(自身情绪、当前位置、时间、相关记忆)推理出下一步应该做什么,并把长期目标分解为短期可执行的行动序列;
- 反思(Reflection):能够定期对自己的过去行为、与他人的关系、当前的目标进行总结和反思,形成更高层次的抽象认知(比如“我喜欢和喜欢园艺的人交朋友”“我最近应该多去咖啡馆,因为那里信息多”),并以此来调整未来的行为;
- 自然语言交互(Natural Language Interaction):能够用自然语言和其他智能体、甚至人类用户进行交流——这一点非常重要,因为它不仅让智能体的行为更“可信”,也让我们能够直接理解智能体的内部想法(通过prompt引导智能体输出“内心独白”)。
为了让你更直观地理解生成式智能体,我们可以把它和传统游戏AI(比如《模拟人生4》里的小人)、大语言模型Agent(比如AutoGPT、LangChain Agent)、**群体智能(比如蚁群算法、粒子群算法)**做一个对比。
1.1.2 生成式智能体 vs 传统游戏AI(状态机/行为树)
这是最容易混淆的一组概念,因为《模拟人生》里的小人看起来也有“记忆”“情绪”“社交目标”——但本质上,它们是基于规则的状态机/行为树驱动的,没有真正的“自我意识”(哪怕是伪的)和“推理能力”。
我们可以用一个具体的例子来说明两者的区别:
例子1:《模拟人生4》里的小人A vs Smallville里的小人John
假设现在是周五晚上7点,小人A/John的状态都是:
- 饥饿度:80/100(很饿)
- 社交度:20/100(很孤独)
- 娱乐度:30/100(有点无聊)
- 居住地点:自己的公寓
- 附近有什么:楼下有一家披萨店(步行5分钟)、隔壁住着同事兼朋友Lucy(Lucy现在在家看电视吗?《模拟人生4》里我们可以通过检查状态机知道,Smallville里我们需要让John回忆或者推理)
《模拟人生4》里的小人A的行为逻辑(基于状态机/行为树):
- 系统先检查小人A的核心需求优先级:饥饿度(最高)> 社交度 > 娱乐度;
- 系统检查小人A的可用资源:公寓里有没有现成的食物?冰箱里只有一块过期的面包;
- 系统检查小人A的预设规则库:“如果很饿,冰箱里没有现成的食物,附近有披萨店,且钱包里有钱(预设规则里默认有),那么步行去披萨店买披萨,然后回家吃;
- 小人A完全按照规则执行:下楼买披萨,回家吃——整个过程中,它不会想到“Lucy会不会也饿?要不要邀请她一起吃?”“我昨天答应Lucy今天晚上帮她修电脑,要不要先修?”(除非预设规则里有这些紧急情况的处理,但预设规则不可能覆盖所有可能的场景)。
Smallville里的John的行为逻辑(基于生成式智能体的四大核心能力):
- 内部状态激活:John首先感知到自己的核心需求(饥饿、孤独、无聊)和当前的时间/地点;
- 长期记忆检索:John的大脑开始检索与当前状态相关的记忆片段(我们后面会详细讲这个检索机制,它是基于相似度计算+时间窗口加权的):
- 记忆1(昨天下午6点):我和Lucy在公司茶水间聊天,Lucy说她最近天天加班,周五晚上想好好放松一下,不想做饭;
- 记忆2(本周一晚上):我答应Lucy如果她周五晚上有空的话,我可以帮她修电脑(她的电脑上周蓝屏了好几次);
- 记忆3(上周六晚上):我在楼下披萨店买了一份夏威夷披萨,味道很好,而且老板是个很健谈的人;
- 记忆4(今天早上9点):我在咖啡馆遇到了另一个朋友Tom,Tom说他今天晚上要去参加一个读书会,可能会很晚回来;
- 推理与规划:John的大脑开始基于当前状态和检索到的记忆进行推理(这里用的是大语言模型的推理能力,比如GPT-4):
- 首先,核心需求还是饥饿度最高,但能不能同时满足社交需求?
- 记忆1说Lucy不想做饭,记忆2说我答应帮她修电脑——那我可以先去Lucy家,问问她要不要一起买披萨,然后帮她修电脑,修完之后一起看电视?这样既能满足饥饿度,又能满足社交度和部分娱乐度;
- 但是,Lucy现在在家吗?记忆4里没有提到Lucy今天晚上的安排,那我可以先去敲敲她的门看看;
- 于是,John的大脑把长期目标(满足饥饿、社交、娱乐需求,兑现帮Lucy修电脑的承诺)分解为了短期可执行的行动序列:
- 离开自己的公寓;
- 走到Lucy的公寓门口;
- 敲Lucy的门;
- 如果Lucy在家:
a. 问候Lucy,询问她今天晚上的安排;
b. 提醒她我答应帮她修电脑;
c. 邀请她一起去楼下披萨店买披萨;
d. 一起去披萨店;
e. 买两份夏威夷披萨(一份自己的,一份Lucy的,因为记忆3说味道很好);
f. 一起回Lucy家;
g. 先修电脑;
h. 一起吃披萨、看电视; - 如果Lucy不在家:
a. 自己去楼下披萨店买披萨;
b. 回家吃披萨、看自己喜欢的园艺节目;
- 反思(如果有的话,反思不是每次行动都会触发的,我们后面会讲触发机制):假设John这次行动顺利完成了,过了几个小时(比如第二天早上喝咖啡的时候),他可能会触发反思:
- 反思1(关于自己的行为):昨天晚上我兑现了帮Lucy修电脑的承诺,还邀请她一起吃了披萨,感觉很好——我应该多和朋友互动;
- 反思2(关于Lucy的喜好):Lucy喜欢吃夏威夷披萨吗?她昨天只吃了一半,可能不太喜欢——下次我应该先问问她想吃什么;
- 反思3(关于自己的社交圈):我最近和Lucy、Tom互动比较多,要不要再认识一些喜欢园艺的人?因为我每天都在自己的公寓阳台上种花,感觉很孤独(哦不对,昨天晚上已经不孤独了,但可以拓展社交圈);
- 行动执行:John完全按照自己的规划执行——而且,在执行的过程中,可能会遇到环境的随机触发或者其他智能体的交互,导致他的规划发生变化(比如敲Lucy的门的时候,Lucy正在打电话,说她妈妈突然来了,今天晚上不能一起了——那John的大脑会立刻重新进行记忆检索、推理与规划,调整自己的行动序列)。
看到了吗?这就是两者的本质区别:传统游戏AI是规则驱动的“提线木偶”,而生成式智能体是记忆+推理+反思+交互驱动的“伪自主个体”——它的行为不是预设好的,而是在每个时刻“实时生成”的,因此更“可信”,也更有可能出现涌现行为(Emergent Behavior)(比如Smallville里的情人节派对雏形)。
为了让这个对比更清晰,我做了一个markdown表格:
| 对比维度 | 传统游戏AI(状态机/行为树) | 生成式智能体(Generative Agent) |
|---|---|---|
| 驱动方式 | 基于预定义的规则库(状态转移规则、行为树节点规则) | 基于长期记忆检索、大语言模型推理/规划/反思、环境触发、多Agent交互 |
| 行为的可预测性 | 极高——只要知道当前的状态和规则库,就能100%预测下一步的行为 | 极低——行为是“实时生成”的,依赖于每个时刻的记忆检索结果、推理结果、环境变化、其他Agent的交互 |
| 是否有涌现行为 | 几乎没有——规则库不可能覆盖所有可能的场景,涌现行为需要Agent之间的复杂非线性交互 | 非常容易出现——比如Smallville里的诗歌朗诵会、信息传播形成的小团体、面包房的合作尝试 |
| 长期记忆能力 | 非常有限——通常只能存储最近的几个状态(比如最近一次吃饭的时间、最近一次和某个人聊天的内容) | 几乎无限(理论上)——能够存储所有的过去经历、交互、环境变化,并通过相似度计算+时间窗口加权检索 |
| 推理与反思能力 | 几乎没有——所有的“推理”都是预定义的规则(比如“如果饥饿度>80,那么优先吃饭”) | 非常强——能够基于记忆推理出长期目标、分解为短期行动序列,能够定期反思形成更高层次的抽象认知 |
| 自然语言交互能力 | 非常有限——通常只能使用预定义的对话选项(比如《模拟人生4》里的“友好问候”“抱怨工作”“调情”) | 非常强——能够用自然语言进行自由交流,能够输出“内心独白”让我们理解它的内部想法 |
| 适用场景 | 需要高可控性、低计算成本的游戏(比如FPS、MOBA、传统模拟游戏) | 需要高真实性、高自由度的社会模拟、游戏、教育、城市规划、公共政策评估、元宇宙等场景 |
| 计算成本 | 极低——状态机/行为树的执行只需要很少的计算资源 | 极高——每次记忆检索、推理/规划/反思都需要调用大语言模型(比如GPT-4),25个Agent运行一周的成本大约是几千美元(论文里的数据) |
1.1.3 生成式智能体 vs 大语言模型Agent(AutoGPT、LangChain Agent)
接下来,我们来对比生成式智能体和最近很火的大语言模型Agent——很多人可能会说:“生成式智能体不就是加上了记忆系统的LangChain Agent吗?”——这种说法有一定的道理,但并不完全准确,因为生成式智能体有几个大语言模型Agent通常不具备的核心特性:
- 环境感知与持续驻留(Persistent Presence):生成式智能体通常需要持续驻留在一个虚拟环境中(比如Smallville的小镇春天),并且能够实时感知环境的变化(比如现在的时间、天气、自己的位置、附近有没有其他Agent/物体)——而大多数大语言模型Agent(比如AutoGPT)是任务驱动的,完成一个任务之后就会停止运行,不需要持续驻留在虚拟环境中,环境感知能力也非常弱(通常只能通过API调用获取一些外部信息,比如天气、股票价格);
- 动态情绪与社交关系建模:生成式智能体通常需要建模自己的动态情绪(比如开心、难过、愤怒、孤独)和与其他Agent的动态社交关系(比如朋友、同事、暗恋对象、竞争对手)——而大多数大语言模型Agent(比如LangChain Agent)不需要建模这些,它们的目标通常是完成一个具体的任务(比如写一篇文章、订一张机票、找一个资料);
- 涌现行为与群体交互:生成式智能体通常需要和其他多个生成式智能体进行持续的非线性交互,从而产生涌现行为(比如Smallville里的诗歌朗诵会)——而大多数大语言模型Agent(比如AutoGPT)通常是单独运行的,或者只和人类用户/外部API进行交互,不需要和其他多个Agent进行持续的非线性交互;
- 每日生活的例行性与随机性的平衡:生成式智能体通常需要模拟人类每日生活的例行性(比如每天早上7点起床、8点吃早餐、9点去上班)和随机性(比如今天早上不想吃面包,想吃麦片;今天上班路上遇到了朋友,聊了一会儿天,迟到了10分钟)——而大多数大语言模型Agent(比如LangChain Agent)不需要模拟这种例行性与随机性的平衡,它们的行动序列通常是围绕具体任务展开的。
我们同样用一个具体的例子来说明两者的区别:
例子2:AutoGPT vs Smallville里的小人Emily
假设现在的需求是:“帮我写一篇关于‘生成式智能体模拟’的文章提纲”。
AutoGPT的行为逻辑(任务驱动的大语言模型Agent):
- AutoGPT首先理解人类用户的需求:“写一篇关于‘生成式智能体模拟’的文章提纲”;
- AutoGPT设定自己的目标:
- 目标1:收集关于“生成式智能体模拟”的相关资料(比如Smallville论文、相关的新闻报道、博客文章);
- 目标2:整理收集到的资料,形成一个逻辑清晰的文章提纲;
- 目标3:把文章提纲输出给人类用户;
- AutoGPT把长期目标分解为短期可执行的行动序列:
- 行动1:调用Google Search API搜索“生成式智能体模拟 Smallville论文”;
- 行动2:调用Web Scraper API爬取Smallville论文的PDF;
- 行动3:调用PDF Parser API提取Smallville论文的核心内容;
- 行动4:调用Google Search API搜索“生成式智能体模拟 应用场景”;
- 行动5:调用Web Scraper API爬取相关的新闻报道、博客文章;
- 行动6:基于提取到的核心内容和爬取到的资料,生成文章提纲;
- 行动7:把文章提纲保存为Markdown文件;
- 行动8:把Markdown文件发送给人类用户;
- AutoGPT完全按照行动序列执行——如果在执行的过程中遇到了问题(比如Google Search API调用失败),它会重新进行推理,调整行动序列;
- 完成任务之后,AutoGPT停止运行。
Smallville里的Emily的行为逻辑(如果人类用户突然进入小镇春天,给Emily下达了这个需求):
首先,我们需要假设Emily的初始背景:她是小镇春天里的自由职业作家,每天的例行性日程是:早上7点起床、8点吃早餐、9点到12点在自己的公寓里写作、12点到1点吃午餐、1点到4点继续写作或者去图书馆查资料、4点到6点去咖啡馆喝咖啡、和朋友聊天、6点到7点吃晚餐、7点到10点看电影或者看书、10点睡觉。
现在,假设现在是周三下午3点,人类用户突然进入小镇春天的图书馆(Emily正好在图书馆查资料),用自然语言给Emily下达了一个需求:“Emily,你能不能帮我写一篇关于‘生成式智能体模拟’的文章提纲?我下周要在一个会议上发言。”
那么,Emily的行为逻辑是:
- 环境感知与内部状态激活:Emily首先感知到当前的时间(周三下午3点)、地点(图书馆)、附近有什么(人类用户、几本书、另外两个智能体——图书管理员Bob和喜欢历史的学生Alice),然后激活自己的内部状态:
- 饥饿度:40/100(还行)
- 社交度:50/100(一般)
- 娱乐度:30/100(有点无聊,因为查资料查了一下午)
- 当前的工作进度:正在写一本关于“虚拟小镇历史”的小说,已经写了第3章的一半
- 对人类用户的态度:第一次见面,有点好奇,但也有点警惕
- 长期记忆检索:Emily的大脑开始检索与当前状态和人类用户的需求相关的记忆片段:
- 记忆1(上周二下午4点咖啡馆):我和朋友Tom(小镇春天里的程序员)聊天,Tom说他最近在看一篇很有意思的论文,叫《Generative Agents: Interactive Simulacra of Human Behavior》,说那篇论文里的小人是用AI做的,能自己生活;
- 记忆2(本周一上午10点图书馆):我在图书馆的计算机科学区看到了一本关于“多Agent系统”的书,翻了几页,觉得有点难,但里面提到了“涌现行为”这个词;
- 记忆3(本周二上午9点自己的公寓):我正在写的小说里,有一个角色是“虚拟小镇的AI管理员”,我当时想如果这个AI管理员能自己思考就好了;
- 记忆4(今天早上8点自己的公寓):我今天早上吃早餐的时候,感觉今天的灵感不错,本来打算今天下午查完资料之后,写第3章的剩下一半;
- 记忆5(上周六晚上7点自己的公寓):我答应我的编辑,下周五之前要把第3章和第4章的草稿交给他;
- 推理与规划(这里用的是大语言模型的推理能力,同时考虑了自己的情绪、社交关系、工作进度、承诺等):Emily的大脑开始进行推理:
- 首先,人类用户是第一次见面,我应该友好一点,但也要考虑自己的工作进度——我答应编辑下周五之前交第3章和第4章的草稿,现在第3章才写了一半,第4章还没开始;
- 然后,人类用户的需求是“写一篇关于‘生成式智能体模拟’的文章提纲”——我上周二和Tom聊过这个话题,周一在图书馆看到过相关的书,应该能帮上忙;
- 但是,现在是周三下午3点,我的例行性日程是下午1点到4点查资料,4点到6点去咖啡馆——那我能不能和人类用户约在4点的咖啡馆见面,一边喝咖啡一边帮他写提纲?这样既能帮到人类用户,又能满足自己的社交需求和娱乐需求,还不会耽误太多的工作进度;
- 另外,我可以先问问人类用户的具体需求:比如文章的目标读者是谁?文章的字数要求是多少?下周几的会议?这样我写出来的提纲会更符合他的要求;
- 还有,我可以问问Tom能不能也来咖啡馆,因为Tom比我更懂技术——如果Tom能来的话,提纲的质量会更高;
- 于是,Emily的大脑把长期目标(友好地对待第一次见面的人类用户、帮他写文章提纲、不耽误自己的工作进度、满足自己的社交需求和娱乐需求)分解为了短期可执行的行动序列:
- 停下手中的查资料工作,转身面向人类用户;
- 友好地问候人类用户:“你好!我是Emily,自由职业作家。你是第一次来小镇春天吗?我好像从来没见过你。”;
- 询问人类用户的具体需求:“你刚才说你需要一篇关于‘生成式智能体模拟’的文章提纲?能不能告诉我更多的细节?比如文章的目标读者是谁?字数要求是多少?下周几的会议?”;
- 等待人类用户的回答;
- 告诉人类用户自己的情况:“我上周二和朋友Tom(他是程序员)聊过这个话题,周一在图书馆看到过相关的书,应该能帮上忙——但我现在正在查资料,而且答应编辑下周五之前交小说的草稿。能不能我们约在4点的‘甜蜜豆咖啡馆’(Smallville里的咖啡馆)见面?我还可以邀请Tom过来,他比我更懂技术。”;
- 等待人类用户的回答;
- 如果人类用户同意:
a. 继续查资料到4点;
b. 离开图书馆,走到甜蜜豆咖啡馆;
c. 给Tom发消息(Smallville里有虚拟的短信系统),邀请他4点半来甜蜜豆咖啡馆,说有一个人类用户需要关于生成式智能体模拟的文章提纲;
d. 点一杯自己喜欢的拿铁咖啡;
e. 等待人类用户和Tom的到来;
f. 和人类用户、Tom一起讨论,写文章提纲; - 如果人类用户不同意:
a. 礼貌地拒绝人类用户的需求:“对不起,我现在实在是太忙了——答应编辑下周五之前交小说的草稿,现在才写了一半。你可以去问问Tom,他住在北街12号,或者去问问Bob(图书管理员),他可能知道更多相关的资料。”;
b. 继续查资料;
- 反思(如果有的话):假设这次交互顺利完成了,过了几个小时(比如周四早上喝咖啡的时候),Emily可能会触发反思:
- 反思1(关于自己的行为):昨天下午我友好地对待了第一次见面的人类用户,还帮他写了提纲,感觉很好——我应该多和陌生人交流,说不定能给我的小说带来灵感;
- 反思2(关于生成式智能体模拟):原来生成式智能体模拟这么有意思!我能不能把这个概念加到我的小说里?比如虚拟小镇的居民其实都是生成式智能体,而人类用户是“穿越者”?
- 反思3(关于自己的工作进度):昨天下午花了一个多小时帮人类用户写提纲,今天必须要多写一点,才能按时交稿;
- 行动执行:Emily完全按照自己的规划执行——而且,在执行的过程中,可能会遇到环境的随机触发或者其他智能体的交互,导致她的规划发生变化(比如给Tom发消息的时候,Tom说他今天下午要帮Lucy修电脑,不能来咖啡馆——那Emily的大脑会立刻重新进行记忆检索、推理与规划,调整自己的行动序列,比如邀请图书管理员Bob过来)。
同样,为了让这个对比更清晰,我做了一个markdown表格:
| 对比维度 | 大语言模型Agent(AutoGPT、LangChain Agent) | 生成式智能体(Generative Agent) |
|---|---|---|
| 驱动方式 | 主要是任务驱动的——完成一个任务之后就会停止运行 | 主要是存在驱动的——持续驻留在虚拟环境中,模拟人类的“生存”与“生活”,任务只是生活的一部分 |
| 环境感知与持续驻留 | 环境感知能力非常弱(通常只能通过API调用获取外部信息),不需要持续驻留在虚拟环境中 | 环境感知能力非常强(能够实时感知时间、天气、位置、附近的Agent/物体),必须持续驻留在虚拟环境中 |
| 动态情绪与社交关系建模 | 通常不需要建模 | 必须建模——这是模拟可信人类行为的核心要素之一 |
| 涌现行为与群体交互 | 通常不需要和其他多个Agent进行持续的非线性交互,几乎没有涌现行为 | 必须和其他多个Agent进行持续的非线性交互,非常容易出现涌现行为 |
| 每日生活的例行性与随机性 | 通常不需要模拟——行动序列围绕具体任务展开 | 必须模拟——这是模拟可信人类行为的另一个核心要素 |
| 内部想法的可解释性 | 通常只能看到行动序列和最终结果,很难理解内部的推理过程 | 可以通过prompt引导输出“内心独白”,直接理解内部的记忆检索、推理、反思过程 |
| 适用场景 | 需要完成具体任务的场景(比如写文章、订机票、找资料、自动化办公) | 需要模拟可信人类行为的场景(比如社会模拟、游戏、教育、城市规划、公共政策评估、元宇宙) |
| 计算成本 | 取决于任务的复杂度——简单的任务可能只需要几美元,复杂的任务可能需要几百美元 | 非常高——每个Agent每小时可能需要调用几十次大语言模型,25个Agent运行一周的成本大约是几千美元(论文里的数据) |
1.1.4 生成式智能体 vs 群体智能(蚁群算法、粒子群算法、元胞自动机)
最后,我们来对比生成式智能体和群体智能——这两者的共同点是都能产生涌现行为,但本质上也是完全不同的。
首先,我们来给出群体智能的严格定义(来自维基百科):
群体智能是指由大量简单的个体组成的系统,通过个体之间的局部交互,产生全局的、协同的、智能的行为——这些个体通常没有全局的知识,也没有中心的控制者,它们的行为规则通常非常简单。
常见的群体智能算法包括:
- 蚁群算法(Ant Colony Optimization, ACO):模拟蚂蚁觅食的行为——蚂蚁在寻找食物的过程中会留下信息素,信息素会随着时间的推移而挥发,其他蚂蚁会沿着信息素浓度高的路径前进,最终找到最短的路径;
- 粒子群算法(Particle Swarm Optimization, PSO):模拟鸟群觅食的行为——每个粒子代表一个可能的解,粒子会根据自己的历史最优位置和群体的历史最优位置来调整自己的速度和位置,最终找到全局最优解;
- 元胞自动机(Cellular Automaton, CA):由冯·诺依曼在1940年代提出的——元胞自动机由大量的元胞组成,每个元胞有一个状态(比如“生”或“死”),元胞的状态会根据周围元胞的状态和预定义的规则进行更新——著名的“康威生命游戏(Conway’s Game of Life)”就是一种元胞自动机。
现在,我们来对比生成式智能体和群体智能:
例子3:康威生命游戏 vs Smallville
康威生命游戏的规则非常简单:
- 每个元胞有两种状态:“生”(黑色)或“死”(白色);
- 每个元胞的下一个状态取决于它的8个相邻元胞的当前状态:
- 如果一个元胞当前是“生”的,且相邻元胞中有2个或3个是“生”的,那么它下一个状态还是“生”的;否则,它下一个状态是“死”的(孤独死亡或拥挤死亡);
- 如果一个元胞当前是“死”的,且相邻元胞中有恰好3个是“生”的,那么它下一个状态是“生”的(繁殖);否则,它下一个状态还是“死”的。
虽然康威生命游戏的规则非常简单,但它能产生非常复杂的涌现行为——比如“滑翔机(Glider)”:一种会不断向右下方移动的元胞模式;比如“振荡器(Oscillator)”:一种会不断在几种状态之间循环的元胞模式;甚至比如“通用图灵机(Universal Turing Machine)”:一种可以模拟任何计算过程的元胞模式。
Smallville的规则(如果有的话)非常复杂:
- 每个生成式智能体有自己的初始背景、长期记忆、动态情绪、社交关系、目标;
- 每个生成式智能体的下一个状态(情绪、目标、位置、行动)取决于:
- 自己的当前状态;
- 自己检索到的相关记忆片段;
- 大语言模型的推理/规划/反思结果;
- 环境的变化(时间、天气、位置、附近的Agent/物体);
- 与其他Agent的自然语言交互。
Smallville的涌现行为比康威生命游戏的涌现行为更“高级”——比如自发的诗歌朗诵会、信息传播形成的小团体、面包房的合作尝试——这些涌现行为不仅是“模式”的变化,更是“意义”的变化。
同样,为了让这个对比更清晰,我做了一个markdown表格:
| 对比维度 | 群体智能(蚁群算法、粒子群算法、元胞自动机) | 生成式智能体(Generative Agent) |
|---|---|---|
| 个体的复杂度 | 非常简单——个体通常只有几种状态,行为规则也非常简单(通常只有几条预定义的规则) | 非常复杂——个体有长期记忆、推理/规划/反思能力、动态情绪、社交关系、目标,行为规则是“实时生成”的 |
| 个体的知识 | 只有局部的知识——个体不知道全局的状态,也不知道其他个体的内部状态 | 有局部的知识(通过环境感知),也有“全局的知识”(通过记忆检索、推理、与其他Agent的交互)——但这个“全局的知识”是不完整的、有偏见的,就像真实的人类一样 |
| 中心控制者 | 没有——整个系统是去中心化的,个体之间只有局部的交互 | 没有(通常情况下)——整个系统是去中心化的,个体之间通过自然语言进行自由交互 |
| 涌现行为的类型 | 主要是“模式”的变化——比如康威生命游戏里的滑翔机、蚁群算法里的最短路径 | 主要是“意义”的变化——比如Smallville里的诗歌朗诵会、信息传播形成的小团体、面包房的合作尝试 |
| 行为的可解释性 | 比较容易——因为个体的行为规则非常简单,全局的涌现行为可以通过个体的局部交互来解释 | 比较困难——因为个体的行为规则是“实时生成”的,依赖于大语言模型的推理过程,但我们可以通过“内心独白”来理解 |
| 适用场景 | 需要优化的场景(比如路径规划、调度优化、函数优化)、需要模拟简单群体行为的场景(比如鸟群、鱼群) | 需要模拟可信人类行为的场景(比如社会模拟、游戏、教育、城市规划、公共政策评估、元宇宙) |
| 计算成本 | 非常低——即使是几万个个体,计算成本也很低 | 非常高——每个Agent每小时可能需要调用几十次大语言模型,25个Agent运行一周的成本大约是几千美元(论文里的数据) |
1.1.5 核心概念的总结与ER实体关系图
现在,我们已经把生成式智能体和三个最容易混淆的概念(传统游戏AI、大语言模型Agent、群体智能)做了详细的对比——接下来,我们来做一个核心概念的总结,并且画一个ER实体关系图来展示生成式智能体模拟系统的核心实体之间的关系。
核心概念的总结
生成式智能体模拟系统的核心定义是:
生成式智能体模拟系统是一种由多个生成式智能体和一个虚拟环境组成的系统,其中每个生成式智能体都具有长期记忆、推理/规划/反思能力、动态情绪、社交关系、目标,能够持续驻留在虚拟环境中,实时感知环境的变化,与其他生成式智能体和人类用户进行自然语言交互,从而模拟可信的人类行为和群体自组织的涌现行为。
生成式智能体模拟系统的核心实体包括:
- 生成式智能体(Generative Agent):系统的核心,模拟可信的人类行为;
- 虚拟环境(Virtual Environment):生成式智能体生存和生活的场所,包括时间、天气、地点、物体等;
- 交互接口(Interaction Interface):生成式智能体之间、生成式智能体与虚拟环境之间、生成式智能体与人类用户之间进行交互的接口;
- 大语言模型(Large Language Model, LLM):生成式智能体的“大脑”,负责记忆检索的排序、推理/规划/反思的生成、自然语言交互的生成;
- 记忆存储系统(Memory Storage System):存储生成式智能体的所有长期记忆片段。
ER实体关系图
为了更直观地展示这些核心实体之间的关系,我画了一个mermaid ER实体关系图:
这个ER实体关系图展示了以下核心关系:
- 生成式智能体存储多个记忆片段,具有多个动态情绪,建立多个社交关系,设定多个短期目标和长期目标,执行多个行动序列,驻留在虚拟环境中,使用交互接口,调用大语言模型;
- 记忆片段被大语言模型用于排序、推理、反思;
- 虚拟环境包含时间、天气、地点、物体,地点放置多个物体;
- 交互接口连接多个生成式智能体、虚拟环境、人类用户;
- 长期目标分解为多个短期目标,短期目标分解为多个行动序列。
1.2 问题背景
现在,我们已经搞清楚了生成式智能体模拟是什么——接下来,我们来回答另一个重要的问题:为什么生成式智能体模拟会在2023年出现? 而不是2013年、2003年或者更早?
要回答这个问题,我们需要从技术驱动、需求驱动、社会文化驱动三个维度来分析。
1.2.1 技术驱动:大语言模型的爆发式发展
生成式智能体模拟的核心技术基础是大语言模型(LLM)——更具体地说,是具有强大推理能力、上下文理解能力、自然语言生成能力的大语言模型,比如GPT-4、Claude 3、Gemini Ultra。
在大语言模型爆发式发展之前,我们有没有尝试过模拟可信的人类行为?当然有——比如我们之前提到的传统游戏AI(状态机/行为树)、比如符号主义AI(比如SOAR架构、ACT-R架构)、比如连接主义AI(比如神经网络)——但这些技术都有一个致命的缺陷:无法模拟人类的“常识推理”和“开放式交互”。
我们来逐一分析这些技术的缺陷:
- 符号主义AI(SOAR、ACT-R):符号主义AI是基于“物理符号系统假说”的——它认为人类的智能可以通过操纵符号来实现。SOAR架构和ACT-R架构是两种著名的符号主义认知架构,它们能够模拟人类的记忆、推理、学习过程——但它们的知识获取非常困难:你需要手动把所有的“常识”和“规则”编码成符号,而人类的“常识”是无穷无尽的,根本不可能手动编码完;另外,它们的自然语言生成能力非常弱,无法进行开放式的自然语言交互;
- 连接主义AI(神经网络):连接主义AI是基于“人工神经网络”的——它认为人类的智能可以通过模拟大脑的神经元连接来实现。在大语言模型爆发式发展之前,连接主义AI主要用于图像识别、语音识别、机器翻译等“感知类”任务——它的推理能力非常弱,无法进行“常识推理”和“因果推理”;另外,它的上下文理解能力非常有限(通常只能处理几百个或几千个token的上下文),无法存储和检索长期的记忆片段;
- 传统游戏AI(状态机/行为树):我们之前已经详细分析过了——它是基于规则的提线木偶,无法模拟人类的“常识推理”和“开放式交互”,也无法产生涌现行为。
但是,2022年11月OpenAI发布的ChatGPT和2023年3月OpenAI发布的GPT-4彻底改变了这一切:
- 强大的常识推理能力:GPT-4拥有惊人的常识推理能力——它可以回答“如果我把一个玻璃杯放在桌子边缘,然后轻轻推一下桌子,会发生什么?”这样的问题,而不需要手动编码任何规则;
- 强大的上下文理解能力:GPT-4的上下文窗口从最初的8k token扩展到了现在的128k token(甚至更长的320k token版本)——这意味着它可以处理几万字的文本,存储和检索大量的“短期记忆”;
- 强大的自然语言生成能力:GPT-4可以生成流畅、自然、符合上下文的自然语言文本——它可以进行开放式的自然语言交互,也可以生成“内心独白”让我们理解它的内部想法;
- 强大的工具调用能力:GPT-4可以通过Function Calling调用外部工具——这意味着我们可以把“长期记忆存储系统”“虚拟环境接口”等外部工具封装成函数,让GPT-4调用,从而实现生成式智能体的核心功能。
正是因为大语言模型的这些爆发式发展,我们才终于有了模拟可信人类行为的技术基础——生成式智能体模拟才得以在2023年出现。
1.2.2 需求驱动:多个领域对“可信人类行为模拟”的迫切需求
除了技术驱动之外,**多个领域对“可信人类行为模拟”的
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)