架构
Generative Agents 需要一个框架来指导其在开放世界中的行为,旨在让 Generative Agents 能够与其他智能体进行交互并对环境变化做出反应。
Generative Agents 将其当前环境和过去的经验作为输入,生成行为作为输出。Generative Agents 的架构将大型语言模型和合成与检索相关信息的机制结合到一起,以调节语言模型的输出。
如果没有合成与检索机制,大型语言模型可以输出行为,但 Generative Agents 可能不会根据智能体过去的经验做出反应,以至于无法做出重要的推理,也可能无法保持长期的连贯性。即使使用当前性能最好的模型(例如 GPT-4),长期规划和连贯性方面的挑战仍然存在 。
由于 Generative Agents 会产生大量必须保留的事件和记忆流(memory stream),因此其架构的核心挑战是确保在需要时检索和合成智能体记忆中最相关的部分。
Generative Agents 的架构中心是记忆流 —— 一个全面记录智能体经验的数据库。智能体会从记忆流中检索相关记录,以规划智能体的动作行为并对环境做出适当反应,并且每次行为都会被记录以递归合成更高级别的行为指导。Generative Agents 架构中所有的内容都被记录下来并以自然语言描述的形式来进行推理,从而使智能体能够利用大型语言模型的推理功能。
当前,该研究实现了使用 ChatGPT 的 gpt3.5-turbo 版本。研究团队预计 Generative Agents 的架构基础 —— 记忆、规划和反思 —— 可能会保持不变。较新的语言模型(例如 GPT-4)拥有更好的表达能力和性能,这会进一步扩展 Generative Agents。
记忆与检索
Generative Agents 的架构实现了一个检索功能,该功能将智能体的当前情况作为输入并返回记忆流的一个子集以传递给语言模型。检索功能有多种可能的实现方式,具体取决于智能体在决定如何行动时考虑的重要因素。
反思
该研究还引入了第二种类型的记忆,称为「反思」。反思是由智能体生成的更高层次、更抽象的思想。反思是周期性产生的,在该研究中,只有当智能体对最近事件的重要性分数总和超过某个阈值,智能体才会开始反思。
实际上,该研究提出的 Generative Agents 每天大约反思两到三次。反思的第一步是让智能体确定要反思的内容,方法是根据智能体最近的经历确定可以提出的问题。
规划与反应
规划被用于描述智能体未来行动的顺序,并帮助智能体随着时间的推移保持行为一致。规划应该包含位置、开始时间和持续时间。
为了创建合理的规划,Generative Agents 会自上而下递归地生成更多细节。第一步是制定一个计划,粗略地概述当天的「日程」。为了创建初始规划,该研究向语言模型 prompt 智能体的总体描述(例如,姓名、特征和它们最近经历的摘要等等)。
在执行规划的过程中,Generative Agents 会感知周围环境,感知到的观察结果会存储在它们的记忆流中。该研究用这些观察 prompt 语言模型来决定智能体是应该继续它们的现有规划,还是做出其他反应。
实验及评估
该研究对 Generative Agents 进行了两项评估:一项是控制评估,以测试智能体是否能独立地产生可信的个体行为;另一项是端到端评估,其中多个 Generative Agents 在两天的游戏时间内开放式交互,这是为了了解智能体的稳定性和涌现(emergent)社会行为。
比如,伊莎贝拉计划举办一场情人节派对。她传播了这个信息,在模拟结束时,12 个角色已经知道了这件事。其中 7 个人「犹豫不决」——3 个人已有其他计划,4 个人没有表露想法,这和人类的相处一样。
在技术评估层面,该研究通过用自然语言「采访」智能体,来评估智能体保持「性格」、记忆、规划、反应和准确反思的能力,并进行了消融实验。实验结果表明,这些组成部分中的每一个对于智能体在任务中的出色表现都至关重要。
在实验评估中,智能体出现的最常见错误包括:
- 其未能检索相关记忆;
- 对智能体记忆进行捏造修饰;
- 从语言模型中「继承」过于正式的言语或行为。
感兴趣的读者可以阅读论文原文,了解更多研究细节。