WorldForge:One Word to One World
憋得慌憋得慌
2026年07月22日 21:39

One Word + LLM + Framework = A Properly Progressing World

WorldForge:一句话,一个活着的世界

NVIDIA DGX Spark 黑客松参赛作品

起点是一个不满

所有 AI 叙事系统都卡在同一个岔路口:要么是没有灵魂的世界模拟器(事件日志像服务器日志),要么是没有世界的讲故事机器(LLM 第三段就自相矛盾)。Dwarf Fortress 那种涌现式编年史没人情味,AI Dungeon 那种自由生成没物理一致性。中间那条路——"一个真在跑的世界 + 一个真会讲故事的大脑"——一直没人走通。

WorldForge 是我们在这次黑客松上对这个问题的回答。

一句话,一个 Progressing World

代码块
PlainText
自动换行
复制代码
worldforge "三体世界"
复制成功

这一行命令背后跑的是完整的因果链:LLM 起草世界规则(立法)→ 确定性内核编译执行(司法)→ 有限理性主体观察、误判、决策 → 因果叙事 → 世界自主推进。用户是客人——可以旁观世界自己活着,可以夺舍某个角色介入,可以快进看文明兴衰。

关键不是"LLM 能写故事"——是LLM 永远不裁定结果。物理是内核算的地面真相,LLM 只把数字翻译成剧情。这条红线(spec §8.2)是整个架构的地基:一旦让 LLM 决定"这次预测成功了没",世界就失去必然性,退化成随机故事生成器。

我们在 Spark 上搭了什么

DGX Spark 是这个项目的理想宿主——128GB 统一内存、GB10 GPU,本地跑 30B 量化模型不卡。整个系统全本地化:世界状态、角色对话、叙事文本,数据不出机器。我们用 Spark 跑 qwen3-coder 生成规则、gemma 生成叙事、gpt-oss 生成动作 JSON——per-role 多模型路由,每个角色用最擅长的模型。

但这次最关键的工程决策,是把 LLM 从"司法"退回"立法"。LLM 只起草规则(世界怎么运行)、起草 GUI(界面长什么样)、起草认知模型(这个世界的角色会误判什么)。一旦规则编译进确定性内核,运行时 LLM 再也不碰结果。这保证了世界的一致性——同 seed 同结果,可回放、可审计、可 fork。

有限理性主体:错误在 AgentMind 生成,事实在 WorldKernel 裁决

传统 NPC 是"外挂数据库的 API"——角色知道服务器知道的每件事。这不真实。WorldForge 的 AgentMind 让角色只能看到自己观察到的世界(经 ObservationFilter 过滤,带延迟/噪声/盲区),基于可能错误的主观信念决策。

一个固执的科学家(evidence_weight=0.3),面对连续五次"乱纪元将至"的反证,信念不是收敛——是单调强化原判断(0.5 → 0.30 → 0.007 → −0.43 → …),这正是信念修正文献预测的教条回火效应。它完全确定、可回放,错误可追溯到"认知偏差"这个结构化来源——不是"NPC 一时犯傻"。

决策不是瞬时 state delta。重大决策形成持续存在的承诺(Commitment)——占用预算、触发组织反应、受阻力延迟、分阶段执行、广播给其他角色。一个科学家提议建观测台,组织可能只批 40% 预算 + 延迟 3 拍,同时产生长期 WorldModifier。这就是路径依赖——角色成为世界历史的推动者,不只是叙事里的说话人。

从三体到恋爱模拟:框架的通用性

三体世界是第一个实例——辛积分 + Lyapunov 指数 + 数学证明的逃离。但 WorldForge 不是"三体模拟器"。在这次黑客松上我们跑了六个世界验证通用性:三体、经济、政治、赛博朋克、奇幻、大学校园恋爱模拟

恋爱模拟最能说明问题。没有物理内核、没有逃离证明——只有好感度、关系网络、社团活动。AgentMind 照样工作:角色观察对方反应(带偏差)、更新好感信念(教条的人更难改变印象)、基于主观概率决策(表白还是继续观察)。LLM 生成的规则跑在确定性内核上,叙事层把每拍的情感变化翻译成文学场景。同一个框架,从恒星的混沌之舞到青春期的情感纠葛——因为"有限理性主体 + 因果叙事"是普世结构,不绑任何物理。

我们没能完全做到的

诚实说,LLM 输出稳定性仍是痛点。qwen3-coder 偶发返回 markdown 而非 JSON,我们靠重试救。OpenAI 的 JSON mode(response_format)能硬约束,但 LM Studio 不支持——这是个待补的工程点。叙事连续性也不完美——LLM 偶尔重复开头("三颗太阳疯狂舞蹈"),因为 history 承接没充分利用。

但我们做到了一件没人在做的事:LLM 为任意新世界生成该世界的认知模型——"这个世界的主体能误判什么、误判的结构是什么"。三体是低科技误判纪元,经济是信息不全误判市场,推理是确认偏误误指凶手。这是文献里的真空缺(Story2Game 生成动作前置条件,PDDL 生成物理模型,没人生成认知模型),是我们唯一能主张的学术贡献点。

为什么是 Spark

DGX Spark 让"全本地、多模型、实时"成为可能。30B 模型本地跑,per-role 路由让叙事用 gemma、规则用 qwen3-coder,互不阻塞。世界状态、角色对话、因果叙事全在本地——数据不出机器,这对一个"活着的世界"至关重要:一旦叙事走云,世界就是云的形状,不是本机的。

Spark 让"一句话 + LLM + Framework = Progressing World"从口号变成可以在黑客松现场跑给人看的真东西。一行命令,一个世界开始活着。这就是我们要展示的。 GitHub Repo: Editing WorldForge/README.md at main · Yuanhang2024/WorldForge​