AI当主持人的文字冒险,骰子由Python算,不经过模型
骰子由程序算
Anyworld 是一个自托管的多人文字 RPG,也支持单人模式。灵感来自 AI Dungeon 早期的浏览器免费版 AI Dungeon 2。它把最容易让人怀疑的一环交给程序:行动结果不确定时,Python 负责随机数计算,模型只拿到骰子结果去叙述后果。随机部分完全不经过模型,数字不会凭空变出来。
一个链接加入
一个人同时托管服务器和运行模型。可以用 llama.cpp 跑本地模型,也可以用 OpenAI 或其他云端 API,云端方案对非英语玩家更友好。主机把浏览器链接发给朋友,桌面端和移动端都能打开。除了主机,没有人需要安装任何东西。玩家提交行动后,模型一次性解析整轮行动,会考虑角色之间的互动和相互干扰,而不是各过各的。
长故事的记忆
旧回合会被压成三类摘要:世界状态、玩家事实、未解决的线索。压缩之后,模型还会额外审查一遍,避免摘要丢掉重要事实。断线也做了处理:标签页意外关掉,重新登录后未完成的行动和历史都还在。
主机藏得住的事
场景自己写,设定、角色、开场状态都行,不限于奇幻。主机还能把隐藏信息喂给模型,比如 NPC 的动机、秘密规则、剧情走向。秘密触发机制每局可以设一个隐藏概率。开发者的例子是:玩家走进一栋建筑,有 20% 概率建筑倒塌。概率在后台算出,一旦触发,模型把后果织进故事,玩家看不到底层数字。游戏另有一条场外聊天频道,模型不会读取。
限制和门槛
托管需要一些技术底子:熟悉 Python,还要处理网络问题,比如 VPN、端口转发。开发者在持续改进,Docker 的提议他表示会考虑。现在一台服务器一次只能跑一个游戏。重启会丢掉实时会话,只留下 HTML 和 JSONL 转录,还不能当可加载的存档。连接用自签名证书做 HTTPS 加密,玩家加入时会看到浏览器安全警告,需要手动继续。作者承认这不是理想方案,之后会做更稳的版本。本地 llama.cpp 后端目前只支持英语叙述,因为开发者的 PC 能跑的本地模型处理其他语言效果很差。想要非英语游戏,要用云端 API。
硬件和模型
开发时作者用 llama.cpp 和 Gemma 4-26B-A4B Q4,上下文 128k。在 RTX 5070 Ti 16GB 上,每回合解析约 5 秒。他推荐的模型是 Gemma 4-26B-A4B-it-qat-uncensored-heretic-UDmerge-GGUF,推荐参数为 temperature 1.0、top-p 0.95、top-k 20、min-p 0.0、presence-penalty 0.0、repeat-penalty 1.0。仓库里附带一个基准测试文件,用来衡量模型遵守游戏指令的程度。开发过程中还用了阿里云 Qwen 3.8 27b 和 OpenAI 的 GPT-5.6 Luna、GPT-6 Astra 辅助。故事质量很大程度取决于模型选择和参数调整。
社区怎么看
代码以 MIT 许可证发布,作者说开源到底,分叉和协作都欢迎。Reddit 的讨论集中在混合设计上:Python 算骰子和隐藏概率,模型只负责叙述。这条思路被认为能防止模型编数字或作弊。Docker 化也被点到,说会极大降低门槛。有人提到另一个项目 OpenDungeonMaster,带图形界面,做得更深。一位做 MMO 的评论者说,他在自己的项目里用同一个 Gemma 模型的 styletune 变体控制 LLM 角色。他过去对低激活参数 MoE 模型很挑剔,这次的表现让他印象深刻。另有人问,是不是只有 LLM 坐主持人位置,队伍里的 NPC 不由 LLM 控制,往后有没有计划。另外,一位用户已经改了自己的分叉,想提 PR,发现 PR 被锁成仅协作者,暂时只能留在分叉里。