AI 小镇游戏:是什么以及如何运行

a16z 和 Convex 的 AI 小镇游戏:它是什么,其背后的斯坦福 Smallville 论文,如何玩演示或自己运行,以及它的成本。

AI 小镇是一个像素艺术小镇,AI 角色在其中生活、聊天并自己交朋友。你主要是观察。它也是免费的开源代码,开发人员可以复制和修改以制作自己的 AI 小镇游戏。

GitHub README 称其为“一个可部署的入门工具包,用于轻松构建和自定义您自己的 AI 小镇版本。”所以 AI 小镇有两层含义。它是一个可以在浏览器中打开的演示。它也是一个供开发人员使用的代码库。

每个 AI 角色都有一个名字、一个简短的故事和一个精灵。语言模型编写每个角色说的话。角色在地图上走动,开始对话并记住之前的谈话。代码还允许人类加入小镇并与角色交谈。

AI Town 并非一款有明确目标、关卡或完整剧情的成品游戏。它是一个供玩家观察和构建的沙盒。想玩有 AI 角色的完整游戏,请阅读我们的AI 游戏指南。

您正在阅读 LifeSim 博客。我们开发了 LifeSim,一款同样有 AI 角色的游戏。我们会在文章末尾说明它与 AI Town 的异同。

AI Town 由 a16z(Andreessen Horowitz)和 Convex 团队于 2023 年开发。代码托管在 GitHub 的 a16z-infra 账户下,Convex 负责后端运行。

2023 年 9 月,《认知革命》播客采访了该团队。a16z 合伙人 Yoko Li 发起了这个项目。a16z 普通合伙人 Martin Casado 称其为“Yoko 的一个业余项目”。Convex 首席技术官 James Cowling 协助构建。一位 Convex 开发者在服务器上制作了游戏引擎。

这个想法源于 Yoko Li 早期开发的一款配套应用。那款应用赋予了一个 AI 角色记忆和个性。随后,人们开始好奇当多个 AI 角色相遇时会发生什么。AI Town 应运而生。

Convex 在 AI Town 中扮演的角色

README 文件指出,Convex 负责游戏引擎、数据库和向量搜索。Convex 维护城镇状态并运行模拟。向量搜索功能用于查找与当前对话相关的旧记忆。

README 文件还列出了其他技术栈。PixiJS 负责绘制城镇。Ollama 在您本地电脑上运行默认聊天模型llama3。Clerk 登录功能是可选的。

AI Town 是开源的吗?

是的。仓库中的许可证文件是 MIT 许可证,其中包含“Copyright (c) 2023 a16z-infra”一行。您可以复制、修改和销售代码,但请在您的副本中保留许可证文本。

是的。README 文件中提到,AI Town“受到”论文《生成式智能体:人类行为的交互式模拟》的“启发”。该论文将 25 个 AI 角色置于一个名为 Smallville 的小镇中。

Joon Sung Park 和其他五位研究人员撰写了这篇论文。其中四位来自斯坦福大学,另外两位来自 Google Research 和 Google DeepMind。他们于 2023 年 4 月 7 日在 arXiv 上发布了第一个版本,并于 2023 年 8 月 6 日发布了修订版本。

Smallville 发生了什么?

这篇论文将 Smallville 描述为“一个受《模拟人生》启发的交互式沙盒环境”。研究人员给一个角色设定了一个简单的想法:举办情人节派对。随后,角色们便开始散发邀请函、结交新朋友、互相约会,并最终一同参加了派对。

这个计划并非预设,而是角色们通过论文添加到语言模型中的三个部分自主生成的:

  • 记忆。 每个角色所见所闻的完整纯文本记录。
  • 反思。 随着时间推移,角色将大量记忆提炼成关于自身和他人的普遍认知。
  • 规划。 角色根据相关记忆来决定下一步行动。

研究人员让 25 个角色运行了整整两个游戏日。论文指出,这花费了“数千美元的令牌费用”和“数天时间才能完成”。

AI Town 与论文代码的区别

Smallville 的代码也托管在 GitHub 上,地址是 joonspk-research/generative_agents,采用 Apache-2.0 许可证。它使用 Python 编写,需要 OpenAI API 密钥。其 README 文件警告运行成本可能很高。

AI Town 是一个用 JavaScript 和 TypeScript 编写的新代码库。README 文件中提到,这是有意为之,因为大多数此类工具都使用 Python。AI Town 还增加了多玩家后端和可在您本地电脑上运行的默认模型。

想了解更多关于自主思考的游戏角色如何运作的信息,请阅读NPC 的含义。

是的。实时演示位于 convex.dev/ai-town,我们在 2026 年 11 月检查时已加载。您无需账户即可观看。要加入城镇,您需要登录。

AI Town 代码中的帮助文本解释了您可以做什么:

  • 观看。 “点击并拖动以在城镇中移动,滚动以放大和缩小。”点击一个角色以阅读其聊天记录。
  • 加入。 登录并点击“互动”按钮。您的角色会出现在地图上,下方有一个高亮显示的圆圈。
  • 交谈。 点击一个角色,然后点击“开始对话”。角色会走向您,然后您就可以交谈了。角色也可以邀请您交谈。

演示有局限性。帮助文本说城镇一次只能容纳一定数量的玩家。如果您五分钟内没有任何操作,游戏会移除您。

Convex 博客上的 v2 更新为演示添加了更多内容。您可以邀请附近的角色聊天,他们也可以邀请您。谣言也会在角色间传播,并在后续对话中再次出现。

可以更改演示城镇吗?

不能。演示是一个由 Convex 运行的共享城镇。要更改角色、地图或 AI 模型,您需要运行自己的副本。下一节将告诉您如何操作。

您需要克隆仓库,安装、启动,并连接一个语言模型。README 文件提供了四种运行方式。这是一个简短版本,请按照 README 文件中的完整步骤操作。

  • 标准设置。 您可以在自己的电脑上或使用免费的 Convex 账户在云端进行开发。README 文件称这是最简单的方法。
  • Docker Compose。 您可以在 Docker 中运行后端、前端和仪表板,无需 Convex 账户。
  • Pinokio。 一个社区分支提供一键安装。README 文件中写道,它适用于那些想运行 AI Town 但不想更改它的人。
  • Fly.io。 您可以将应用程序部署到 Fly.io。仓库中有一个 fly 文件夹,其中包含部署步骤。

步骤 1:构建并启动应用

对于标准设置,README 文件提供了以下命令:

git clone https://github.com/a16z-infra/ai-town.git
cd ai-town
npm install

安装会要求您登录 Convex。然后使用npm run dev启动应用程序并打开 http://localhost:5173。

对于 Docker,README 文件以docker compose up --build -d开头。然后它会告诉您创建一个管理员密钥,将其添加到.env.local文件,并运行npm run predev。前端在端口 5173 上运行。

在 Windows 上,README 文件告诉您首先安装带有 Ubuntu 和 Node.js 18 的 WSL2。如果您遇到 Node.js 版本错误,README 文件建议使用版本 18。

步骤 2:连接语言模型

默认情况下,AI Town 使用 Ollama 在您本地电脑上运行模型。README 文件提供了以下步骤:

  1. 下载并安装 Ollama。
  2. 打开 Ollama 应用,或在终端中运行ollama serve。
  3. 运行ollama pull llama3下载模型。
  4. 使用ollama run llama3进行测试。

您可以改用 OpenAI、Together.ai 或其他与 OpenAI API 类似工作的 API。对于每个 API,您需要更改convex/util/llm.ts中的一行,并使用npx convex env set设置您的 API 密钥。

如果您稍后更改模型提供商或嵌入模型,请删除您的数据并重新开始。README 文件中写道,内存搜索必须与嵌入模型匹配。

步骤 3:打造专属城镇

所有角色及其故事都在data/characters.ts中。您可以在 Tiled 编辑器中制作新地图,并使用仓库中的脚本进行转换。更改角色后,README 文件会告诉您使用npx convex run testing:wipeAllTables清除表格并再次运行npm run dev。该命令会删除您的所有数据。

代码是免费的。您支付的费用取决于语言模型和后端在哪里运行。

语言模型

在默认设置下,Ollama 在您本地电脑上运行模型。您无需向付费模型 API 发送任何调用。您的电脑承担所有工作,因此电脑性能越差,角色运行速度越慢。

使用云模型时,每一行对话都是付费 API 调用。Together AI 等提供商按每百万个令牌对聊天模型进行定价,输入和输出价格不同。更多的角色和更长的对话会产生更多的令牌。

README 文件提供了两种减少使用量的方法。当浏览器窗口闲置五分钟时,模拟会暂停。您还可以使用npx convex run testing:stop停止引擎,并使用npx convex run testing:resume再次启动它。

就规模而言,Smallville 论文让 25 个角色运行了两个游戏日。这花费了研究人员数千美元的令牌费用。

后端

Convex 为个人项目和原型提供免费计划。Convex 定价页面称其为“免费和入门”。超出限制的使用按单位计费,付费计划会增加更多。使用 Docker,您可以在自己的电脑上运行 Convex 后端。

可选的附加功能也需要付费。背景音乐使用 Replicate,这需要一个账户和一个 API 令牌。

您今天就可以在浏览器中玩 AI Town 演示。要玩一个有 AI 角色的完整游戏,您需要一个成品游戏,而不是一个入门套件。

选项简介运行方式可否修改代码?
AI Town 演示一个供观看或加入的共享城镇浏览器,访问 convex.dev/ai-town否
AI Town,您的专属副本开发者入门套件您的电脑、Docker、Convex 或 Fly.io是,MIT 许可证
Smallville(生成式智能体)论文中的研究代码Python,需要 OpenAI API 密钥是的,Apache-2.0
LifeSim(我们的游戏)已完成的 AI 生活模拟游戏浏览器,iPhone 应用否

LifeSim:一个由 AI 角色组成的城镇,已完成

LifeSim 是我们的免费游戏,无广告,无内购。你将在地球 3D 地图上的真实城市中,一天天体验人生。AI 角色会用自己的话回答你,他们会记住你说过的话,并告诉他们的朋友,还会给你发短信。

LifeSim 不是开源的。你无法自行托管、修改代码或导入自己的模型。如果你想构建或研究 AI 城镇,AI Town 是更好的选择。

想玩更多游戏?请查看我们的AI 生活模拟器游戏列表和可与 AI 对话的游戏指南。

如果你想生活在 AI 城镇中,而不是建造它,请在浏览器或 iPhone 上免费玩 LifeSim。

第一次接触人生模拟游戏?可以先看看什么是人生模拟游戏,或者直接玩 LifeSim:一款建在真实地球地图上的免费在线人生模拟游戏。

模拟人生4 数据库

在《模拟人生4》数据库中查找,从游戏文件读取:秘籍, 特质, 职业, 情绪, 死亡, 扩展包, 挑战, 食谱, 热门模组, 扩展包查找器,以及死亡几率计算器。

分步操作:所有《模拟人生4》攻略。

相关文章

人生模拟游戏