WorldX
一句话生成AI自主驱动的像素风沙盒世界,多个LLM Agent在世界中社交、演化、涌现故事
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一句话生成AI自主驱动的像素风沙盒世界,多个LLM Agent在世界中社交、演化、涌现故事
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象这样一个场景:你只需要对系统说"北宋汴京的夜市街,有算命的、当铺掌柜、小偷、捕快,还有一个穿越来的现代人",然后闭上眼睛等几分钟——当你睁开眼,一幅完整的像素风地图已经生成,七八个性格迥异的 AI 角色正在街道上闲逛、吆喝、攀谈,他们会因为一件小事争执,也会因为一次偶遇结下缘分,而你,作为这个世界的"上帝",可以随时介入,修改某个角色的记忆,给世界注入一个突发事件,或者直接拉某个角色来一场架空对话。
这,就是 WorldX 正在做的事。
WorldX 并非凭空出现,它站在一个重要的学术研究肩膀上——2023 年斯坦福大学 Park 等人发表的论文《Generative Agents: Interactive Simulacra of Human Behavior》。这篇论文首次提出了"生成式 Agent"的概念:让 AI 角色像真实人类一样,拥有记忆、规划能力,会在社会中与其他角色社交、碰撞,从而涌现出没人提前写好的故事。
论文发表后,GitHub 上涌现了大量复现项目,但大多数停留在学术 demo 阶段——界面粗糙、功能单一、无法真正运行。WorldX 的作者 YGYOOO 在这些先行者的基础上,将生成式 Agent 的理念做成了一款真正可以上手体验的产品化工具:用户无需写一行代码,一句话就能创造一个完整的世界。
从 GitHub 数据来看,这个项目正处于快速成长期:Star 数已突破 1100+, forks 接近 200,代码仓库活跃,issue 和 PR 维护及时。TypeScript monorepo 架构、文档完善(双语 README)、内置示例世界降低上手门槛——这些都是典型的成熟开源项目特征。
WorldX 的核心是一个多模型协作管线,它用 4 个不同的 LLM 角色各司其职,共同完成"一句话 → 活的像素世界"这一转变:
| 模型角色 | 环境变量前缀 | 职责 | 推荐模型 |
|---|---|---|---|
| 编排引擎 | ORCHESTRATOR_ | 世界设计:定义角色性格、场景布局、行为规则 | Gemini 3.1 Pro / DeepSeek V4 |
| 绘图模型 | IMAGE_GEN_ | 生成地图美术和角色立绘 | Gemini Flash Image / FLUX.1-dev |
| 绘图审查 | VISION_ | 审查地图质量,定位区域/元素坐标 | Gemini 3.1 Pro |
| 世界驱动 | SIMULATION_ | 驱动运行时角色行为(决策、对话、记忆) | Gemini 2.5 Flash / DeepSeek V3 |
项目支持 OpenRouter、Google AI Studio、Atlas Cloud 等多个 LLM 平台,所有非绘图模型统一使用 OpenAI 兼容的 chat/completions 协议接入,绘图模型可选 OpenAI 兼容接口或 Google 原生图片接口。这种设计让用户几乎不受模型供应商限制。
当用户输入一句话后,orchestrator 模块首先登场。它的 world-designer.mjs 会调用编排模型,让模型根据自然语言描述设计出一个完整的世界配置——包括地图的布局和区域、每个角色的名字和性格特征、角色之间的初始关系网络,以及整个世界的运行规则(比如"角色每天需要吃饭"、"夜晚所有店铺关门"等)。
编排引擎的设计遵循了一个关键原则:使用较强推理模型处理设计任务。因为世界设计涉及复杂的结构化输出(JSON 配置),需要模型有足够的推理能力来保证输出一致性。这解释了为什么文档推荐编排引擎使用 Gemini 3.1 Pro 而不是更便宜的模型。
有了世界设计配置后,生成器管线分两路并行工作:
地图生成:调用绘图模型生成像素风地图,然后调用视觉审查模型检查地图质量(区域是否清晰可辨、颜色是否协调)。如果审查不通过,绘图模型会重试,直到得到满意结果。这是一个典型的 LLM-as-a-judge 闭环。
角色立绘生成:为每个角色生成独特的像素风立绘,并进行背景抠图处理,嵌入到地图场景中。
生成器使用了 sharp 库进行图片处理,所有生成的资产存储在项目 output/worlds/ 目录下。
模拟引擎是 WorldX 的"心脏",是一个基于 Express + SQLite + WebSocket 的 Node.js 服务。它的核心由以下几个子系统构成:
SimulationEngine(simulation engine):模拟引擎是整个系统的节拍器,控制着游戏时间的推进。它按设定的 tick 间隔触发所有角色的决策循环,决定谁在做什么、什么时候做、与谁互动。
DecisionMaker:角色的决策中心。它接收当前环境状态(其他角色的位置、最近发生的事件等),让 SIMULATION 模型决定该角色下一步的行动。这是一个高频率调用点——因为 SIMULATION 模型需要实时驱动数十个角色的行为,所以文档推荐使用最便宜的模型(如 Gemini 2.5 Flash)来控制成本。
DialogueGenerator:对话生成器,当两个角色需要交流时触发。它利用 SIMULATION 模型生成自然流畅的角色对话,并将对话记录存入对话历史。
MemoryManager(memory manager):记忆管理器。每个角色都有自己的长期记忆(重要经历)和短期记忆(最近发生的事)。MemoryManager 负责管理记忆的存储、检索和优先级排序。决策时,DecisionMaker 会查询角色相关的记忆作为上下文,确保角色行为前后一致、有人格延续感。
EmotionManager(emotion manager):情绪状态跟踪,记录角色当前的情绪值和情感变化,用于影响决策和对话风格。
NeedsManager(needs manager):需求驱动,角色有自己的需求(饥饿、社交、金钱等),需求驱动行为选择。
客户端使用 Phaser 3(2D 游戏引擎)+ React 19 构建。Phaser 3 负责像素风地图的渲染、角色动画和相机控制;React 19 负责 UI 覆盖层(对话框、控制面板、时间线管理等)。前端通过 WebSocket 与服务器保持实时连接,接收模拟状态更新。
WorldX 采用 monorepo 结构,整个仓库分为以下几个包:
orchestrator/ # 世界设计编排,Node.js ESM
src/
index.mjs # 管线入口
world-designer.mjs # LLM 世界设计
config-generator.mjs # 配置生成
prompts/
design-world.md # 设计 prompt 模板
generators/ # 美术生成管线,Node.js ESM
map/src/index.mjs # 地图生成 + 审查循环
character/src/index.mjs # 角色立绘 + 抠图
server/ # 模拟引擎,Node.js TypeScript
src/
core/ # WorldManager, CharacterManager, MemoryManager
simulation/ # SimulationEngine, DecisionMaker
llm/ # LLMClient, PromptBuilder
store/ # SQLite 持久化
client/ # 游戏客户端,React 19 + Phaser 3 + Vite
src/
scenes/ # BootScene, WorldScene
ui/ # React UI 覆盖层
shared/ # 结构化输出解析工具(structured-output.mjs)
关键依赖:
数据结构化输出方面,项目使用 shared/structured-output.mjs 中的工具来处理 LLM 输出:自动检测模型是否支持 response_format: { type: json_object },如果不支持则 fallback 到纯 prompt 工程 + markdown fence 解析模式。这体现了项目对多模型兼容性的认真处理。
优点:项目提供了两个预置世界,用户只需要填 SIMULATION 模型配置就能立刻体验,无需自己设计 prompt。这大大降低了"第一次用"的门槛。
挑战:完整运行需要 4 组 API Key,对新用户而言配置项较多。文档中虽然详细列出了 OpenRouter、Google AI Studio 和 Atlas Cloud 三种配置方案,但没有容器化支持意味着不同操作系统可能遇到不同的 Node.js 兼容性问题。另外,绘图模型推荐使用 Gemini Flash Image(而非 GPT Image 2),因为 GPT Image 2 在指令遵循上仍有欠缺,可能导致地图生成质量不稳定。
没有 GPU 要求:整个项目完全在 CPU 上运行,所有 LLM 调用都通过 API 走云端。这既是优点(门槛低)也是局限(运行速度依赖网络延迟和 API 限流)。
WorldX 的真正意义不在于技术本身,而在于它将"涌现叙事"(Emergent Narrative)这一游戏 AI 领域的前沿概念,做成了一款普通人可以直接上手的工具。
传统的游戏叙事是编剧写好的线性剧本,玩家只能在预设分支里选择。而 WorldX 和它的学术前身 Generative Agents 正在探索的是:让 AI 角色自主生成故事——玩家不需要做任何事,只要看着,故事就会自己涌现出来。这与沙盒游戏(Sandbox Game)的哲学一脉相承:《我的世界》《泰拉瑞亚》让玩家自己创造,而 WorldX 让 AI 自己创造。
从更宏观的视角看,WorldX 处于 AI Agent 应用的一个有趣交叉点:它不是单纯的 Agent 框架,也不是单纯的生成式游戏,而是一个多 Agent 社交模拟 + 生成式内容创作 + 交互式叙事的混合体。这种混合体的产品化,意味着它既可以服务于 AI 研究者(观察 Agent 社会行为),也可以服务于游戏开发者(快速原型 AI 驱动的 NPC 系统),还可以服务于内容创作者(生成叙事素材)。
Alpha 状态:项目文档明确标注处于 Alpha 阶段,这意味着 API 和数据格式可能随时变化,不适合直接用于生产环境。
成本问题:4 个 LLM 模型同时工作,生成一个世界可能产生数十美元的 API 费用。SIMULATION 模型的高频调用尤其值得注意——如果使用付费 API,每小时模拟运行的成本可能相当可观。
代理问题:文档专门用一整节讨论 Node.js 进程的代理配置问题,这在 Mac/Windows 环境下几乎是必踩的坑。对于中国用户来说,需要代理软件开启 TUN/全局透明代理模式,或者手动设置 HTTP_PROXY 环境变量,增加了上手复杂度。
** emergent 质量依赖模型能力**:角色行为的自然程度、对话的连贯性、世界逻辑的一致性——这些都高度依赖底层 LLM 的能力。随着模型能力提升,WorldX 的上限也会水涨船高;但如果使用较弱的模型,整个体验可能显得生硬、缺乏真实感。
总结:WorldX 是一个将 Generative Agents 学术理念产品化的有意义的尝试。它用 TypeScript monorepo 构建了一套完整的世界生成+角色模拟管线,通过 4 模型协作实现了"一句话 → 活的像素世界"的愿景。上手有一定门槛(需要配置 API Key),不支持 Docker 一键部署,但在 AI 沙盒模拟这个细分领域,它是目前 GitHub 上可玩性最高、工程化程度最好的开源项目之一。如果你对 AI Agent 的社交行为、涌现叙事或 LLM 驱动的游戏感兴趣,WorldX 值得 clone 下来亲自体验。