生成式 Agent 与涌现模拟

Learn + Build~75 minutesPython (stdlib)先修要求: Phase 16 · 04 (Primitive Model), Phase 16 · 13 (Shared Memory)
Park 等人 2023 年的工作(UIST '23,arXiv:2304.03442)搭建了 Smallville——一个包含 25 个 Agent 的沙盒——并采用三部分架构:记忆流(memory stream)(自然语言日志)、反思(reflection)(Agent 针对自身记忆流生成的高层综合)、计划(plan)(日级行为,再细分子计划)。里程碑式的成果是情人节派对的涌现:一个被赋予「想办一场情人节派对」的 Agent,在没有更多脚本的情况下,让邀请在人群中传播、协调了日期,派对真的发生了——而另外 24 个 Agent 起初对此一无所知。消融实验表明,三个组件对可信度都不可或缺。已记录的失败包括空间规范错误(走进关门的商店、共用单人卫生间)。这是 2026 年 Agent 模拟与多 Agent 社会评估的参考架构。

问题

大多数多 Agent 系统是脚本化程度很高的团队:规划者做规划、编码者写代码、评审者做评审。这对定义明确的任务很有效,但它捕捉不到 Agent 拥有记忆、优先级和开放世界时产生的涌现式、非脚本化行为。研究、社会模拟以及越来越多的游戏 AI,需要的正是这第二类系统。

Smallville 架构是这方面的基准。在 Park 2023 之前,最好的 Agent 模拟只是浅层地跟随脚本;在此之后,这种模式成为开放世界中生成式 Agent 的默认做法。如果你在 2026 年构建 Agent 模拟,你要么采用 Smallville 的三个组件,要么明确说明为什么不采用。

概念

三个组件

记忆流。 一个只追加的日志,记录观察、行动、反思和计划。每个条目都有时间戳、类型、描述(自然语言)以及派生元数据:新近度(recency)、重要性(importance)(Agent 自评 1-10)和相关性(relevance)(与当前查询的余弦相似度)。

[2026-02-14 09:12:03] observation: Isabella Rodriguez asked me if I like jazz
[2026-02-14 09:14:22] reflection:   I enjoy long conversations about music
[2026-02-14 10:05:00] plan:         Attend Isabella's Valentine's Day party tonight

记忆检索会组合三个分数:score = w_recency * e^(-decay * age) + w_importance * importance + w_relevance * cos_sim。得分最高的 k 个条目进入当前 prompt。

反思。 周期性触发(每 N 条记忆或遇到重要事件时),Agent 从最近的记忆中生成更高阶的综合。反思条目会回到记忆流中,并像其他记忆一样可被检索。Agent 就是这样建立「理解」的——相当于该架构中的长期信念。

计划。 自顶向下分解。首先是一个粗线条的日级计划(「去上班,和 Klaus 吃晚饭」)。然后是小时级计划。接着是动作级计划。计划可修订:当观察与计划矛盾时,Agent 只重规划受影响的那一段。

为什么三者缺一不可(消融)

Park 等人分别去掉了观察、反思和计划做消融。每种消融都会损害可信度:

  • 没有观察,Agent 会错过上下文,基于过时的信念行动。
  • 没有反思,Agent 无法形成高阶信念;交互停留在浅层。
  • 没有计划,行为变成反应式的噪声;目标消散。

人类评分者给出的可信度分数在三者齐备时最高;去掉任何一个都会带来可测量的回退。

情人节派对的涌现

一个 Agent Isabella Rodriguez 被赋予目标「想在 2 月 14 日下午 5 点在 Hobbs Cafe 办一场情人节派对」。其余 24 个 Agent 没有这个种子。随着模拟天数推进:

  1. Isabella 的计划包含邀请他人。
  2. 邀请成为邻居记忆流中的一条观察。
  3. 这个邻居的反思生成信念:「Isabella 要办派对。」
  4. 邻居的计划纳入「2 月 14 日参加派对」。
  5. 邻居再告诉其他邻居。邀请在没有中心协调的情况下传播开来。
  6. 2 月 14 日下午 5 点,若干 Agent 汇聚到 Hobbs Cafe。

这是技术意义上的涌现:系统级行为(一场派对)从局部交互(双边邀请 + 个体规划)中产生,没有中心编排器。

已记录的失效模式

Park 等人明确记录了:

  • 空间规范错误。 Agent 走进关门的商店。Agent 试图使用同一个单人卫生间。Agent 在不适合用餐的房间里吃饭。模型无法仅从环境中推断社会-物理规范。
  • 记忆溢出。 长时间的深度模拟会让记忆检索成本持续增长。实用补救:周期性记忆压缩(总结并修剪)以及对低重要性条目的衰减。
  • 反思幻觉。 反思可能虚构出记忆流中并不存在的关系。缓解:在反思 prompt 中包含来源记忆 id,并在检索时校验。

这些都是与生产相关的失效模式:任何 2026 年的 Agent 模拟都会继承它们。

三组件实现规则

  1. 记忆只追加。 永不修改记忆条目。更正是新条目。
  2. 重要性分数要廉价。 在写入时调用 LLM 打 1-10 分。缓存分数。
  3. 检索是排序,不是过滤。 按组合分数取 top-k;不要用硬过滤(会丢失上下文)。
  4. 反思周期性运行。 当未处理记忆的重要性总和超过阈值(例如 150)时触发。
  5. 计划可修订。 当新观察与计划矛盾时,只重新生成受影响的那一段,而不是整份计划。

Smallville 之外的生成式 Agent

2024-2026 年的后续文献扩展了该架构:

  • 用于政策/市场研究的多 Agent 社会模拟。 Smallville 式人群模拟用户对新功能的行为反应。比 A/B 测试更快;准确性仍有争议。
  • 游戏中的 NPC AI。 配备 Smallville Agent 的 RPG 会产生涌现式剧情,而不是脚本化任务。
  • 生成式 Agent 评估基准。 指标不再是任务准确率,而是长时间运行中行为的可信度 + 连贯性。

该架构是参考。各种扩展会替换组件(用向量库做记忆、检索增强的反思、神经符号计划),但保留三部分结构。

这对多 Agent 工程意味着什么

Smallville 证明了:只要组件选对,多 Agent 涌现的成本很低。该架构如今已在开源模型上复现(较小的 LLM 会平滑地、而非断崖式地损失可信度)。任何需要涌现式社会行为的生产系统都采用这种形态。任何需要紧密任务执行的系统,则采用本阶段前面的监督者/角色/原语模式。

a5-memory-reflection静态版本未包含此交互图

构建它

code/main.py 用标准库 Python 实现三个组件,采用脚本化的 Agent 策略(没有真实 LLM)。演示在缩小规模上复现了情人节派对的涌现:

  • MemoryStream —— 只追加日志,支持按新近度/重要性/相关性检索。
  • reflect(stream) —— 对近期高重要性记忆做脚本化反思。
  • plan(agent_state) —— 基于当前信念生成日级和小时级计划。
  • 场景:5 个 Agent。Agent 1 从「下午 5 点办派对」开始。随着模拟 tick 推进,邀请扩散,Agent 们汇聚。

运行:

python3 code/main.py

预期输出:逐 tick 的轨迹。到最后一个 tick,5 个 Agent 中至少有 3 个的计划里出现了派对,并且它们在派对地点汇聚。单一初始种子在没有任何编排器的情况下产生了协调到达。

使用它

outputs/skill-simulation-designer.md 用于设计生成式 Agent 模拟:Agent 数量、记忆 schema、反思节奏、计划时程以及评估指标。

交付它

生产模拟的规则:

  • 记忆就是数据库。 规模化时选择真正的存储(向量数据库、Postgres)。内存中的标准库实现只适合原型。
  • 记录检索轨迹。 对每个动作,记录驱动它的 top-k 记忆。这是你的调试能力所在。
  • 为每个 Agent 设定 token 预算。 每个 Agent 每 tick 的 retrieve + reflect + plan 是 O(k) 次 LLM 调用。N 个 Agent × T 个 tick × 每 tick 的调用次数,可能远远超出预算。
  • 周期性压缩记忆。 总结并修剪低重要性条目。保留策略是设计决策,不是细节。
  • 显式检测空间/社会规范违规。 架构本身学不到这些。

练习

  1. 运行 code/main.py。确认 3 个以上 Agent 在派对地点汇聚。把 Agent 增加到 10 个——涌现还会发生吗?
  2. 去掉反思步骤。行为看起来如何?对照 Park 2023 的消融结论。
  3. 引入一个相互竞争的种子目标(「Klaus 想在下午 5 点做一场研究报告」)。Agent 会分裂,还是一个目标占主导?由什么决定?
  4. 增加空间约束:Hobbs Cafe 最多容纳 4 个 Agent。模拟是优雅地处理溢出,还是撞上「单人卫生间」式的失败模式?
  5. 阅读 Park 等人(arXiv:2304.03442)第 6 节(涌现行为实验)。找出一个在你的缩小版中无法复现的行为。你需要增强架构中的哪个组件?

关键术语

术语人们的说法实际含义
Memory stream"Agent 的日记"观察、行动、反思、计划的只追加日志。
Recency"记忆有多新"按时间计算指数衰减的分数。
Importance"Agent 有多在意"写入时自评 1-10。会缓存。
Relevance"与当前查询有多相关"余弦相似度(基于 embedding)。
Reflection"高阶信念"从近期记忆生成的综合,再作为新记忆重新摄入。
Plan"日/时/动作分解"自顶向下的计划树。观察矛盾时可修订。
Smallville"Park 2023 的沙盒"产生情人节涌现的 25 Agent 模拟。
Believability"质量指标"人类评分者判断行为是否像可信 Agent 的分数。

延伸阅读

示意图共 1 张

smallville diagram
smallville

“Stay hungry, stay foolish.”

— Steve Jobs

esc
↑↓切换↵打开esc关闭