生成式Agent与涌现模拟
Park 等人 2023 (UIST '23, arXiv:2304.03442) 用三部分架构填充了 Smallville,一个 25 Agent 沙箱:记忆流(自然语言日志)、反思(Agent 关于自己流生成的更高层次综合)和计划(日级行为,然后子计划)。标志性结果是情人节派对涌现:一个 ...
生成式 Agent 与涌现模拟
Park 等人 2023 (UIST ‘23, arXiv:2304.03442) 用三部分架构填充了 Smallville,一个 25 Agent 沙箱:记忆流(自然语言日志)、反思(Agent 关于自己流生成的更高层次综合)和计划(日级行为,然后子计划)。标志性结果是情人节派对涌现:一个 Agent 被种子化”想举办情人节派对”,没有进一步脚本,产生了通过人群传播的邀请、协调日期,派对发生了——来自 24 个一开始对此一无所知的 Agent。消融显示所有三个组件都是可信度所必需的。记录的失败是空间规范错误(进入关闭的商店、共享单人浴室)。这是 2026 年 Agent 模拟和多 Agent 社会评估的参考架构。
类型: 学习 + 构建 语言: Python (stdlib) 前置条件: Phase 16 · 04 (原语模型), Phase 16 · 13 (共享记忆) 时间: ~75 分钟
问题
大多数多 Agent 系统是紧密脚本的团队:规划者规划、编码者编码、审查者审查。这对明确定义的任务有效。它不捕获当 Agent 有记忆、优先级和开放世界时出现的涌现、非脚本行为。研究、社会模拟以及越来越多的游戏 AI 需要第二种。
Smallville 架构是它的基准。在 Park 2023 之前,最好的 Agent 模拟是浅层脚本跟随者;之后,该模式成为开放世界中生成式 Agent 的默认。如果你在 2026 年构建 Agent 模拟,你要么使用 Smallville 的三个组件,要么显式论证为什么不。
概念
三个组件
记忆流。 观察、动作、反思和计划的只追加日志。每个条目有时间戳、类型、描述(自然语言)和派生元数据:新近度、重要性(Agent 自评 1-10)和相关性(与当前查询的余弦相似度)。
[2026-02-14 09:12:03] observation: Isabella Rodriguez 问我是否喜欢爵士乐
[2026-02-14 09:14:22] reflection: 我喜欢关于音乐的长时间对话
[2026-02-14 10:05:00] plan: 今晚参加 Isabella 的情人节派对
记忆检索结合三个分数:score = w_recency * e^(-decay * age) + w_importance * importance + w_relevance * cos_sim。Top-k 条目进入当前提示。
反思。 定期(每 N 条记忆或在重要事件上),Agent 从最近记忆生成更高层次的综合。反思条目回到流中,像任何其他记忆一样可检索。这是 Agent 构建”理解”的方式——架构的等价于长期信念。
计划。 自上而下分解。首先,日级计划的粗略大纲(“去上班,和 Klaus 吃晚饭”)。然后小时级计划。然后动作级计划。计划可修订:当观察与计划矛盾时,Agent 重新规划受影响的段。
为什么三个都重要(消融)
Park 等人运行了去掉观察、反思和计划中每一个的消融实验。每个消融都损害可信度:
- 没有观察,Agent 错过上下文,基于过时信念行动。
- 没有反思,Agent 无法形成更高层次信念;交互保持浅层。
- 没有计划,行为变成反应性噪声;目标消散。
人类评分者的可信度分数在三个都有时最高;去掉任何一个产生可测量的回退。
情人节涌现
一个 Agent,Isabella Rodriguez,被种子化为目标”想在 2 月 14 日下午 5 点在 Hobbs Cafe 举办情人节派对。“其他 24 个 Agent 没有收到这样的种子。在模拟的日子里:
- Isabella 的计划包括邀请人。
- 每个邀请成为邻居记忆流中的观察。
- 邻居的反思生成信念:“Isabella 要举办派对。”
- 邻居的计划纳入”2 月 14 日参加派对。”
- 邻居告诉其他邻居。邀请在没有中央协调的情况下传播。
- 2 月 14 日下午 5 点,几个 Agent 在 Hobbs Cafe 汇聚。
这是技术意义上的涌现:系统级行为(派对)从局部交互(双边邀请 + 个人规划)中产生,没有中央编排者。
记录的失败模式
Park 等人明确记录:
- 空间规范错误。 Agent 走进关闭的商店。Agent 试图使用同一个单人浴室。Agent 在不打算吃饭的房间里吃饭。模型不能仅从环境推断社会-物理规范。
- 记忆溢出。 深度模拟运行导致记忆检索成本增长。实际补救:定期记忆压缩(摘要-修剪)和对低重要性条目的衰减。
- 反思幻觉。 反思可以发明记忆流中不存在的关系。缓解:在反思提示中包含来源记忆 ID,在检索时验证。
这些是与生产相关的失败模式:任何 2026 年 Agent 模拟都继承它们。
三组件实现规则
- 记忆是只追加的。 永远不要修改记忆条目。修正是新条目。
- 重要性分数很便宜。 在写入时调用 LLM 评分重要性 1-10。缓存分数。
- 检索是排名的,不是过滤的。 按综合分数 top-k;不使用硬过滤器(会丢失上下文)。
- 反思定期运行。 当未处理记忆的重要性总和超过阈值(例如 150)时触发。
- 计划可修订。 当新观察与计划矛盾时,只重新生成受影响的段,不是整个计划。
Smallville 之外的生成式 Agent
2024-2026 年后续文献扩展了架构:
- 用于政策/市场研究的多 Agent 社会模拟。 类 Smallville 人群模拟用户对功能的行为。比 A/B 测试快;准确性有争议。
- 游戏 NPC AI。 带有 Smallville Agent 的 RPG 产生涌现故事线而不是脚本任务。
- 生成式 Agent 评估基准。 不是任务准确性,指标变成长时间运行的可信度 + 行为连贯性。
架构是参考。扩展替换组件(向量存储替代记忆、检索增强反思、神经符号计划)但保持三部分结构。
为什么这对多 Agent 工程重要
Smallville 是多 Agent 涌现在组件正确时很便宜的证明概念。架构现在已在开源模型上复现(更小的 LLM 优雅地失去可信度,不是急剧地)。任何需要涌现社会行为的生产系统使用这个形状。任何需要紧密任务执行的系统使用本阶段早些时候的监督者/角色/原语模式。
构建它
code/main.py 在 stdlib Python 中用脚本化 Agent 策略(无真实 LLM)实现三个组件。演示以微缩版复现情人节派对涌现:
MemoryStream— 带新近度/重要性/相关性检索的只追加日志。reflect(stream)— 对最近高重要性记忆的脚本化反思。plan(agent_state)— 基于当前信念的日级和小时级计划。- 场景:5 个 Agent。Agent 1 以”下午 5 点举办派对”开始。在模拟的 tick 中,邀请传播,Agent 汇聚。
运行:
python3 code/main.py
预期输出:逐 tick 追踪。到最终 tick,至少 3/5 的 Agent 在计划中显示派对,它们在派对地点汇聚。单个种子产生了协调到达,没有任何编排者。
使用它
outputs/skill-simulation-designer.md 设计生成式 Agent 模拟:Agent 数量、记忆 Schema、反思节奏、计划范围和评估指标。
发布它
生产模拟规则:
- 记忆是数据库。 规模化时选择真实存储(向量 DB、Postgres)。内存中的 stdlib 用于原型。
- 记录检索追踪。 对于每个动作,记录驱动它的 top-k 记忆。这是你的调试能力。
- 每 Agent token 预算。 每个 Agent 每 tick 的 retrieve + reflect + plan 是 O(k) 次 LLM 调用。N 个 Agent × T 个 tick × 每 tick 调用数可能使你的预算相形见绌。
- 定期压缩记忆。 摘要-修剪低重要性条目。保留策略是设计决策,不是细节。
- 显式检测空间/社会规范违规。 架构不会学习它们。
练习
- 运行
code/main.py。确认 3+ 个 Agent 在派对汇聚。将 Agent 增加到 10——涌现仍然发生吗? - 移除反思步骤。行为看起来如何?映射到 Park 2023 的消融发现。
- 引入竞争种子目标(“Klaus 想在下午 5 点做研究演讲”)。Agent 分裂还是一个目标主导?什么决定它?
- 添加空间约束:Hobbs Cafe 最多容纳 4 个 Agent。模拟是否优雅地处理溢出,还是遇到”单人浴室”失败模式?
- 阅读 Park 等人 (arXiv:2304.03442) 第 6 节(涌现行为实验)。识别一个在你的微缩版中不可复现的行为。你需要增强架构的哪个组件?
关键术语
| 术语 | 人们怎么说 | 实际含义 |
|---|---|---|
| 记忆流 | ”Agent 的日记” | 观察、动作、反思、计划的只追加日志。 |
| 新近度 | ”记忆有多新” | 按年龄的指数衰减分数。 |
| 重要性 | ”Agent 有多在意” | 写入时自评 1-10。缓存。 |
| 相关性 | ”与当前查询有多相关” | 余弦相似度(基于嵌入)。 |
| 反思 | ”更高层次信念” | 从最近记忆生成的综合,作为新记忆重新摄入。 |
| 计划 | ”日/小时/动作分解” | 自上而下计划树。观察矛盾时可修订。 |
| Smallville | ”Park 2023 的沙箱” | 25 Agent 模拟,产生了情人节涌现。 |
| 可信度 | ”质量指标” | 人类评分者对行为是否像合理 Agent 的评分。 |
延伸阅读
- Park et al. — Generative Agents: Interactive Simulacra of Human Behavior — 参考架构
- UIST ‘23 paper page — 发表场所
- Smallville code release — 参考 Python 实现
- Hayes-Roth 1985 — A Blackboard Architecture for Control — 结构化记忆 Agent 的先前技术