引言:为什么需要 GABM?
传统社会科学研究的核心目标通常在于理解个体如何行动、群体如何形成、社会规范如何出现等等。为此,研究者们长期使用一种经典方法 Agent-Based Modeling(ABM)。其核心思想非常直观:
将社会视为由大量“个体”(agent)相互作用构成的复杂系统。
研究者通过定义agent 的属性、行为规则和交互机制,来观察系统如何演化。通过这种方式,研究者可以模拟疫情传播、谣言扩散、市场竞争、社会规范形成等等。
然而,传统 ABM 长期存在一个致命的缺陷,就是人类行为很难被简单规则准确描述。
现实中的人类个体并不是严格理性的,他们会从众、犹豫、情绪化、追随权威、追求身份认同、……。也就是说,我们很多社会行为并不是基于固定规则,而是往往由认知所驱动的。这意味着:传统 ABM 虽然能够模拟交互规则,却难以真正模拟“人的思考过程”。
一、GABM 及其核心思想
随着 ChatGPT、DeepSeek 等大语言模型(LLM)的发展,研究者开始意识到:大语言模型不仅学会了语言表达,更在海量互联网文本中学习了社会互动、群体心理、、社会规范、权威关系等等。于是,一个新的问题被提出:
是否可以让 LLM 替代传统 ABM 中的行为规则?
这便是 Generative Agent-Based Modeling(GABM)。其本质可以概括为 ABM + LLM;其中 ABM 负责社会结构,LLM 负责认知推理。在 GABM 中,研究者不再定义行为规则,而是:response = LLM(prompt),即让 agent 自己思考。这意味着:GABM 不再只是模拟行为规则,而开始尝试模拟认知过程。
GABM 和传统 ABM的主要特征比较,如下:
GABM 的两个核心要点包括:
1 Prompt 即社会环境
在 GABM 中,Prompt 不只是输入文本;它实际上承担了社会环境描述的功能,因此其本身已经成为模型结构的一部分。
2 Emergence(涌现)
GABM 中最核心的概念之一是 Emergence(涌现),即:群体层面的复杂现象由个体互动自然产生。例如社会规范、从众行为、权威效应、身份认同、群体极化等,这些行为并不是研究者硬编码的;而是从 agent 的认知推理中自然出现。

二、一个简单模型:办公室着装规范(Blue or Green)
这里,我们给出一个非常简单的仿真实验场景:某办公室中有若干员工(worker agent);每天,每个员工都需要决定穿蓝色(Blue)或绿色(Green)衬衫。
在任一仿真时刻 t,每个 worker agent 可以获得的信息包括:昨天多少人穿蓝色衬衫、多少人穿绿色衬衫,自己的人格特征和自己昨天穿了什么颜色的衬衫。随后,worker agent 使用大语言模型完成推理,并做出新的选择决策。
仿真模型的设计及实现采用模块化结构:
gabm_project/│├── main.py├── agent.py├── llm.py└── config.py
各模块的具体功能如下:
系统中的每个 Worker agent表示一个办公室员工,其核心状态包括:
self.idxself.personaself.current_colorself.previous_color
分别表示agent ID、人格特征、当前颜色和历史状态。
我们通过build_prompt()函数构建社会环境、人格特征、历史行为和决策任务等;最后,在decide()函数中完成决策行为和状态更新。
import randomfrom llm import ask_llmclass Worker: def __init__(self, idx, persona): # initialize the worker attributes self.idx = idx self.persona = persona self.current_color = random.choice([ "blue", "green" ]) self.previous_color = self.current_color # build the prompt for the worker based on the counts of blue and green shirts, the worker's persona, and previous color def build_prompt(self, blue_count, green_count): prompt = f"""You work in an office.Yesterday:- {blue_count} workers wore blue shirts- {green_count} workers wore green shirtsYour personality: {self.persona}Yesterday you wore: {self.previous_color}Today decide: blue or green?Return ONLY one word: blue or green""" return prompt # use the prompt to ask the LLM and update the worker's current color based on the response def decide(self, blue_count, green_count): prompt = self.build_prompt( blue_count, green_count ) response = ask_llm(prompt) response = response.lower() if "blue" in response: self.current_color = "blue" else: self.current_color = "green"
三、结果与讨论
在仿真实验过程中,最重要的一点是研究者没有写任何“从众规则”;而是系统中的所有行为完全由 LLM 自主生成。仿真结果发现:LLM 展现了惊人的拟人化推理能力;并且即使不存在显式规则,系统依然会逐渐形成主导颜色、稳定规范和群体行为一致性。
这表明:
大语言模型已经隐含学习了大量人类社会行为模式。

然而,当前 GABM 应用也具有一些局限性,具体包括:
Prompt 敏感性。Prompt 已经成为模型结构的一部分。Prompt 的细微变化都可能导致完全不同的结果。
黑箱问题。GABM 的可解释性仍有限。研究者无法完全解释LLM 为什么会做出某种推理。
计算成本问题。如果agent 数量增加、simulation 时间增长、API 调用成本会迅速上升。因此,当前 GABM 更适合小规模实验、方法探索或原型研究。
参考文献:Ghaffarzadegan, et al. (2024).