世界首款基于 jev 的 AI 实时模拟小镇上线了,比斯坦福小镇 200 倍速度,成本减少 90%!

K_KKiki 2026-09-24 12:08 1

最近 jev 的讨论挺多,我们把它接进了「斯坦福小镇」的 agent 模拟世界,做了一个小实验。

虽然它用了像素风游戏的表现形式,但这个世界里没有玩家角色。人类只能观察,不能控制居民。画面中所有会移动的角色,都是 agent 依靠 jev 自己决定要去哪里、找谁,以及什么时候停下来。


目前场景里有 20 个居民。每个人都有自己的身份、性格、当前状态和对世界的共同认知。

世界运行后,他们会不断经历这样一个循环:

观察当前环境 → 决定下一步做什么 → 移动 → 发起互动 → 对话 → 更新状态和记忆


这次主要实验的是:能不能让 jev 来负责 agent 最频繁的「下一步做什么」决策( repo 里面有录屏)

我们的做法不是让模型自由生成一段 JSON ,而是先由引擎计算出当前合法的候选动作,例如:



  • 现在可以接近哪些人或物体

  • 可以走向哪些地点

  • 是否值得主动接触某个目标

  • 如果不行动,应该短暂停留还是等待更久

    然后把这些候选项交给 Jev 。一次请求里会同时询问 seek 、target 、roam 、place 和 idle_length ,再由代码按照固定规则组合成最终动作。

    这样做主要解决了一个之前比较麻烦的问题:普通对话模型即使被要求输出 JSON ,仍然可能选择一个根本不存在、或者当前不可达的目标。Jev 的 Choice 问题只能从引擎提供的候选项里选择,相当于让非法动作从结构上就无法被表达。

    同时,它还会返回每个选项的概率和置信度,所以右侧观察面板里可以看到类似这样的记录:

    seek 0.83 · talk to Ovid p=0.62 c=0.70

    这比让模型事后生成一句“我为什么这么做”,更方便观察 Agent 的真实决策过程。


当然,Jev 目前并没有负责整个 Agent 。

它只替换了动作决策这一环。人物对话、长期状态描述和记忆仍然由对话模型与 Embedding 完成。Jev 不生成文本,所以它很适合从有限选项中快速做决定,但不适合直接承担人物对白。

技术上目前是 TypeScript + React + PixiJS 。模拟本身运行在浏览器中,Node 代理只负责保存模型凭证和转发请求。默认运行 20 个 agent ,也可以调整到 50 个,用来观察多人场景下的行为和调用压力。


当前版本还有不少限制:



  • 只有一个主要观察场景

  • 默认刷新页面会重新开始一个世界

  • Agent 数量增加后,对话模型的调用成本仍然比较明显

  • Jev 不生成 intent 和动作描述,人物接近目标后的行为有时会显得比较直接

  • 这仍然是一个 Agent loop 的实验,不是完整的虚拟社会


这里说的「斯坦福小镇」,主要指 Generative Agents / Smallville 这一类“观察数字居民自主生活”的方向,并不是对原项目的完整复刻。项目的早期工程基础来自 a16z 的 AI Town ,我们在上面继续做了自己的世界、像素场景和决策层实验。

最新回复 (15)
  • 竭泽之鱼 09-24 12:09
    1楼

    你这是从哪来的?

  • K_KKiki 楼主 09-24 12:20
    2楼

    代码和运行方式放在这里:

  • QYY 09-24 15:48
    3楼

    说不定哪一天就能创造一个和真实世界一样的虚拟世界,如果实现了,那说明人类可能原本就是一个更大的虚拟世界

  • K_KKiki 楼主 09-24 15:53
    4楼

    我们团队自己做的呢,评论区指路了链接

  • tito1 09-24 16:03
    5楼

    佬可以github放点动画看看

  • first 09-24 16:04
    6楼

    有点意思,不过与其200倍速度,不如改为200倍规模

  • kooo13579 09-24 16:10
    7楼

    想看小鎮的人一言不合就打架的動畫

  • LKM1729 09-24 16:11
    8楼

    怎么有点像黑客帝国的设定 ^-^

  • K_KKiki 楼主 09-24 16:15
    9楼

    哈哈哈好的收到,也在优化当中,确实现在的行为比较简单^-^

  • K_KKiki 楼主 09-24 16:16
    10楼

    很酷!搓搓小人,墨镜安排下 ^-^

  • K_KKiki 楼主 09-24 16:17
    11楼

    这个场景的话得安排大点跑了 ^-^

  • K_KKiki 楼主 09-24 16:17
    12楼

    录屏太大了^-^,也是在苦恼当中ing

  • kooo13579 09-24 16:25
    13楼

    血條 憤怒值 這些可以嗎

  • umbrella 09-24 16:35
    14楼


    • 普通对话模型即使被要求输出 JSON ,仍然可能选择一个根本不存在、或者当前不可达的目标。



    这个按理说应该可以被 Structured Outputs 输出模式完美解决吧,除非你给到的 json schema 一开始就具有表达出非法操作的可能性,那同样地,jev也不可能规避这一点。

  • 风铃铛 09-25 00:52
    15楼

    传到B站上,github里挂个视频嵌入

* 帖子来源Linux.do
返回